60806040526064620000146012600a620004d8565b6200002290612710620004ef565b6200002e919062000509565b60015560036064620000436012600a620004d8565b6200005190612710620004ef565b6200005d919062000509565b62000069919062000509565b6002555f600681905560078190556009805460ff60a01b1916905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a8054336001600160a01b0319918216811783555f908152600560209081526040808320805460ff199081166001908117909255308552828520805482168317905595546001600160a01b0316845292819020805490951690921790935560088054737a250d5630b4cf539739df2c5dacb4c659f2488d931683179055805163c45a015560e01b81529051919263c45a0155926004808401938290030181865afa15801562000175573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200019b919062000529565b6001600160a01b031663c9c653963060085f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000221919062000529565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200026c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000292919062000529565b600980546001600160a01b0319166001600160a01b0392909216919091179055620002c06012600a620004d8565b620002ce90612710620004ef565b60045f620002e35f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120600854909216815292529020556200031d6012600a620004d8565b6200032b90612710620004ef565b60035f620003405f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20556200036b5f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003a46012600a620004d8565b620003b290612710620004ef565b60405190815260200160405180910390a362000551565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200041d57815f1904821115620004015762000401620003c9565b808516156200040f57918102915b93841c9390800290620003e2565b509250929050565b5f826200043557506001620004d2565b816200044357505f620004d2565b81600181146200045c5760028114620004675762000487565b6001915050620004d2565b60ff8411156200047b576200047b620003c9565b50506001821b620004d2565b5060208310610133831016604e8410600b8410161715620004ac575081810a620004d2565b620004b88383620003dd565b805f1904821115620004ce57620004ce620003c9565b0290505b92915050565b5f620004e860ff84168362000425565b9392505050565b8082028115828204841417620004d257620004d2620003c9565b5f826200052457634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156200053a575f80fd5b81516001600160a01b0381168114620004e8575f80fd5b61145b806200055f5f395ff3fe60806040526004361061014a575f3560e01c806395d89b41116100b3578063cc1776d31161006d578063cc1776d314610372578063d579d4ed14610387578063db05e5cb1461039b578063dd62ed3e146103af578063ed684cc6146103f3578063f2fde38b14610412575f80fd5b806395d89b4114610155578063a9059cbb146102f8578063aa4bde2814610317578063aca2cd6e1461032c578063ae96ffe61461034b578063bc37e1a31461036a575f80fd5b8063400abdc711610104578063400abdc7146102425780634f7041a51461026157806370a0823114610276578063715018a6146102aa5780638a8c523c146102be5780638da5cb5b146102d2575f80fd5b806306fdde031461015557806307056d3714610196578063095ea7b3146101b757806318160ddd146101e657806323b872dd14610208578063313ce56714610227575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50604080518082018252600a815269544f4b454e5f4e414d4560b01b6020820152905161018d9190611044565b60405180910390f35b3480156101a1575f80fd5b506101b56101b0366004611090565b610431565b005b3480156101c2575f80fd5b506101d66101d13660046110c4565b61046e565b604051901515815260200161018d565b3480156101f1575f80fd5b506101fa610484565b60405190815260200161018d565b348015610213575f80fd5b506101d66102223660046110ee565b6104a2565b348015610232575f80fd5b506040516012815260200161018d565b34801561024d575f80fd5b506101b561025c36600461112c565b610537565b34801561026c575f80fd5b506101fa60065481565b348015610281575f80fd5b506101fa610290366004611143565b6001600160a01b03165f9081526003602052604090205490565b3480156102b5575f80fd5b506101b561057c565b3480156102c9575f80fd5b506101b56105ed565b3480156102dd575f80fd5b505f546040516001600160a01b03909116815260200161018d565b348015610303575f80fd5b506101d66103123660046110c4565b61062b565b348015610322575f80fd5b506101fa60015481565b348015610337575f80fd5b506101b561034636600461115e565b610637565b348015610356575f80fd5b506101b561036536600461112c565b61068a565b6101b56106cf565b34801561037d575f80fd5b506101fa60075481565b348015610392575f80fd5b506101b56107f6565b3480156103a6575f80fd5b506101b561082f565b3480156103ba575f80fd5b506101fa6103c9366004611199565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156103fe575f80fd5b506101b561040d36600461112c565b610875565b34801561041d575f80fd5b506101b561042c366004611143565b6108f7565b5f546001600160a01b031633146104635760405162461bcd60e51b815260040161045a906111c5565b60405180910390fd5b600691909155600755565b5f61047a338484610988565b5060015b92915050565b5f6104916012600a6112f0565b61049d906127106112fe565b905090565b5f6104ae848484610a4b565b61052d8433610528856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b81525060045f8b6001600160a01b03166001600160a01b031681526020019081526020015f205f6105083390565b6001600160a01b0316815260208101919091526040015f20549190610db8565b610988565b5060019392505050565b5f546001600160a01b031633146105605760405162461bcd60e51b815260040161045a906111c5565b61056c6012600a6112f0565b61057690826112fe565b60025550565b5f546001600160a01b031633146105a55760405162461bcd60e51b815260040161045a906111c5565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106165760405162461bcd60e51b815260040161045a906111c5565b6009805460ff60a01b1916600160a01b179055565b5f61047a338484610a4b565b5f546001600160a01b031633146106605760405162461bcd60e51b815260040161045a906111c5565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146106b35760405162461bcd60e51b815260040161045a906111c5565b6106bf6012600a6112f0565b6106c990826112fe565b60015550565b5f546001600160a01b031633146106f85760405162461bcd60e51b815260040161045a906111c5565b6008546107229030906001600160a01b03166107166012600a6112f0565b610528906127106112fe565b6008546001600160a01b031663f305d7194730610753816001600160a01b03165f9081526003602052604090205490565b5f806107665f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107cc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107f19190611315565b505050565b600a546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561082c573d5f803e3d5ffd5b50565b5f546001600160a01b031633146108585760405162461bcd60e51b815260040161045a906111c5565b6108646012600a6112f0565b610870906127106112fe565b600155565b5f546001600160a01b0316331461089e5760405162461bcd60e51b815260040161045a906111c5565b305f908152600360205260408120546108e5908360646108c06012600a6112f0565b6108cc906127106112fe565b6108d69190611340565b6108e091906112fe565b610df0565b91508190506108f381610e07565b5050565b5f546001600160a01b031633146109205760405162461bcd60e51b815260040161045a906111c5565b5f60055f6109355f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905561096581610f7b565b6001600160a01b03165f908152600560205260409020805460ff19166001179055565b6001600160a01b038316158015906109a857506001600160a01b03821615155b6109eb5760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b604482015260640161045a565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a995760405162461bcd60e51b81526020600482015260156024820152747472616e73666572207a65726f206164647265737360581b604482015260640161045a565b5f8111610adf5760405162461bcd60e51b81526020600482015260146024820152731d1c985b9cd9995c881e995c9bc8185b5bdd5b9d60621b604482015260640161045a565b6001600160a01b0383165f9081526005602052604081205460ff16158015610b1f57506001600160a01b0383165f9081526005602052604090205460ff16155b15610c5557600954600160a01b900460ff16610b39575f80fd5b6009546001600160a01b0390811690851603610bc55760015482610b71856001600160a01b03165f9081526003602052604090205490565b610b7b919061135f565b1115610bbc5760405162461bcd60e51b815260206004820152601060248201526f26b0bc103bb0b63632ba1022b93937b960811b604482015260640161045a565b50600654610c55565b6009546001600160a01b0390811690841603610c5557305f9081526003602052604090205460146064610bfa6012600a6112f0565b610c06906127106112fe565b610c109190611340565b610c1a9190611340565b81118015610c325750600954600160a81b900460ff16155b15610c4f57610c4f610c4a6002546108e08685610df0565b610e07565b50506007545b6001600160a01b0384165f90815260036020526040902054610c78908390611372565b6001600160a01b0385165f908152600360205260409020558015610d34575f6064610ca383856112fe565b610cad9190611340565b305f90815260036020526040902054909150610cca90829061135f565b305f90815260036020526040902055610ce38184611372565b9250306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d2a91815260200190565b60405180910390a3505b6001600160a01b0383165f90815260036020526040902054610d5790839061135f565b6001600160a01b038085165f8181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610daa9086815260200190565b60405180910390a350505050565b5f8184841115610ddb5760405162461bcd60e51b815260040161045a9190611044565b505f610de78486611372565b95945050505050565b5f818311610dfe5782610e00565b815b9392505050565b6009805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e4d57610e4d611385565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ea4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec89190611399565b81600181518110610edb57610edb611385565b6001600160a01b039283166020918202929092010152600854610f019130911684610988565b600854600a5460405163791ac94760e01b81526001600160a01b039283169263791ac94792610f3d9287925f92889291169042906004016113b4565b5f604051808303815f87803b158015610f54575f80fd5b505af1158015610f66573d5f803e3d5ffd5b50506009805460ff60a81b1916905550505050565b5f546001600160a01b03163314610fa45760405162461bcd60e51b815260040161045a906111c5565b6001600160a01b038116610ffa5760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161045a565b5f80546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b5f602080835283518060208501525f5b8181101561107057858101830151858201604001528201611054565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156110a1575f80fd5b50508035926020909101359150565b6001600160a01b038116811461082c575f80fd5b5f80604083850312156110d5575f80fd5b82356110e0816110b0565b946020939093013593505050565b5f805f60608486031215611100575f80fd5b833561110b816110b0565b9250602084013561111b816110b0565b929592945050506040919091013590565b5f6020828403121561113c575f80fd5b5035919050565b5f60208284031215611153575f80fd5b8135610e00816110b0565b5f806040838503121561116f575f80fd5b823561117a816110b0565b91506020830135801515811461118e575f80fd5b809150509250929050565b5f80604083850312156111aa575f80fd5b82356111b5816110b0565b9150602083013561118e816110b0565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124a57815f1904821115611230576112306111fc565b8085161561123d57918102915b93841c9390800290611215565b509250929050565b5f826112605750600161047e565b8161126c57505f61047e565b8160018114611282576002811461128c576112a8565b600191505061047e565b60ff84111561129d5761129d6111fc565b50506001821b61047e565b5060208310610133831016604e8410600b84101617156112cb575081810a61047e565b6112d58383611210565b805f19048211156112e8576112e86111fc565b029392505050565b5f610e0060ff841683611252565b808202811582820484141761047e5761047e6111fc565b5f805f60608486031215611327575f80fd5b8351925060208401519150604084015190509250925092565b5f8261135a57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561047e5761047e6111fc565b8181038181111561047e5761047e6111fc565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113a9575f80fd5b8151610e00816110b0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156114045784516001600160a01b0316835293830193918301916001016113df565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ab08ec72070d7cdebda42c2cae711df26e8ce2fbfeb18f170994c7ad98ae2dc064736f6c63430008170033