60806040526005805460ff19169055601460065560196007819055600060088190556009818155600a838155600b93909355600c839055600d91909155620000479162000697565b6200005690620f424062000782565b600e55620000676009600a62000697565b6200007690621e848062000782565b600f55620000876009600a62000697565b62000096906207a12062000782565b601055620000a76009600a62000697565b620000b6906207a12062000782565b601155601280546001600160a01b031916734752ba5dbc23f44d87826276bf6fd6b1c372ad241790556013805461ffff60a81b19169055348015620000fa57600080fd5b5060006200010762000499565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200015b62000499565b600580546001600160a01b039290921661010002610100600160a81b0319909216919091179055620001906009600a62000697565b620001a0906305f5e10062000782565b60016000620001ae62000499565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001e86200049d60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530808252600390945282812080548616600190811790915560055461010090048316825292902080549094169091179092556012546200027592166200025f6009600a62000697565b6200026f906305f5e10062000782565b620004ac565b6012546040805163c45a015560e01b815290516000926001600160a01b03169163c45a0155916004808301926020929190829003018186803b158015620002bb57600080fd5b505afa158015620002d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f6919062000571565b9050806001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035757600080fd5b505afa1580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000392919062000571565b6040518363ffffffff1660e01b8152600401620003b1929190620005a1565b602060405180830381600087803b158015620003cc57600080fd5b505af1158015620003e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000407919062000571565b601380546001600160a01b0319166001600160a01b03929092169190911790556200043162000499565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200046b6009600a62000697565b6200047b906305f5e10062000782565b6040516200048a919062000641565b60405180910390a350620007ba565b3390565b6000546001600160a01b031690565b6001600160a01b038316620004de5760405162461bcd60e51b8152600401620004d590620005fd565b60405180910390fd5b6001600160a01b038216620005075760405162461bcd60e51b8152600401620004d590620005bb565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906200056490859062000641565b60405180910390a3505050565b60006020828403121562000583578081fd5b81516001600160a01b03811681146200059a578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b90815260200190565b80825b60018086116200065e57506200068e565b818704821115620006735762000673620007a4565b808616156200068157918102915b9490941c9380026200064d565b94509492505050565b60006200059a60001960ff851684600082620006b6575060016200059a565b81620006c5575060006200059a565b8160018114620006de5760028114620006e9576200071d565b60019150506200059a565b60ff841115620006fd57620006fd620007a4565b6001841b915084821115620007165762000716620007a4565b506200059a565b5060208310610133831016604e8410600b841016171562000755575081810a838111156200074f576200074f620007a4565b6200059a565b6200076484848460016200064a565b808604821115620007795762000779620007a4565b02949350505050565b60008160001904831182151516156200079f576200079f620007a4565b500290565b634e487b7160e01b600052601160045260246000fd5b6118ba80620007ca6000396000f3fe6080604052600436106101185760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb146102b7578063bf474bed146102d7578063c876d0b9146102ec578063c9567bf914610301578063dd62ed3e146103165761011f565b8063751039fc146102415780637d1db4a5146102565780638da5cb5b1461026b5780638f9a55c01461028d57806395d89b41146102a25761011f565b806323b872dd116100e757806323b872dd146101b3578063313ce567146101d357806351bc3c85146101f557806370a082311461020c578063715018a61461022c5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461017c57806318160ddd1461019e5761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610336565b60405161014691906112c7565b60405180910390f35b34801561015b57600080fd5b5061016f61016a3660046111dc565b61035e565b60405161014691906112bc565b34801561018857600080fd5b5061019161037c565b6040516101469190611607565b3480156101aa57600080fd5b50610191610382565b3480156101bf57600080fd5b5061016f6101ce36600461119c565b6103a3565b3480156101df57600080fd5b506101e861042b565b6040516101469190611680565b34801561020157600080fd5b5061020a610430565b005b34801561021857600080fd5b5061019161022736600461112c565b61048c565b34801561023857600080fd5b5061020a6104a7565b34801561024d57600080fd5b5061020a61052f565b34801561026257600080fd5b506101916105fa565b34801561027757600080fd5b50610280610600565b6040516101469190611254565b34801561029957600080fd5b5061019161060f565b3480156102ae57600080fd5b50610139610615565b3480156102c357600080fd5b5061016f6102d23660046111dc565b610635565b3480156102e357600080fd5b50610191610649565b3480156102f857600080fd5b5061016f61064f565b34801561030d57600080fd5b5061020a610658565b34801561032257600080fd5b50610191610331366004611164565b610803565b60408051808201909152600e81526d14dd1d58989cc81d1a194810d85d60921b602082015290565b600061037261036b61082e565b8484610832565b5060015b92915050565b60115481565b60006103906009600a61170c565b61039e906305f5e1006117dd565b905090565b60006103b08484846108e6565b610420846103bc61082e565b61041b8560405180606001604052806028815260200161185d602891396001600160a01b038a166000908152600260205260408120906103fa61082e565b6001600160a01b031681526020810191909152604001600020549190610dad565b610832565b5060015b9392505050565b600990565b60055461010090046001600160a01b031661044961082e565b6001600160a01b03161461045c57600080fd5b60006104673061048c565b905080156104785761047881610de7565b4780156104885761048881610fad565b5050565b6001600160a01b031660009081526001602052604090205490565b6104af61082e565b6000546001600160a01b039081169116146104e55760405162461bcd60e51b81526004016104dc9061144e565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61053761082e565b6000546001600160a01b039081169116146105645760405162461bcd60e51b81526004016104dc9061144e565b6105706009600a61170c565b61057e906305f5e1006117dd565b600e5561058d6009600a61170c565b61059b906305f5e1006117dd565b600f556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105d56009600a61170c565b6105e3906305f5e1006117dd565b6040516105f09190611607565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b60408051808201909152600681526553545542425360d01b602082015290565b600061037261064261082e565b84846108e6565b60105481565b60055460ff1681565b61066061082e565b6000546001600160a01b0390811691161461068d5760405162461bcd60e51b81526004016104dc9061144e565b601354600160a01b900460ff16156106b75760405162461bcd60e51b81526004016104dc9061158c565b6012546001600160a01b031663f305d71947306106d38161048c565b6000806106de610600565b426040518863ffffffff1660e01b815260040161070096959493929190611281565b6060604051808303818588803b15801561071957600080fd5b505af115801561072d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107529190611227565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261078c92169060001990600401611268565b602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107de9190611207565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b0383166108585760405162461bcd60e51b81526004016104dc90611548565b6001600160a01b03821661087e5760405162461bcd60e51b81526004016104dc90611394565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108d9908590611607565b60405180910390a3505050565b6001600160a01b03831661090c5760405162461bcd60e51b81526004016104dc906114cc565b6001600160a01b0382166109325760405162461bcd60e51b81526004016104dc9061131a565b600081116109525760405162461bcd60e51b81526004016104dc90611483565b600061095c610600565b6001600160a01b0316846001600160a01b0316141580156109965750610980610600565b6001600160a01b0316836001600160a01b031614155b15610c68576109cf60646109c9601360149054906101000a900460ff166109bf576006546109c2565b60005b8590610feb565b90611030565b60055490915060ff1615610a4f576012546001600160a01b03848116911614801590610a0957506013546001600160a01b03848116911614155b15610a4f57326000908152600460205260409020544311610a3c5760405162461bcd60e51b81526004016104dc906115c3565b3260009081526004602052604090204390555b6013546001600160a01b038581169116148015610a7a57506012546001600160a01b03848116911614155b8015610a9f57506001600160a01b03831660009081526003602052604090205460ff16155b15610b5757600e54821115610ac65760405162461bcd60e51b81526004016104dc9061135d565b600f5482610ad38561048c565b610add919061168e565b1115610afb5760405162461bcd60e51b81526004016104dc90611511565b600c54600d541015610b1a57610b1083611072565b15610b1a57600080fd5b600d8054906000610b2a83611813565b9190505550610b5460646109c9600a54600d5411610b4a576006546109c2565b6008548590610feb565b90505b6013546001600160a01b038481169116148015610b7d57506001600160a01b0384163014155b15610bcc57600e54821115610ba45760405162461bcd60e51b81526004016104dc9061135d565b610bc960646109c9600b54600d5411610bbf576007546109c2565b6009548590610feb565b90505b6000610bd73061048c565b601354909150600160a81b900460ff16158015610c0157506013546001600160a01b038581169116145b8015610c165750601354600160b01b900460ff165b8015610c23575060105481115b8015610c325750600c54600d54115b15610c6657610c54610c4f84610c4a84601154611078565b611078565b610de7565b478015610c6457610c6447610fad565b505b505b8015610ce05730600090815260016020526040902054610c88908261108d565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610cd7908590611607565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610d0390836110bc565b6001600160a01b038516600090815260016020526040902055610d48610d2983836110bc565b6001600160a01b0385166000908152600160205260409020549061108d565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610d9285856110bc565b604051610d9f9190611607565b60405180910390a350505050565b60008184841115610dd15760405162461bcd60e51b81526004016104dc91906112c7565b506000610dde84866117fc565b95945050505050565b6013805460ff60a81b1916600160a81b17905580610e0457610f9d565b601354600160a01b900460ff16610e1a57610f9d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110610e5d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610eb157600080fd5b505afa158015610ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee99190611148565b81600181518110610f0a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601254610f309130911684610832565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f69908590600090869030904290600401611610565b600060405180830381600087803b158015610f8357600080fd5b505af1158015610f97573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610488573d6000803e3d6000fd5b600082610ffa57506000610376565b600061100683856117dd565b90508261101385836116a6565b146104245760405162461bcd60e51b81526004016104dc9061140d565b600061042483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110fe565b3b151590565b60008183116110875782610424565b50919050565b60008061109a838561168e565b9050838110156104245760405162461bcd60e51b81526004016104dc906113d6565b600061042483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dad565b6000818361111f5760405162461bcd60e51b81526004016104dc91906112c7565b506000610dde84866116a6565b60006020828403121561113d578081fd5b813561042481611844565b600060208284031215611159578081fd5b815161042481611844565b60008060408385031215611176578081fd5b823561118181611844565b9150602083013561119181611844565b809150509250929050565b6000806000606084860312156111b0578081fd5b83356111bb81611844565b925060208401356111cb81611844565b929592945050506040919091013590565b600080604083850312156111ee578182fd5b82356111f981611844565b946020939093013593505050565b600060208284031215611218578081fd5b81518015158114610424578182fd5b60008060006060848603121561123b578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156112f3578581018301518582016040015282016112d7565b818111156113045783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b8181101561165f5784516001600160a01b03168352938301939183019160010161163a565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b600082198211156116a1576116a161182e565b500190565b6000826116c157634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116116d85750611703565b8187048211156116ea576116ea61182e565b808616156116f757918102915b9490941c9380026116c9565b94509492505050565b600061042460001960ff85168460008261172857506001610424565b8161173557506000610424565b816001811461174b576002811461175557611782565b6001915050610424565b60ff8411156117665761176661182e565b6001841b91508482111561177c5761177c61182e565b50610424565b5060208310610133831016604e8410600b84101617156117b5575081810a838111156117b0576117b061182e565b610424565b6117c284848460016116c6565b8086048211156117d4576117d461182e565b02949350505050565b60008160001904831182151516156117f7576117f761182e565b500290565b60008282101561180e5761180e61182e565b500390565b60006000198214156118275761182761182e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461185957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a3b3f569d1f66c6e7197096302daf2984359451e1f0e9feae5e1c2b6539df7464736f6c63430008000033