VeChain
Explorer
Mainnet
Search
Networks
Main
Test
Contract
0xac301D…a6DE
Summary
Transactions
Transfers
Address
0xac301D1BEC84e214444bfd0649aCfDdB1f2fa6DE
VET
0.00
VET
VTHO
0.00
VTHO
Master
0x30B76A6862A190c24506CDefF93e46Ff61D978C9
Deployer
0x30B76A6862A190c24506CDefF93e46Ff61D978C9
Code
0x608060405234801561001057600080fd5b50600436106103995760003560e01c806370a08231116101e9578063a22cb4651161010f578063d5abeb01116100ad578063efaec9181161007c578063efaec9181461083d578063f2fde38b14610850578063f48cc32614610863578063f9ff78f41461087657600080fd5b8063d5abeb01146107d3578063e602db67146107db578063e6113cfa146107ee578063e985e9c51461080157600080fd5b8063c3cda520116100e9578063c3cda52014610773578063c87b56dd14610786578063d539139314610799578063d547741f146107c057600080fd5b8063a22cb46514610745578063aa1b103f14610758578063b88d4fde1461076057600080fd5b80638a616bc01161018757806391ddadf41161015657806391ddadf41461070357806395d89b41146107225780639ab24eb01461072a578063a217fddf1461073d57600080fd5b80638a616bc01461068e5780638da5cb5b146106a15780638e539e8c146106b757806391d14854146106ca57600080fd5b8063799161d5116101c3578063799161d5146106455780637ecebe00146106585780638456cb591461066b57806384b0196e1461067357600080fd5b806370a0823114610617578063715018a61461062a57806378211f481461063257600080fd5b80633644e515116102ce5780634e71d92d1161026c5780635c19a95c1161023b5780635c19a95c146105c65780635c975abb146105d95780636108375f146105e45780636352211e1461060457600080fd5b80634e71d92d1461056c5780634f6ccce714610574578063587cde1e146105875780635944c753146105b357600080fd5b80633f4ba83a116102a85780633f4ba83a1461053657806342842e0e1461053e57806342966c68146105515780634bf5d7e91461056457600080fd5b80633644e5151461050857806336568abe146105105780633a46b1a81461052357600080fd5b806323b872dd1161033b578063282c51f311610315578063282c51f3146104895780632a55205a146104b05780632f2ff15d146104e25780632f745c59146104f557600080fd5b806323b872dd14610440578063248a9ca31461045357806324b76fd51461047657600080fd5b8063081812fc11610377578063081812fc146103f0578063095ea7b31461041b578063180b0d7e146103d957806318160ddd1461042e57600080fd5b806301ffc9a71461039e57806302fe5305146103c657806306fdde03146103db575b600080fd5b6103b16103ac366004614f34565b610889565b60405190151581526020015b60405180910390f35b6103d96103d4366004615010565b61089a565b005b6103e36108b9565b6040516103bd919061509d565b6104036103fe3660046150b0565b61094b565b6040516001600160a01b0390911681526020016103bd565b6103d96104293660046150e5565b610972565b6008545b6040519081526020016103bd565b6103d961044e36600461510f565b610aae565b6104326104613660046150b0565b6000908152600b602052604090206001015490565b6103d961048436600461514b565b610b25565b6104327f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b6104c36104be366004615192565b610d7b565b604080516001600160a01b0390931683526020830191909152016103bd565b6103d96104f03660046151b4565b610e36565b6104326105033660046150e5565b610e5b565b610432610f03565b6103d961051e3660046151b4565b610f12565b6104326105313660046150e5565b610f9a565b6103d9611034565b6103d961054c36600461510f565b611102565b6103d961055f3660046150b0565b61111d565b6103e36112fd565b6103d9611395565b6104326105823660046150b0565b6115a2565b6104036105953660046151e0565b6001600160a01b039081166000908152600e60205260409020541690565b6103d96105c13660046151fb565b611646565b6103d96105d43660046151e0565b611659565b600a5460ff166103b1565b6105f76105f23660046150b0565b611664565b6040516103bd919061524c565b6104036106123660046150b0565b61173d565b6104326106253660046151e0565b6117a2565b6103d961183c565b6103b1610640366004615010565b61184e565b6103d96106533660046151e0565b611879565b6104326106663660046151e0565b611921565b6103d961193f565b61067b6119e9565b6040516103bd979695949392919061527a565b6103d961069c3660046150b0565b611a8e565b600a5461010090046001600160a01b0316610403565b6104326106c53660046150b0565b611aa7565b6103b16106d83660046151b4565b6000918252600b602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61070b611b2a565b60405165ffffffffffff90911681526020016103bd565b6103e3611b35565b6104326107383660046151e0565b611b44565b610432600081565b6103d961075336600461533a565b611b65565b6103d9611b70565b6103d961076e366004615371565b611b82565b6103d96107813660046153ed565b611c00565b6103e36107943660046150b0565b611d36565b6104327f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6103d96107ce3660046151b4565b611d9d565b601454610432565b6103d96107e9366004615010565b611dc2565b6103d96107fc3660046150e5565b611fd9565b6103b161080f36600461544d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6103d961084b366004615477565b6121c9565b6103d961085e3660046151e0565b612403565b6103b16108713660046150b0565b612490565b6103d9610884366004615495565b6124ff565b60006108948261280d565b92915050565b6108a261284b565b80516108b5906015906020840190614e8e565b5050565b6060600080546108c890615547565b80601f01602080910402602001604051908101604052809291908181526020018280546108f490615547565b80156109415780601f1061091657610100808354040283529160200191610941565b820191906000526020600020905b81548152906001019060200180831161092457829003601f168201915b5050505050905090565b6000610956826128ab565b506000908152600460205260409020546001600160a01b031690565b600061097d8261173d565b9050806001600160a01b0316836001600160a01b03161415610a0c5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b0382161480610a285750610a28813361080f565b610a9a5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610a03565b610aa4838361290f565b505050565b565b50565b610ab8338261297d565b610b1a5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610a03565b610aa48383836129fc565b610b4c6040518060400160405280600681526020016552454445454d60d01b81525061184e565b610bbe5760405162461bcd60e51b815260206004820152603a60248201527f455243373231202d2052656465656d3a205468697320636f6e7472616374206460448201527f6f6573206e6f7420737570706f7274207468652072656465656d0000000000006064820152608401610a03565b60008281526002602052604090205433906001600160a01b03168114610c4c5760405162461bcd60e51b815260206004820152603760248201527f455243373231202d2052656465656d3a2063616c6c6572206973206e6f74207460448201527f6865206f776e6572206f662074686520746f6b656e49640000000000000000006064820152608401610a03565b6000838152601960205260409020546001600160a01b031615610cd75760405162461bcd60e51b815260206004820152602760248201527f455243373231202d2052656465656d3a20546f6b656e20616c7265616479207260448201527f656465656d6564000000000000000000000000000000000000000000000000006064820152608401610a03565b6040805180820182526001600160a01b038381168252602080830186815260008881526019835294909420835181546001600160a01b03191693169290921782559251805192939192610d309260018501920190614e8e565b5090505082816001600160a01b03167f78e6c3f67f57c26578f2487b930b70d844bcc8dd8f4d629fb4af81252ab5aa6584604051610d6e919061509d565b60405180910390a3505050565b6000828152601b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046bffffffffffffffffffffffff16928201929092528291610dfa575060408051808201909152601a546001600160a01b0381168252600160a01b90046bffffffffffffffffffffffff1660208201525b602081015160009061271090610e1e906bffffffffffffffffffffffff1687615592565b610e2891906155c7565b915196919550909350505050565b6000828152600b6020526040902060010154610e5181612c0a565b610aa48383612c14565b6000610e66836117a2565b8210610eda5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610a03565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6000610f0d612cb6565b905090565b6001600160a01b0381163314610f905760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a03565b6108b58282612de1565b6000610fa4611b2a565b65ffffffffffff168210610ffa5760405162461bcd60e51b815260206004820152601460248201527f566f7465733a20667574757265206c6f6f6b75700000000000000000000000006044820152606401610a03565b61102461100683612e64565b6001600160a01b0385166000908152600f6020526040902090612ee4565b6001600160e01b03169392505050565b61103c61284b565b61106260405180604001604052806005815260200164504155534560d81b81525061184e565b6110fa5760405162461bcd60e51b815260206004820152604260248201527f455243373231202d2050617573653a205468697320636f6e747261637420646f60448201527f6573206e6f742068617665207065726d697373696f6e20746f20756e7061757360648201527f652e000000000000000000000000000000000000000000000000000000000000608482015260a401610a03565b610aa9612f99565b610aa483838360405180602001604052806000815250611b82565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84861114781612c0a565b3360009081527f6e6b940fd38f04962e96e3f162add428e7eb5daad8003be9ff37afca77846669602052604090205460ff166111c55760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f742061206275726e6572000000000000000000006044820152606401610a03565b6111ea60405180604001604052806004815260200163212aa92760e11b81525061184e565b61125c5760405162461bcd60e51b815260206004820152603e60248201527f455243373231202d204275726e3a205468697320636f6e747261637420646f6560448201527f73206e6f742068617665207065726d697373696f6e20746f206275726e2e00006064820152608401610a03565b336112668361173d565b6001600160a01b0316146112e25760405162461bcd60e51b815260206004820152603560248201527f455243373231202d204275726e3a2063616c6c6572206973206e6f742074686560448201527f206f776e6572206f662074686520746f6b656e496400000000000000000000006064820152608401610a03565b6112eb82612feb565b506000908152601b6020526040812055565b606043611308611b2a565b65ffffffffffff161461135d5760405162461bcd60e51b815260206004820152601860248201527f566f7465733a2062726f6b656e20636c6f636b206d6f646500000000000000006044820152606401610a03565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6113bf60405180604001604052806009815260200168434c41494d41424c4560b81b81525061184e565b61141b5760405162461bcd60e51b815260206004820152602760248201527f455243373231202d205468697320636f6e7472616374206973206e6f7420636c60448201526661696d61626c6560c81b6064820152608401610a03565b601654600160a01b900460ff161561149b5760405162461bcd60e51b815260206004820152603360248201527f455243373231202d205468697320636f6e74726163742072657175697265732060448201527f612070617373776f726420746f20636c61696d000000000000000000000000006064820152608401610a03565b6016546040517fc70f57540000000000000000000000000000000000000000000000000000000081523360048201819052916000916001600160a01b039091169063c70f57549060240160206040518083038186803b1580156114fd57600080fd5b505afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153591906155e9565b9050806115995760405162461bcd60e51b815260206004820152602c60248201527f455243373231202d2063616c6c657220616464726573732063616e6e6f74206360448201526b1b185a5b481d1a19481b999d60a21b6064820152608401610a03565b6108b582613098565b60006115ad60085490565b82106116215760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610a03565b6008828154811061163457611634615606565b90600052602060002001549050919050565b61164e61284b565b610aa48383836131c9565b336108b581836132f4565b604080518082019091526000815260606020820152600082815260196020908152604091829020825180840190935280546001600160a01b0316835260018101805491928401916116b490615547565b80601f01602080910402602001604051908101604052809291908181526020018280546116e090615547565b801561172d5780601f106117025761010080835404028352916020019161172d565b820191906000526020600020905b81548152906001019060200180831161171057829003601f168201915b5050505050815250509050919050565b6000818152600260205260408120546001600160a01b0316806108945760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610a03565b60006001600160a01b0382166118205760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610a03565b506001600160a01b031660009081526003602052604090205490565b61184461284b565b610aa96000613366565b6000601882604051611860919061561c565b9081526040519081900360200190205460ff1692915050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66118a381612c0a565b3360009081527ff70e363b3d7895af770c4a138460777d52eebd3cb9962ccc6b58721f6127bbc8602052604090205460ff166115995760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f742061206d696e746572000000000000000000006044820152606401610a03565b6001600160a01b038116600090815260116020526040812054610894565b61194761284b565b61196d60405180604001604052806005815260200164504155534560d81b81525061184e565b6119e1576040805162461bcd60e51b81526020600482015260248101919091527f455243373231202d2050617573653a205468697320636f6e747261637420646f60448201527f6573206e6f742068617665207065726d697373696f6e20746f2070617573652e6064820152608401610a03565b610aa96134bc565b600060608082808083611a1d7f566f726a00000000000000000000000000000000000000000000000000000004600c6134f9565b611a487f312e302e30000000000000000000000000000000000000000000000000000005600d6134f9565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b611a9661284b565b6000908152601b6020526040812055565b6000611ab1611b2a565b65ffffffffffff168210611b075760405162461bcd60e51b815260206004820152601460248201527f566f7465733a20667574757265206c6f6f6b75700000000000000000000000006044820152606401610a03565b611b1b611b1383612e64565b601090612ee4565b6001600160e01b031692915050565b6000610f0d4361359d565b6060600180546108c890615547565b6001600160a01b0381166000908152600f60205260408120611b1b9061361b565b6108b5338383613655565b611b7861284b565b610aa96000601a55565b611b8c338361297d565b611bee5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608401610a03565b611bfa8484848461371c565b50505050565b83421115611c505760405162461bcd60e51b815260206004820152601860248201527f566f7465733a207369676e6174757265206578706972656400000000000000006044820152606401610a03565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611cca90611cc29060a0016040516020818303038152906040528051906020012061379a565b8585856137e2565b9050611cd58161380a565b8614611d235760405162461bcd60e51b815260206004820152601460248201527f566f7465733a20696e76616c6964206e6f6e63650000000000000000000000006044820152606401610a03565b611d2d81886132f4565b50505050505050565b6060611d41826128ab565b6000611d4b613832565b90506000815111611d6b5760405180602001604052806000815250611d96565b80611d7584613841565b604051602001611d86929190615638565b6040516020818303038152906040525b9392505050565b6000828152600b6020526040902060010154611db881612c0a565b610aa48383612de1565b611dec60405180604001604052806009815260200168434c41494d41424c4560b81b81525061184e565b611e485760405162461bcd60e51b815260206004820152602760248201527f455243373231202d205468697320636f6e7472616374206973206e6f7420636c60448201526661696d61626c6560c81b6064820152608401610a03565b601654600160a01b900460ff161515600114611ecc5760405162461bcd60e51b815260206004820152603760248201527f455243373231202d205468697320636f6e747261637420646f6573207265717560448201527f69726520612070617373776f726420746f20636c61696d0000000000000000006064820152608401610a03565b6016546040517f957f177400000000000000000000000000000000000000000000000000000000815233916000916001600160a01b039091169063957f177490611f1c9085908790600401615667565b60206040518083038186803b158015611f3457600080fd5b505afa158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c91906155e9565b905080611fd05760405162461bcd60e51b815260206004820152602c60248201527f455243373231202d2063616c6c657220616464726573732063616e6e6f74206360448201526b1b185a5b481d1a19481b999d60a21b6064820152608401610a03565b610aa482613098565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661200381612c0a565b3360009081527ff70e363b3d7895af770c4a138460777d52eebd3cb9962ccc6b58721f6127bbc8602052604090205460ff166120815760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f742061206d696e746572000000000000000000006044820152606401610a03565b6120ab6040518060400160405280600981526020016853454c45435449564560b81b81525061184e565b6121435760405162461bcd60e51b815260206004820152604c60248201527f455243373231202d204d696e743a205468697320636f6e747261637420646f6560448201527f73206e6f742068617665207065726d697373696f6e20746f206d696e7420736560648201527f6c65637420746f6b656e732e0000000000000000000000000000000000000000608482015260a401610a03565b612151601380546001019055565b600061215c60135490565b90506014548111156121bf5760405162461bcd60e51b815260206004820152602660248201527f4552433732313a20546f6b656e4964206f757473696465206f6620746f6b656e604482015265081b1a5b5a5d60d21b6064820152608401610a03565b611bfa84846138eb565b6121d161284b565b6121fb60405180604001604052806009815260200168434c41494d41424c4560b81b81525061184e565b6122575760405162461bcd60e51b815260206004820152602760248201527f455243373231202d205468697320636f6e7472616374206973206e6f7420636c60448201526661696d61626c6560c81b6064820152608401610a03565b81156122e257601654600160a01b900460ff16156122dd5760405162461bcd60e51b815260206004820152603b60248201527f455243373231202d205468697320636f6e747261637420616c7265616479207260448201527f6571756972657320612070617373776f726420746f20636c61696d00000000006064820152608401610a03565b612387565b601654600160a01b900460ff166123875760405162461bcd60e51b815260206004820152604360248201527f455243373231202d205468697320636f6e747261637420616c7265616479206460448201527f6f6573206e6f74207265717569726520612070617373776f726420746f20636c60648201527f61696d0000000000000000000000000000000000000000000000000000000000608482015260a401610a03565b601680547fffffffffffffffffffffff00000000000000000000000000000000000000000016600160a01b8415159081026001600160a01b031916919091176001600160a01b0384169081179092556040517f818b233a1ba8fe2dba0fa170a3d459fe03b21e3fb8e99096bb7c1fb1281968fb90600090a35050565b61240b61284b565b6001600160a01b0381166124875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a03565b610aab81613366565b60006124b96040518060400160405280600681526020016552454445454d60d01b81525061184e565b80156124db57506000828152600260205260409020546001600160a01b031633145b80156108945750506000908152601960205260409020546001600160a01b03161590565b61250761284b565b8060008151811061251a5761251a615606565b6020026020010151601860405180604001604052806004815260200163212aa92760e11b81525060405161254e919061561c565b908152604051908190036020019020805491151560ff1990921691909117905580518190600190811061258357612583615606565b6020026020010151601860405180604001604052806005815260200164504155534560d81b8152506040516125b8919061561c565b908152604051908190036020019020805491151560ff199092169190911790558051819060029081106125ed576125ed615606565b6020026020010151601860405180604001604052806009815260200168434c41494d41424c4560b81b815250604051612626919061561c565b908152604051908190036020019020805491151560ff1990921691909117905580518190600390811061265b5761265b615606565b602002602001015160186040518060400160405280600681526020016552454445454d60d01b815250604051612691919061561c565b908152604051908190036020019020805491151560ff199092169190911790558051819060029081106126c6576126c6615606565b60200260200101511515816001815181106126e3576126e3615606565b602002602001015115158260008151811061270057612700615606565b602002602001015115157fc5efaa1aa7f8709cf7a1d5fcabf38bd9ef53f0e3bd97f1b5b773e9533a23f4a98460038151811061273e5761273e615606565b6020026020010151604051612757911515815260200190565b60405180910390a450565b600060208351101561277e5761277783613905565b9050610894565b8282815161278f9260200190614e8e565b5060ff9050610894565b600a80546001600160a01b038381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b90565b60006001600160e01b031982167f2a55205a00000000000000000000000000000000000000000000000000000000148061089457506108948261395c565b600a546001600160a01b03610100909104163314610aa95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a03565b6000818152600260205260409020546001600160a01b0316610aab5760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610a03565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906129448261173d565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806129898361173d565b9050806001600160a01b0316846001600160a01b031614806129d057506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806129f45750836001600160a01b03166129e98461094b565b6001600160a01b0316145b949350505050565b826001600160a01b0316612a0f8261173d565b6001600160a01b031614612a735760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610a03565b6001600160a01b038216612aee5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a03565b612afb8383836001613967565b826001600160a01b0316612b0e8261173d565b6001600160a01b031614612b725760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610a03565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610aa48383836001613973565b610aab813361397f565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff166108b5576000828152600b602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612c723390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000306001600160a01b037f000000000000000000000000ac301d1bec84e214444bfd0649acfddb1f2fa6de16148015612d0f57507f00000000851caf3cfdb6e899cf5958bfb1ac3413d346d43539627e6be7ec1b4a46145b15612d3957507f96ebde1e6ab2c13a3840c32e7779a10c72ba6846a87d4bed154b55ade9b32f1590565b610f0d604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f84f1dbb26117f991ecd75469675019d33fe81c751fcb3c99805e361226eefd47918101919091527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c60608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff16156108b5576000828152600b602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600063ffffffff821115612ee05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610a03565b5090565b815460009081816005811115612f41576000612eff846139f4565b612f099085615689565b60008881526020902090915081015463ffffffff9081169087161015612f3157809150612f3f565b612f3c8160016156a0565b92505b505b6000612f4f87878585613ad9565b90508015612f8b57612f7487612f66600184615689565b600091825260209091200190565b5464010000000090046001600160e01b0316612f8e565b60005b979650505050505050565b612fa1613b2f565b600a805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000612ff68261173d565b9050613006816000846001613967565b61300f8261173d565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a46108b5816000846001613973565b6130c26040518060400160405280600981526020016853454c45435449564560b81b81525061184e565b156131355760405162461bcd60e51b815260206004820152603f60248201527f455243373231202d204d696e743a205468697320636f6e74726163742072657160448201527f69757265732073656c65637420746f6b656e2049447320746f206d696e742e006064820152608401610a03565b613143601280546001019055565b613151601380546001019055565b600061315c60135490565b90506014548111156131bf5760405162461bcd60e51b815260206004820152602660248201527f4552433732313a20546f6b656e4964206f757473696465206f6620746f6b656e604482015265081b1a5b5a5d60d21b6064820152608401610a03565b6108b582826138eb565b6127106bffffffffffffffffffffffff8216111561324f5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c2065786365656460448201527f2073616c655072696365000000000000000000000000000000000000000000006064820152608401610a03565b6001600160a01b0382166132a55760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610a03565b6040805180820182526001600160a01b0393841681526bffffffffffffffffffffffff92831660208083019182526000968752601b90529190942093519051909116600160a01b029116179055565b6001600160a01b038281166000818152600e602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610aa4818361336186613b81565b613b8c565b600a5461010090046001600160a01b0316613382600083612c14565b6133ac7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a683612c14565b6133d67f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84883612c14565b6134007f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a682612de1565b61342a7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84882612de1565b613435600082612de1565b6017546040517f01378b580000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038481166024830152909116906301378b5890604401600060405180830381600087803b15801561349b57600080fd5b505af11580156134af573d6000803e3d6000fd5b505050506108b582612799565b6134c4613cf8565b600a805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612fce3390565b606060ff831461350c5761277783613d4b565b81805461351890615547565b80601f016020809104026020016040519081016040528092919081815260200182805461354490615547565b80156135915780601f1061356657610100808354040283529160200191613591565b820191906000526020600020905b81548152906001019060200180831161357457829003601f168201915b50505050509050610894565b600065ffffffffffff821115612ee05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201527f38206269747300000000000000000000000000000000000000000000000000006064820152608401610a03565b8054600090801561364c5761363583612f66600184615689565b5464010000000090046001600160e01b0316611d96565b60009392505050565b816001600160a01b0316836001600160a01b031614156136b75760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a03565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610d6e565b6137278484846129fc565b61373384848484613d8a565b611bfa5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610a03565b60006108946137a7612cb6565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b60008060006137f387878787613edf565b9150915061380081613fa3565b5095945050505050565b6001600160a01b03811660009081526011602052604090208054600181018255905b50919050565b6060601580546108c890615547565b6060600061384e8361410c565b600101905060008167ffffffffffffffff81111561386e5761386e614f51565b6040519080825280601f01601f191660200182016040528015613898576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85049450846138de576138e3565b6138a2565b509392505050565b6108b58282604051806020016040528060008152506141ee565b600080829050601f8151111561394957826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401610a03919061509d565b8051613954826156b8565b179392505050565b60006108948261426c565b611bfa848484846142aa565b611bfa8484848461432f565b6000828152600b602090815260408083206001600160a01b038516845290915290205460ff166108b5576139b28161433f565b6139bd836020614351565b6040516020016139ce9291906156dc565b60408051601f198184030181529082905262461bcd60e51b8252610a039160040161509d565b600081613a0357506000919050565b60006001613a1084614532565b901c6001901b90506001818481613a2957613a296155b1565b048201901c90506001818481613a4157613a416155b1565b048201901c90506001818481613a5957613a596155b1565b048201901c90506001818481613a7157613a716155b1565b048201901c90506001818481613a8957613a896155b1565b048201901c90506001818481613aa157613aa16155b1565b048201901c90506001818481613ab957613ab96155b1565b048201901c9050611d9681828581613ad357613ad36155b1565b046145c6565b60005b818310156138e3576000613af084846145dc565b60008781526020902090915063ffffffff86169082015463ffffffff161115613b1b57809250613b29565b613b268160016156a0565b93505b50613adc565b600a5460ff16610aa95760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610a03565b6000610894826117a2565b816001600160a01b0316836001600160a01b031614158015613bae5750600081115b15610aa4576001600160a01b03831615613c56576001600160a01b0383166000908152600f602052604081208190613bf1906145f7613bec86614603565b614682565b6001600160e01b031691506001600160e01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613c4b929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610aa4576001600160a01b0382166000908152600f602052604081208190613c8f906146cb613bec86614603565b6001600160e01b031691506001600160e01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613ce9929190918252602082015260400190565b60405180910390a25050505050565b600a5460ff1615610aa95760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610a03565b60606000613d58836146d7565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60006001600160a01b0384163b15613ed757604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613dce90339089908890889060040161575d565b602060405180830381600087803b158015613de857600080fd5b505af1925050508015613e18575060408051601f3d908101601f19168201909252613e1591810190615799565b60015b613ebd573d808015613e46576040519150601f19603f3d011682016040523d82523d6000602084013e613e4b565b606091505b508051613eb55760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610a03565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506129f4565b5060016129f4565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613f165750600090506003613f9a565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613f6a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613f9357600060019250925050613f9a565b9150600090505b94509492505050565b6000816004811115613fb757613fb76157b6565b1415613fc05750565b6001816004811115613fd457613fd46157b6565b14156140225760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a03565b6002816004811115614036576140366157b6565b14156140845760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a03565b6003816004811115614098576140986157b6565b1415610aab5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a03565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310614155577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310614181576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061419f57662386f26fc10000830492506010015b6305f5e10083106141b7576305f5e100830492506008015b61271083106141cb57612710830492506004015b606483106141dd576064830492506002015b600a83106108945760010192915050565b6141f88383614718565b6142056000848484613d8a565b610aa45760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610a03565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806108945750610894826148bb565b6142b6848484846148f9565b600a5460ff1615611bfa5760405162461bcd60e51b815260206004820152602b60248201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760448201527f68696c65207061757365640000000000000000000000000000000000000000006064820152608401610a03565b61433a848483614a35565b611bfa565b60606108946001600160a01b03831660145b60606000614360836002615592565b61436b9060026156a0565b67ffffffffffffffff81111561438357614383614f51565b6040519080825280601f01601f1916602001820160405280156143ad576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143e4576143e4615606565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061442f5761442f615606565b60200101906001600160f81b031916908160001a9053506000614453846002615592565b61445e9060016156a0565b90505b60018111156144e3577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061449f5761449f615606565b1a60f81b8282815181106144b5576144b5615606565b60200101906001600160f81b031916908160001a90535060049490941c936144dc816157cc565b9050614461565b508315611d965760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a03565b600080608083901c1561454757608092831c92015b604083901c1561455957604092831c92015b602083901c1561456b57602092831c92015b601083901c1561457d57601092831c92015b600883901c1561458f57600892831c92015b600483901c156145a157600492831c92015b600283901c156145b357600292831c92015b600183901c156108945760010192915050565b60008183106145d55781611d96565b5090919050565b60006145eb60028484186155c7565b611d96908484166156a0565b6000611d9682846157e3565b60006001600160e01b03821115612ee05760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610a03565b6000806146be6146a0614693611b2a565b65ffffffffffff16612e64565b6146b66146ac8861361b565b868863ffffffff16565b879190614aab565b915091505b935093915050565b6000611d96828461580b565b600060ff8216601f811115610894576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821661476e5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a03565b6000818152600260205260409020546001600160a01b0316156147d35760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a03565b6147e1600083836001613967565b6000818152600260205260409020546001600160a01b0316156148465760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a03565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46108b5600083836001613973565b60006001600160e01b031982167f780e9d63000000000000000000000000000000000000000000000000000000001480610894575061089482614ab9565b60018111156149705760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610a03565b816001600160a01b0385166149cc576149c781600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6149ef565b836001600160a01b0316856001600160a01b0316146149ef576149ef8582614b54565b6001600160a01b038416614a0b57614a0681614bf1565b614a2e565b846001600160a01b0316846001600160a01b031614614a2e57614a2e8482614ca0565b5050505050565b6001600160a01b038316614a5757614a5460106146cb613bec84614603565b50505b6001600160a01b038216614a7957614a7660106145f7613bec84614603565b50505b6001600160a01b038381166000908152600e6020526040808220548584168352912054610aa492918216911683613b8c565b6000806146be858585614ce4565b60006001600160e01b031982167f80ac58cd000000000000000000000000000000000000000000000000000000001480614b1c57506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061089457507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610894565b60006001614b61846117a2565b614b6b9190615689565b600083815260076020526040902054909150808214614bbe576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090614c0390600190615689565b60008381526009602052604081205460088054939450909284908110614c2b57614c2b615606565b906000526020600020015490508060088381548110614c4c57614c4c615606565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480614c8457614c8461582d565b6001900381819060005260206000200160009055905550505050565b6000614cab836117a2565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b825460009081908015614e34576000614d0287612f66600185615689565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b031660208401529192509087161015614d845760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610a03565b8563ffffffff16816000015163ffffffff161415614dd45784614dac88612f66600186615689565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055614e24565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216640100000000029216919091179101555b6020015192508391506146c39050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a8152918220955192519093166401000000000291909316179201919091559050816146c3565b828054614e9a90615547565b90600052602060002090601f016020900481019282614ebc5760008555614f02565b82601f10614ed557805160ff1916838001178555614f02565b82800160010185558215614f02579182015b82811115614f02578251825591602001919060010190614ee7565b50612ee09291505b80821115612ee05760008155600101614f0a565b6001600160e01b031981168114610aab57600080fd5b600060208284031215614f4657600080fd5b8135611d9681614f1e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715614f9057614f90614f51565b604052919050565b600067ffffffffffffffff831115614fb257614fb2614f51565b614fc5601f8401601f1916602001614f67565b9050828152838383011115614fd957600080fd5b828260208301376000602084830101529392505050565b600082601f83011261500157600080fd5b611d9683833560208501614f98565b60006020828403121561502257600080fd5b813567ffffffffffffffff81111561503957600080fd5b6129f484828501614ff0565b60005b83811015615060578181015183820152602001615048565b83811115611bfa5750506000910152565b60008151808452615089816020860160208601615045565b601f01601f19169290920160200192915050565b602081526000611d966020830184615071565b6000602082840312156150c257600080fd5b5035919050565b80356001600160a01b03811681146150e057600080fd5b919050565b600080604083850312156150f857600080fd5b615101836150c9565b946020939093013593505050565b60008060006060848603121561512457600080fd5b61512d846150c9565b925061513b602085016150c9565b9150604084013590509250925092565b6000806040838503121561515e57600080fd5b82359150602083013567ffffffffffffffff81111561517c57600080fd5b61518885828601614ff0565b9150509250929050565b600080604083850312156151a557600080fd5b50508035926020909101359150565b600080604083850312156151c757600080fd5b823591506151d7602084016150c9565b90509250929050565b6000602082840312156151f257600080fd5b611d96826150c9565b60008060006060848603121561521057600080fd5b83359250615220602085016150c9565b915060408401356bffffffffffffffffffffffff8116811461524157600080fd5b809150509250925092565b602081526001600160a01b038251166020820152600060208301516040808401526129f46060840182615071565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e0818401526152b660e084018a615071565b83810360408501526152c8818a615071565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b8181101561531a578351835292840192918401916001016152fe565b50909c9b505050505050505050505050565b8015158114610aab57600080fd5b6000806040838503121561534d57600080fd5b615356836150c9565b915060208301356153668161532c565b809150509250929050565b6000806000806080858703121561538757600080fd5b615390856150c9565b935061539e602086016150c9565b925060408501359150606085013567ffffffffffffffff8111156153c157600080fd5b8501601f810187136153d257600080fd5b6153e187823560208401614f98565b91505092959194509250565b60008060008060008060c0878903121561540657600080fd5b61540f876150c9565b95506020870135945060408701359350606087013560ff8116811461543357600080fd5b9598949750929560808101359460a0909101359350915050565b6000806040838503121561546057600080fd5b615469836150c9565b91506151d7602084016150c9565b6000806040838503121561548a57600080fd5b82356154698161532c565b600060208083850312156154a857600080fd5b823567ffffffffffffffff808211156154c057600080fd5b818501915085601f8301126154d457600080fd5b8135818111156154e6576154e6614f51565b8060051b91506154f7848301614f67565b818152918301840191848101908884111561551157600080fd5b938501935b8385101561553b578435925061552b8361532c565b8282529385019390850190615516565b98975050505050505050565b600181811c9082168061555b57607f821691505b6020821081141561382c57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156155ac576155ac61557c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826155e457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156155fb57600080fd5b8151611d968161532c565b634e487b7160e01b600052603260045260246000fd5b6000825161562e818460208701615045565b9190910192915050565b6000835161564a818460208801615045565b83519083019061565e818360208801615045565b01949350505050565b6001600160a01b03831681526040602082015260006129f46040830184615071565b60008282101561569b5761569b61557c565b500390565b600082198211156156b3576156b361557c565b500190565b8051602080830151919081101561382c5760001960209190910360031b1b16919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615714816017850160208801615045565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351615751816028840160208801615045565b01602801949350505050565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261578f6080830184615071565b9695505050505050565b6000602082840312156157ab57600080fd5b8151611d9681614f1e565b634e487b7160e01b600052602160045260246000fd5b6000816157db576157db61557c565b506000190190565b60006001600160e01b03838116908316818110156158035761580361557c565b039392505050565b60006001600160e01b0380831681851680830382111561565e5761565e61557c565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220b9096091a316954dce7a91b07f3344b25eff367cb4d06f1be22f26d608d6902c64736f6c63430008080033