0x608060405234801561000f575f80fd5b50604051610da3380380610da383398101604081905261002e916101b1565b5f80546001600160a01b031916339081178255604051909182917f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b7908290a350600361007a85826102b2565b50600461008784826102b2565b506005805460ff191660ff84161790556100a282600a610467565b6100ac908261047c565b6006819055600780546001600160a01b031916339081179091555f81815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050610493565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610138575f80fd5b81516001600160401b038082111561015257610152610115565b604051601f8301601f19908116603f0116810190828211818310171561017a5761017a610115565b81604052838152866020858801011115610192575f80fd5b8360208701602083015e5f602085830101528094505050505092915050565b5f805f80608085870312156101c4575f80fd5b84516001600160401b03808211156101da575f80fd5b6101e688838901610129565b955060208701519150808211156101fb575f80fd5b5061020887828801610129565b935050604085015160ff8116811461021e575f80fd5b6060959095015193969295505050565b600181811c9082168061024257607f821691505b60208210810361026057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102ad57805f5260205f20601f840160051c8101602085101561028b5750805b601f840160051c820191505b818110156102aa575f8155600101610297565b50505b505050565b81516001600160401b038111156102cb576102cb610115565b6102df816102d9845461022e565b84610266565b602080601f831160018114610312575f84156102fb5750858301515b5f19600386901b1c1916600185901b178555610369565b5f85815260208120601f198616915b8281101561034057888601518255948401946001909101908401610321565b508582101561035d57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156103bf57815f19048211156103a5576103a5610371565b808516156103b257918102915b93841c939080029061038a565b509250929050565b5f826103d557506001610461565b816103e157505f610461565b81600181146103f757600281146104015761041d565b6001915050610461565b60ff84111561041257610412610371565b50506001821b610461565b5060208310610133831016604e8410600b8410161715610440575081810a610461565b61044a8383610385565b805f190482111561045d5761045d610371565b0290505b92915050565b5f61047560ff8416836103c7565b9392505050565b808202811582820484141761046157610461610371565b610903806104a05f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a08231116100885780639bb6aa8a116100635780639bb6aa8a146101a9578063a9059cbb146101bc578063c2af913b146101cf578063dd62ed3e146101d7575f80fd5b806370a082311461015f5780638da5cb5b1461018757806395d89b41146101a1575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461011057806323b872dd14610122578063313ce5671461013557806358a654481461014a575b5f80fd5b6100d761020f565b6040516100e49190610718565b60405180910390f35b6101006100fb366004610768565b61029f565b60405190151581526020016100e4565b6006545b6040519081526020016100e4565b610100610130366004610790565b610307565b60055460405160ff90911681526020016100e4565b61015d6101583660046107c9565b610474565b005b61011461016d3660046107c9565b6001600160a01b03165f9081526001602052604090205490565b5f546040516001600160a01b0390911681526020016100e4565b6100d76104c9565b61015d6101b7366004610768565b6104d8565b6101006101ca366004610768565b61057b565b61015d610671565b6101146101e53660046107e9565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b60606003805461021e9061081a565b80601f016020809104026020016040519081016040528092919081815260200182805461024a9061081a565b80156102955780601f1061026c57610100808354040283529160200191610295565b820191905f5260205f20905b81548152906001019060200180831161027857829003601f168201915b5050505050905090565b335f8181526002602090815260408083206001600160a01b03871680855290835281842086905590518581529293909290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060015b92915050565b6001600160a01b0383165f90815260026020908152604080832033845290915281205482111561038c5760405162461bcd60e51b815260206004820152602560248201527f54543a207472616e7366657220616d6f756e74206578636565647320616c6c6f60448201526477616e636560d81b60648201526084015b60405180910390fd5b6001600160a01b0384165f90815260016020526040812080548492906103b3908490610866565b90915550506001600160a01b0383165f90815260016020526040812080548492906103df908490610879565b90915550506001600160a01b0384165f90815260026020908152604080832033845290915281208054849290610416908490610866565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161046291815260200190565b60405180910390a35060019392505050565b6007546001600160a01b0316336001600160a01b0316146104a75760405162461bcd60e51b81526004016103839061088c565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461021e9061081a565b6007546001600160a01b0316336001600160a01b03161461050b5760405162461bcd60e51b81526004016103839061088c565b60408051602080820183526001600160a01b0385165f81815260018084528582208054888752928490529084528690558451818152928301869052929390917f5ee81488a8c866569c02800403bbf9145d931cf759737ed853eedb84dbb5a9e3910160405180910390a250505050565b335f908152600160205260408120548211156105e55760405162461bcd60e51b815260206004820152602360248201527f54543a207472616e7366657220616d6f756e7420657863656564732062616c616044820152626e636560e81b6064820152608401610383565b335f9081526001602052604081208054849290610603908490610866565b90915550506001600160a01b0383165f908152600160205260408120805484929061062f908490610879565b90915550506040518281526001600160a01b0384169033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016102f5565b5f546001600160a01b031633146106ca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610383565b5f805460405161dead926001600160a01b03909216917f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b791a35f80546001600160a01b03191661dead179055565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610763575f80fd5b919050565b5f8060408385031215610779575f80fd5b6107828361074d565b946020939093013593505050565b5f805f606084860312156107a2575f80fd5b6107ab8461074d565b92506107b96020850161074d565b9150604084013590509250925092565b5f602082840312156107d9575f80fd5b6107e28261074d565b9392505050565b5f80604083850312156107fa575f80fd5b6108038361074d565b91506108116020840161074d565b90509250929050565b600181811c9082168061082e57607f821691505b60208210810361084c57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561030157610301610852565b8082018082111561030157610301610852565b60208082526021908201527f43616c6c6572206973206e6f7420746865206f726967696e616c2063616c6c656040820152603960f91b60608201526080019056fea26469706673582212206566a644b26ebcb5fa96fcd15afac545eb9be8961edcae94dba6988f4155d73864736f6c63430008190033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000000000000557616e6b6f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000557414e4b4f000000000000000000000000000000000000000000000000000000