60806040525f805460ff60a01b1916600960a01b1790819055620000309060ff600160a01b90910416600a62000546565b6200004090633b9aca006200055d565b6001819055600380546001600160a01b03191661dead179055600580546202000160a81b62ffffff60a81b19909116179055600c600655606490620000879060026200055d565b62000093919062000577565b600755620186a0600154620000a9919062000577565b6008556007546009556108fc600a556017600b556017600c55600a54600d55600b54600e55600c54600f556040518060400160405280600681526020016530784445464960d01b8152506013908162000103919062000637565b5060408051808201909152600681526530784445464960d01b602082015260149062000130908262000637565b503480156200013d575f80fd5b50604051620019f2380380620019f28339810160408190526200016091620006ff565b5f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360015460105f620001b65f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f2093909355600280546001600160a01b03191693851693909317909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa15801562000239573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025f9190620006ff565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d19190620006ff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200031c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003429190620006ff565b600580546001600160a01b03199081166001600160a01b039384161790915560048054909116918316919091179055600160125f620003885f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560025490911681526012909252902080549091166001179055620003e05f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200042791815260200190565b60405180910390a3505062000727565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200048b57815f19048211156200046f576200046f62000437565b808516156200047d57918102915b93841c939080029062000450565b509250929050565b5f82620004a35750600162000540565b81620004b157505f62000540565b8160018114620004ca5760028114620004d557620004f5565b600191505062000540565b60ff841115620004e957620004e962000437565b50506001821b62000540565b5060208310610133831016604e8410600b84101617156200051a575081810a62000540565b6200052683836200044b565b805f19048211156200053c576200053c62000437565b0290505b92915050565b5f6200055660ff84168362000493565b9392505050565b808202811582820484141762000540576200054062000437565b5f826200059257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005c057607f821691505b602082108103620005df57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000632575f81815260208120601f850160051c810160208610156200060d5750805b601f850160051c820191505b818110156200062e5782815560010162000619565b5050505b505050565b81516001600160401b0381111562000653576200065362000597565b6200066b81620006648454620005ab565b84620005e5565b602080601f831160018114620006a1575f8415620006895750858301515b5f19600386901b1c1916600185901b1785556200062e565b5f85815260208120601f198616915b82811015620006d157888601518255948401946001909101908401620006b0565b5085821015620006ef57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000710575f80fd5b81516001600160a01b038116811462000556575f80fd5b6112bd80620007355f395ff3fe60806040526004361061013f575f3560e01c806349bd5a5e116100b357806378109e541161006d57806378109e54146103845780638da5cb5b1461039957806395d89b41146103b5578063a9059cbb146103c9578063dd62ed3e146103e8578063f2fde38b1461042c575f80fd5b806349bd5a5e146102ba5780634a74bb02146102d9578063590f897e146102f957806370a082311461030e578063715018a614610342578063768dc71014610356575f80fd5b806318160ddd1161010457806318160ddd14610213578063220f66961461022757806323b872dd14610247578063243f2af514610266578063313ce5671461027b57806340b9a54b146102a5575f80fd5b806304a032081461014a57806306fdde0314610160578063095ea7b31461018a57806309fbb48b146101b95780631694505e146101dc575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61044b565b005b34801561016b575f80fd5b50610174610494565b6040516101819190610faa565b60405180910390f35b348015610195575f80fd5b506101a96101a436600461100c565b610524565b6040519015158152602001610181565b3480156101c4575f80fd5b506101ce60085481565b604051908152602001610181565b3480156101e7575f80fd5b506004546101fb906001600160a01b031681565b6040516001600160a01b039091168152602001610181565b34801561021e575f80fd5b506001546101ce565b348015610232575f80fd5b506005546101a990600160a01b900460ff1681565b348015610252575f80fd5b506101a9610261366004611036565b61053a565b348015610271575f80fd5b506101ce60065481565b348015610286575f80fd5b505f54600160a01b900460ff1660405160ff9091168152602001610181565b3480156102b0575f80fd5b506101ce600b5481565b3480156102c5575f80fd5b506005546101fb906001600160a01b031681565b3480156102e4575f80fd5b506005546101a990600160a81b900460ff1681565b348015610304575f80fd5b506101ce600c5481565b348015610319575f80fd5b506101ce610328366004611074565b6001600160a01b03165f9081526010602052604090205490565b34801561034d575f80fd5b5061015e6105a1565b348015610361575f80fd5b506101a9610370366004611074565b60126020525f908152604090205460ff1681565b34801561038f575f80fd5b506101ce60075481565b3480156103a4575f80fd5b505f546001600160a01b03166101fb565b3480156103c0575f80fd5b50610174610612565b3480156103d4575f80fd5b506101a96103e336600461100c565b610621565b3480156103f3575f80fd5b506101ce61040236600461108f565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b348015610437575f80fd5b5061015e610446366004611074565b61062d565b5f546001600160a01b0316331461047d5760405162461bcd60e51b8152600401610474906110c6565b60405180910390fd5b5f1960075561012c600a556003600b819055600c55565b6060601380546104a3906110fb565b80601f01602080910402602001604051908101604052809291908181526020018280546104cf906110fb565b801561051a5780601f106104f15761010080835404028352916020019161051a565b820191905f5260205f20905b8154815290600101906020018083116104fd57829003601f168201915b5050505050905090565b5f610530338484610714565b5060015b92915050565b5f6105468484846107d4565b610597843361059285604051806060016040528060288152602001611260602891396001600160a01b038a165f9081526011602090815260408083203384529091529020549190610b3b565b610714565b5060019392505050565b5f546001600160a01b031633146105ca5760405162461bcd60e51b8152600401610474906110c6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060601480546104a3906110fb565b5f6105303384846107d4565b5f546001600160a01b031633146106565760405162461bcd60e51b8152600401610474906110c6565b6001600160a01b0381166106bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610474565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061073457506001600160a01b03821615155b6107745760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610474565b6001600160a01b038381165f8181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b038381169116148015906107ff57506002546001600160a01b03838116911614155b801561081457506001600160a01b0382163014155b801561082e57506005546001600160a01b03838116911614155b801561084857506003546001600160a01b03838116911614155b801561086157505f546001600160a01b03848116911614155b156108ec576001600160a01b0382165f9081526010602052604090205460075461088b8383611147565b11156108ea5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b6064820152608401610474565b505b6001600160a01b0383161580159061090c57506001600160a01b03821615155b6109505760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610474565b5f81116109ad5760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610474565b60055460ff600160b81b82048116600160b01b90920416108015906109d3575060085481115b80156109e95750600554600160a01b900460ff16155b8015610a0d57506001600160a01b0383165f9081526012602052604090205460ff16155b8015610a2657506005546001600160a01b038381169116145b8015610a3b5750600554600160a81b900460ff165b15610a6d576005805460ff60b01b19169055305f908152601060205260409020548015610a6b57610a6b81610b66565b505b6001600160a01b0383165f9081526012602052604090205460019060ff1680610aad57506001600160a01b0383165f9081526012602052604090205460ff165b80610adf57506005546001600160a01b03858116911614801590610adf57506005546001600160a01b03848116911614155b15610aeb57505f610b29565b6005546001600160a01b0390811690851603610b0c57600b54600a55610b29565b6005546001600160a01b0390811690841603610b2957600c54600a555b610b3584848484610bab565b50505050565b5f8184841115610b5e5760405162461bcd60e51b81526004016104749190610faa565b505050900390565b6005805460ff60a01b1916600160a01b179055610b8281610c18565b6002544790610b9a906001600160a01b031682610d80565b50506005805460ff60a01b19169055565b80610bbd57610bb8610db8565b610bf1565b60058054600160b01b900460ff16906016610bd78361115a565b91906101000a81548160ff021916908360ff160217905550505b610bfc848484610dfc565b80610b3557610b35600d54600a55600e54600b55600f54600c55565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c4b57610c4b611178565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cdf919061118c565b81600181518110610cf257610cf2611178565b6001600160a01b039283166020918202929092010152600454610d189130911684610714565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610d4f9186915f91879130914291016111a7565b5f604051808303815f87803b158015610d66575f80fd5b505af1158015610d78573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610db3573d5f803e3d5ffd5b505050565b600a54158015610dc85750600b54155b8015610dd45750600c54155b15610ddb57565b600b8054600e55600c8054600f55600a8054600d555f928390559082905555565b5f80610e0783610f3c565b6001600160a01b0387165f9081526012602090815260408083205460075460109093529083205494965092945060ff90921692919091111590828015610e4a5750815b90508015610e62575f9350610e5f8587611216565b95505b6001600160a01b0388165f90815260106020526040902054610e849087610f77565b6001600160a01b03808a165f908152601060205260408082209390935590891681522054610eb29086610f89565b6001600160a01b0388165f90815260106020526040808220929092553081522054610edd9085610f89565b305f9081526010602090815260409182902092909255518681526001600160a01b0389811692908b16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050505050565b5f805f610f5f6064610f59600a5487610f9490919063ffffffff16565b90610f9f565b90505f610f6c8583610f77565b959194509092505050565b5f610f828284611216565b9392505050565b5f610f828284611147565b5f610f828284611229565b5f610f828284611240565b5f6020808352835180828501525f5b81811015610fd557858101830151858201604001528201610fb9565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611009575f80fd5b50565b5f806040838503121561101d575f80fd5b823561102881610ff5565b946020939093013593505050565b5f805f60608486031215611048575f80fd5b833561105381610ff5565b9250602084013561106381610ff5565b929592945050506040919091013590565b5f60208284031215611084575f80fd5b8135610f8281610ff5565b5f80604083850312156110a0575f80fd5b82356110ab81610ff5565b915060208301356110bb81610ff5565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061110f57607f821691505b60208210810361112d57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561053457610534611133565b5f60ff821660ff810361116f5761116f611133565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561119c575f80fd5b8151610f8281610ff5565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156111f55784516001600160a01b0316835293830193918301916001016111d0565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561053457610534611133565b808202811582820484141761053457610534611133565b5f8261125a57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b0393c02e95e75d11b8b34165ef60db039c043c438b63d684c8578f22aefcac64736f6c63430008150033000000000000000000000000100f3f03d4c9ff65a94ab4ec0e7014ca9d7f48d8