ETH Price: $1,658.22 (+3.86%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Initialize1517505262026-05-18 10:23:4920 days ago1779099829IN
0xb063CB90...6952edD90
0 ETH0.0000000948970.00100067

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

SpeedMarketsAMMCreator

Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled
Yes with 100 runs
Other Settings
london EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"timeFrame","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction[]","name":"directions","type":"uint8[]"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"indexed":false,"internalType":"struct SpeedMarketsAMMCreator.PendingChainedSpeedMarket","name":"_pendingChainedSpeedMarket","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"AddChainedSpeedMarket","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"strikeTime","type":"uint64"},{"internalType":"uint64","name":"delta","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction","name":"direction","type":"uint8"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"skewImpact","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"indexed":false,"internalType":"struct SpeedMarketsAMMCreator.PendingSpeedMarket","name":"_pendingSpeedMarket","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"AddSpeedMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_whitelistAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"_flag","type":"bool"}],"name":"AddedIntoWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_destination","type":"address"},{"indexed":false,"internalType":"address","name":"_collateral","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"AmountTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_pendingSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_createdSize","type":"uint256"}],"name":"CreateSpeedMarkets","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_errorMessage","type":"string"},{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"timeFrame","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction[]","name":"directions","type":"uint8[]"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"indexed":false,"internalType":"struct SpeedMarketsAMMCreator.PendingChainedSpeedMarket","name":"_pendingChainedSpeedMarket","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"LogChainedError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"},{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"timeFrame","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction[]","name":"directions","type":"uint8[]"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"indexed":false,"internalType":"struct SpeedMarketsAMMCreator.PendingChainedSpeedMarket","name":"_pendingChainedSpeedMarket","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"LogChainedErrorData","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_errorMessage","type":"string"},{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"strikeTime","type":"uint64"},{"internalType":"uint64","name":"delta","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction","name":"direction","type":"uint8"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"skewImpact","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"indexed":false,"internalType":"struct SpeedMarketsAMMCreator.PendingSpeedMarket","name":"_pendingSpeedMarket","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"LogError","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"},{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"strikeTime","type":"uint64"},{"internalType":"uint64","name":"delta","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction","name":"direction","type":"uint8"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"skewImpact","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"indexed":false,"internalType":"struct SpeedMarketsAMMCreator.PendingSpeedMarket","name":"_pendingSpeedMarket","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"_requestId","type":"bytes32"}],"name":"LogErrorData","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"PauseChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addressManager","type":"address"}],"name":"SetAddressManager","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"_maxCreationDelay","type":"uint64"}],"name":"SetMaxCreationDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxQueueSize","type":"uint256"}],"name":"SetMaxQueueSize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_strikeTimeEnabled","type":"bool"}],"name":"SetStrikeTimeEnabled","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"timeFrame","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction[]","name":"directions","type":"uint8[]"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"internalType":"struct SpeedMarketsAMMCreator.ChainedSpeedMarketParams","name":"_params","type":"tuple"}],"name":"addPendingChainedSpeedMarket","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"strikeTime","type":"uint64"},{"internalType":"uint64","name":"delta","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction","name":"direction","type":"uint8"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"skewImpact","type":"uint256"}],"internalType":"struct SpeedMarketsAMMCreator.SpeedMarketParams","name":"_params","type":"tuple"}],"name":"addPendingSpeedMarket","outputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelistAddress","type":"address"},{"internalType":"bool","name":"_flag","type":"bool"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressManager","outputs":[{"internalType":"contract IAddressManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum ISpeedMarketsAMM.OracleSource","name":"_oracleSource","type":"uint8"},{"internalType":"bytes[]","name":"_priceUpdateData","type":"bytes[]"}],"name":"createFromPendingChainedSpeedMarkets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"enum ISpeedMarketsAMM.OracleSource","name":"oracleSource","type":"uint8"},{"internalType":"bytes[]","name":"priceUpdateData","type":"bytes[]"},{"internalType":"uint64","name":"minDelta","type":"uint64"},{"internalType":"uint64[]","name":"allowedDeltas","type":"uint64[]"}],"internalType":"struct SpeedMarketsAMMCreator.CreateFromPendingSpeedParams","name":"_params","type":"tuple"}],"name":"createFromPendingSpeedMarkets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"_all","type":"bool"},{"internalType":"address[]","name":"_users","type":"address[]"},{"internalType":"uint256[]","name":"_createdAtArray","type":"uint256[]"}],"name":"deletePendingSpeedMarkets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPendingChainedSpeedMarkets","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"timeFrame","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction[]","name":"directions","type":"uint8[]"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"internalType":"struct SpeedMarketsAMMCreator.PendingChainedSpeedMarket[]","name":"pendingMarkets","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingChainedSpeedMarketsSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingSpeedMarkets","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"strikeTime","type":"uint64"},{"internalType":"uint64","name":"delta","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction","name":"direction","type":"uint8"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"skewImpact","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"internalType":"struct SpeedMarketsAMMCreator.PendingSpeedMarket[]","name":"pendingMarkets","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingSpeedMarketsSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initNonReentrant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_addressManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastPauseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxCreationDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingChainedSpeedMarkets","outputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"timeFrame","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingSpeedMarkets","outputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"asset","type":"bytes32"},{"internalType":"uint64","name":"strikeTime","type":"uint64"},{"internalType":"uint64","name":"delta","type":"uint64"},{"internalType":"uint256","name":"strikePrice","type":"uint256"},{"internalType":"uint256","name":"strikePriceSlippage","type":"uint256"},{"internalType":"enum SpeedMarket.Direction","name":"direction","type":"uint8"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"uint256","name":"buyinAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"skewImpact","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"requestIdToMarket","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addressManager","type":"address"}],"name":"setAddressManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_maxCreationDelay","type":"uint64"}],"name":"setMaxCreationDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxQueueSizeParam","type":"uint256"}],"name":"setMaxQueueSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_strikeTimeEnabled","type":"bool"}],"name":"setStrikeTimeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_destination","type":"address"},{"internalType":"address","name":"_collateral","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"proxyAddress","type":"address"}],"name":"transferOwnershipAtInit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
608060405234801561001057600080fd5b506157d080620000216000396000f3fe6080604052600436106101a75760003560e01c806353a47bb7116100e25780639e08ac25116100855780639e08ac2514610577578063aede07c014610597578063bc93233f146105b7578063c3b83f5f146105d7578063d35eb7f3146105f7578063ebc797721461060a578063f6264e751461061f578063f8021dad1461063f57600080fd5b806353a47bb71461040d5780635c975abb1461042d5780636032a02714610447578063766f924a1461046757806379ba5097146104a45780638411f183146104b95780638da5cb5b1461053b57806391b4ded91461056157600080fd5b80631936f21c1161014a5780631936f21c146102db5780631ab022ca146102fb5780631c07d3c31461033e5780632a789dc4146103765780633ab76e9f1461038b5780633ea330a3146103ab578063485cc955146103cd5780634bab19ad146103ed57600080fd5b806301f47471146101b35780630652b57a146101d557806306c933d8146101f557806308d56e501461023a57806313af40351461025c5780631627540c1461027c57806316c38b3c1461029c57806319297361146102bc57600080fd5b366101ae57005b600080fd5b3480156101bf57600080fd5b506101d36101ce366004614054565b610652565b005b3480156101e157600080fd5b506101d36101f0366004614095565b6106be565b34801561020157600080fd5b50610225610210366004614095565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024657600080fd5b5061024f61071c565b60405161023191906141ed565b34801561026857600080fd5b506101d3610277366004614095565b610926565b34801561028857600080fd5b506101d3610297366004614095565b610a3e565b3480156102a857600080fd5b506101d36102b736600461425d565b610a91565b3480156102c857600080fd5b506006545b604051908152602001610231565b3480156102e757600080fd5b506102cd6102f636600461427a565b610b03565b34801561030757600080fd5b506103316103163660046142b5565b600a602052600090815260409020546001600160a01b031681565b60405161023191906142ce565b34801561034a57600080fd5b5061035e6103593660046142b5565b610b75565b6040516102319c9b9a999897969594939291906142e2565b34801561038257600080fd5b506007546102cd565b34801561039757600080fd5b50600854610331906001600160a01b031681565b3480156103b757600080fd5b506103c0610c03565b6040516102319190614424565b3480156103d957600080fd5b506101d36103e8366004614473565b610df1565b3480156103f957600080fd5b506101d36104083660046144f7565b610ed0565b34801561041957600080fd5b50600154610331906001600160a01b031681565b34801561043957600080fd5b506003546102259060ff1681565b34801561045357600080fd5b506102cd610462366004614579565b61128b565b34801561047357600080fd5b5060055461048c9061010090046001600160401b031681565b6040516001600160401b039091168152602001610231565b3480156104b057600080fd5b506101d36112d4565b3480156104c557600080fd5b506104d96104d43660046142b5565b6113bf565b604080516001600160a01b039a8b16815260208101999099526001600160401b039097169688019690965260608701949094526080860192909252851660a085015260c08401529290921660e082015261010081019190915261012001610231565b34801561054757600080fd5b50600054610331906201000090046001600160a01b031681565b34801561056d57600080fd5b506102cd60025481565b34801561058357600080fd5b506101d36105923660046142b5565b611435565b3480156105a357600080fd5b506101d36105b236600461425d565b6114d2565b3480156105c357600080fd5b506101d36105d236600461458c565b61151b565b3480156105e357600080fd5b506101d36105f2366004614095565b611599565b6101d36106053660046145c7565b61169c565b34801561061657600080fd5b506101d3611ed0565b34801561062b57600080fd5b506101d361063a366004614640565b611f2e565b6101d361064d36600461465d565b611f8d565b61065a612809565b61066e6001600160a01b0383168483612883565b604080516001600160a01b038085168252851660208201529081018290527f3dfef6507ded35b9ec518bb3532736bd85a598bdcb440fdd2289ce92a771e7979060600160405180910390a1505050565b6106c6612809565b600880546001600160a01b0319166001600160a01b0383161790556040517f954328d28753080b3c499697bde218fd8b53e924669801835383aa346e6940ee906107119083906142ce565b60405180910390a150565b6007546060906001600160401b0381111561073957610739614697565b6040519080825280602002602001820160405280156107b757816020015b60408051610140810182526000808252602080830182905292820181905260608083018290526080830182905260a083015260c0820181905260e08201819052610100820181905261012082015282526000199092019101816107575790505b50905060005b60075481101561092257600781815481106107da576107da6146ad565b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b0316835260018101548385015260028101546001600160401b03168383015260038101546060840152600481015460808401526005810180548351818702810187019094528084529394919360a0860193928301828280156108b257602002820191906000526020600020906000905b82829054906101000a900460ff166001811115610890576108906140bf565b8152602060019283018181049485019490930390920291018084116108715790505b505050918352505060068201546001600160a01b0390811660208301526007830154604083015260088301541660608201526009909101546080909101528251839083908110610904576109046146ad565b6020026020010181905250808061091a906146d9565b9150506107bd565b5090565b6001600160a01b03811661097d5760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064015b60405180910390fd5b600154600160a01b900460ff16156109e95760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610974565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b038316620100000262010000600160b01b031990911617815560405160008051602061573b833981519152916107119184906146f2565b610a46612809565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107119083906142ce565b610a99612809565b60035460ff16151581151514610b00576003805460ff191682151590811790915560ff1615610ac757426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610711565b50565b6000600160046000828254610b18919061470c565b909155505060045460035460ff1615610b435760405162461bcd60e51b815260040161097490614725565b610b4c836128d5565b91506004548114610b6f5760405162461bcd60e51b815260040161097490614782565b50919050565b60068181548110610b8557600080fd5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901546001600160a01b039889169a5096986001600160401b0380881699600160401b90980416979596949560ff851695610100909504851694909216918c565b6006546060906001600160401b03811115610c2057610c20614697565b604051908082528060200260200182016040528015610caf57816020015b604080516101808101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101608201528252600019909201910181610c3e5790505b50905060005b6006548110156109225760068181548110610cd257610cd26146ad565b60009182526020918290206040805161018081018252600a90930290910180546001600160a01b031683526001808201549484019490945260028101546001600160401b0380821693850193909352600160401b9004909116606083015260038101546080830152600481015460a083015260058101549192909160c084019160ff90911690811115610d6757610d676140bf565b6001811115610d7857610d786140bf565b815260058201546001600160a01b03610100909104811660208301526006830154604083015260078301541660608201526008820154608082015260099091015460a0909101528251839083908110610dd357610dd36146ad565b60200260200101819052508080610de9906146d9565b915050610cb5565b600054610100900460ff16610e0c5760005460ff1615610e10565b303b155b610e735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610974565b600054610100900460ff16158015610e95576000805461ffff19166101011790555b610e9e83610926565b600880546001600160a01b0319166001600160a01b0384161790558015610ecb576000805461ff00191690555b505050565b3360009081526009602052604090205460ff16610eff5760405162461bcd60e51b8152600401610974906147b9565b8415610f1657610f1160066000613e13565b611284565b60005b6006548110156112825760008060005b86811015610fae57878782818110610f4357610f436146ad565b9050602002016020810190610f589190614095565b6001600160a01b031660068581548110610f7457610f746146ad565b60009182526020909120600a90910201546001600160a01b031603610f9c5760019250610fae565b80610fa6816146d9565b915050610f29565b5060005b8481101561101857858582818110610fcc57610fcc6146ad565b9050602002013560068581548110610fe657610fe66146ad565b90600052602060002090600a020160090154036110065760019150611018565b80611010816146d9565b915050610fb2565b506000861580159061102957508415155b1561103f578280156110385750815b905061105d565b861561104c57508161105d565b841561105957508061105d565b5060005b801561126c5760068054611073906001906147ea565b81548110611083576110836146ad565b90600052602060002090600a0201600685815481106110a4576110a46146ad565b600091825260209091208254600a9092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560028084018054918401805467ffffffffffffffff1981166001600160401b0394851690811783559254600160401b908190049094169093026001600160801b03199093169091179190911790556003808401549083015560048084015490830155600580840154908301805460ff90921692909160ff1916908381811115611168576111686140bf565b021790555060058281015490820180546001600160a01b03610100938490048116909302610100600160a81b03199091161790556006808401548184015560078085015490840180546001600160a01b03191691909316179091556008808401549083015560099283015492909101919091558054806111ea576111ea6147fd565b600082815260208120600a6000199093019283020180546001600160a01b03199081168255600182018390556002820180546001600160801b031916905560038201839055600482018390556005820180546001600160a81b03191690556006820183905560078201805490911690556008810182905560090155905561127a565b83611276816146d9565b9450505b505050610f19565b505b5050505050565b60006001600460008282546112a0919061470c565b909155505060045460035460ff16156112cb5760405162461bcd60e51b815260040161097490614725565b610b4c83612c13565b6001546001600160a01b0316331461134c5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610974565b60005460015460405160008051602061573b83398151915292611383926001600160a01b03620100009092048216929116906146f2565b60405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b600781815481106113cf57600080fd5b60009182526020909120600a90910201805460018201546002830154600384015460048501546006860154600787015460088801546009909801546001600160a01b03978816995095976001600160401b03909516969395929491841693909291169089565b61143d612809565b6000811161149d5760405162461bcd60e51b815260206004820152602760248201527f4d61782071756575652073697a652068617320746f20626520677265617465726044820152660207468616e20360cc1b6064820152608401610974565b600c8190556040518181527f79a87afea87ec3c30b4a8adb0163c56f865ba84524698194fa37c035b7eca22e90602001610711565b6114da612809565b600b805460ff19168215159081179091556040519081527f1b8e91cc273a8e1b9567ce4e98d59066450c93b2fa5e31f1fc1e740f1fc95a0590602001610711565b611523612809565b6001600160a01b03821661153657600080fd5b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527f58d7a3ccc34541e162fcfc87b84be7b78c34d1e1e7f15de6e4dd67d0fe70aecd910160405180910390a15050565b6115a1612809565b6001600160a01b0381166115e95760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610974565b600154600160a81b900460ff16156116395760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610974565b600080546001600160a01b038084166201000090810262010000600160b01b031990931692909217928390556001805460ff60a81b1916600160a81b17905560405160008051602061573b833981519152936107119390049091169084906146f2565b6001600460008282546116af919061470c565b909155505060045460035460ff16156116da5760405162461bcd60e51b815260040161097490614725565b3360009081526009602052604090205460ff166117095760405162461bcd60e51b8152600401610974906147b9565b60075415611ea9578161172e5760405162461bcd60e51b815260040161097490614813565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c09291908290030181865afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c91906148e8565b905060008560018111156117b2576117b26140bf565b036117c6576117c681608001518585612fff565b60008160a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118339190614990565b90506000805b600754811015611e5957600060078281548110611858576118586146ad565b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b0316835260018101548385015260028101546001600160401b03168383015260038101546060840152600481015460808401526005810180548351818702810187019094528084529394919360a08601939283018282801561193057602002820191906000526020600020906000905b82829054906101000a900460ff16600181111561190e5761190e6140bf565b8152602060019283018181049485019490930390920291018084116118ef5790505b505050918352505060068201546001600160a01b039081166020808401919091526007840154604080850191909152600885015490921660608401526009909301546080909201919091525191925060009161198e918491016149ad565b6040516020818303038152906040528051906020012090506119b48261012001516130cf565b15611a08576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b833981519152906119f990849084906149eb565b60405180910390a15050611e47565b600080611a278985602001518f8f8f90611a229190614b32565b6130f7565b91509150611a368282896132a0565b15611a8c576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b83398151915290611a7b9086908690614b5d565b60405180910390a150505050611e47565b611a9f82856060015186608001516132d1565b15611ae4576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b83398151915290611a7b9086908690614b98565b600060405180610120016040528086600001516001600160a01b031681526020018660200151815260200186604001516001600160401b031681526020018460070b81526020018f6001811115611b3d57611b3d6140bf565b815260a0870151602082015260c08701516001600160a01b0390811660408084019190915260e089015160608401526101008901518216608090930192909252600854915163bf40fac160e01b8152929350169063bf40fac190611bce90600401602080825260169082015275436861696e656453706565644d61726b657473414d4d60501b604082015260600190565b602060405180830381865afa158015611beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0f9190614baa565b6001600160a01b03166348a017d9826040518263ffffffff1660e01b8152600401611c3a9190614bc7565b6020604051808303816000875af1925050508015611c75575060408051601f3d908101601f19168201909252611c7291810190614baa565b60015b611d7657611c81614c81565b806308c379a003611cf05750611c95614c9d565b80611ca05750611cf2565b6000858152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b83398151915290611ce290839089908990614d76565b60405180910390a150611e41565b505b3d808015611d1c576040519150601f19603f3d011682016040523d82523d6000602084013e611d21565b606091505b506000858152600a60205260409081902080546001600160a01b03191661dead179055517fe9a2356141fc237f09ca67a6fac74a54c353f3540b3f405211c297a3b4fe987d90611ce290839089908990614d76565b60085460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611da590600401614dac565b602060405180830381865afa158015611dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de69190614baa565b6000878152600a6020526040902080546001600160a01b0319166001600160a01b038516179055875160c089015160e08a0151929350611e31928e928a92879287929190600161334b565b88611e3b816146d9565b99505050505b50505050505b80611e51816146d9565b915050611839565b506007805490611e6a906000613e34565b60408051828152602081018490527f1ab7a95ec65186d9eb7b80e9d2992235330d07b4ce15407b3bc40cefed7af834910160405180910390a150505050505b6004548114611eca5760405162461bcd60e51b815260040161097490614782565b50505050565b60055460ff1615611f195760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610974565b6005805460ff19166001908117909155600455565b611f36612809565b6005805468ffffffffffffffff0019166101006001600160401b038416908102919091179091556040519081527f41b95b0cd63e823b0fff2701a35e7ab970829374fa79149ca1b1d1dce73e001890602001610711565b600160046000828254611fa0919061470c565b909155505060045460035460ff1615611fcb5760405162461bcd60e51b815260040161097490614725565b3360009081526009602052604090205460ff16611ffa5760405162461bcd60e51b8152600401610974906147b9565b600654156127e45760006120116020840184614dd4565b9050116120305760405162461bcd60e51b815260040161097490614813565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c09291908290030181865afa15801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e91906148e8565b60085460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac1906120d290600401614dac565b602060405180830381865afa1580156120ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121139190614baa565b905060006121246020860186614e1d565b6001811115612135576121356140bf565b03612155576080820151612155906121506020870187614dd4565b612fff565b60008260a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c29190614990565b90506000805b600654811015612793576000600682815481106121e7576121e76146ad565b60009182526020918290206040805161018081018252600a90930290910180546001600160a01b031683526001808201549484019490945260028101546001600160401b0380821693850193909352600160401b9004909116606083015260038101546080830152600481015460a083015260058101549192909160c084019160ff9091169081111561227c5761227c6140bf565b600181111561228d5761228d6140bf565b815260058201546001600160a01b0361010090910481166020808401919091526006840154604080850191909152600785015490921660608401526008840154608084015260099093015460a090920191909152519192506000916122f491849101614e3a565b60405160208183030381529060405280519060200120905061231a8261016001516130cf565b1561236e576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061235f9084908490614e49565b60405180910390a15050612781565b61238a826040015183606001518c61238590614ef4565b61362c565b156123cf576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061235f9084908490614f9e565b6000806124078a85602001518e60000160208101906123ee9190614e1d565b8f80602001906123fe9190614dd4565b611a2291614b32565b915091506124168282896132a0565b1561246c576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061245b9086908690614fdf565b60405180910390a150505050612781565b61247f8285608001518660a001516132d1565b156124c4576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061245b9086908690614ff2565b600060405180610180016040528086600001516001600160a01b031681526020018660200151815260200186604001516001600160401b0316815260200186606001516001600160401b031681526020018460070b8152602001836001600160401b031681526020018e60000160208101906125409190614e1d565b6001811115612551576125516140bf565b81526020018660c00151600181111561256c5761256c6140bf565b81526020018660e001516001600160a01b0316815260200186610100015181526020018661012001516001600160a01b031681526020018661014001518152509050886001600160a01b0316636ce6c3ca826040518263ffffffff1660e01b81526004016125da9190615005565b6020604051808303816000875af1925050508015612615575060408051601f3d908101601f1916820190925261261291810190614baa565b60015b61271657612621614c81565b806308c379a0036126905750612635614c9d565b806126405750612692565b6000858152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b83398151915290612682908390899089906150f3565b60405180910390a15061277b565b505b3d8080156126bc576040519150601f19603f3d011682016040523d82523d6000602084013e6126c1565b606091505b506000858152600a60205260409081902080546001600160a01b03191661dead179055517f4aea26aea125896a2852f331d17a39226261bb9ddd3f54f9d6ef483332b1d31c90612682908390899089906150f3565b80600a600087815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061276c8a86838e8a600001518b60e001518c6101000151600061334b565b87612776816146d9565b985050505b50505050505b8061278b816146d9565b9150506121c8565b5060068054906127a4906000613e13565b60408051828152602081018490527f1ab7a95ec65186d9eb7b80e9d2992235330d07b4ce15407b3bc40cefed7af834910160405180910390a15050505050505b60045481146128055760405162461bcd60e51b815260040161097490614782565b5050565b6000546201000090046001600160a01b031633146128815760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610974565b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ecb90849061373c565b600080600c54116128f85760405162461bcd60e51b815260040161097490615126565b600c546007541061291b5760405162461bcd60e51b815260040161097490615156565b6000604051806101400160405280336001600160a01b03168152602001846000013581526020018460200160208101906129559190614640565b6001600160401b0316815260200184604001358152602001846060013581526020018480608001906129879190614dd4565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506020016129ce60c0860160a08701614095565b6001600160a01b0316815260c085013560208201526040016129f7610100860160e08701614095565b6001600160a01b039081168252426020928301526007805460018101825560009190915283517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600a90920291820180546001600160a01b03191691909316178255838301517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68982015560408401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a8201805467ffffffffffffffff19166001600160401b0390921691909117905560608401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b82015560808401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68c82015560a0840151805194955085949293612b58937fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68d90930192910190613e55565b5060c08201516006820180546001600160a01b039283166001600160a01b03199182161790915560e0840151600784015561010084015160088401805491909316911617905561012090910151600990910155604051612bbc9082906020016149ad565b6040516020818303038152906040528051906020012091507fa4a06fbc3cb950ac65c422fd933aa21d293294483682c36c36c2ce691b39134c8183604051612c05929190615187565b60405180910390a150919050565b600080600c5411612c365760405162461bcd60e51b815260040161097490615126565b600c5460065410612c595760405162461bcd60e51b815260040161097490615156565b600b5460ff1680612c805750612c756040830160208401614640565b6001600160401b0316155b612cc85760405162461bcd60e51b815260206004820152601960248201527814dd1c9a5ad9481d1a5b59481b9bdd081cdd5c1c1bdc9d1959603a1b6044820152606401610974565b6000604051806101800160405280336001600160a01b0316815260200184600001358152602001846020016020810190612d029190614640565b6001600160401b03168152602001612d206060860160408701614640565b6001600160401b0316815260608086013560208301526080860135604083015201612d5160c0860160a08701614e1d565b6001811115612d6257612d626140bf565b8152602001612d7760e0860160c08701614095565b6001600160a01b0316815260e08501356020820152604001612da161012086016101008701614095565b6001600160a01b0390811682526101208601356020808401919091524260409384015260068054600181810183556000929092528551600a9091027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81018054929095166001600160a01b0319909216919091178455918501517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40830155928401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418201805460608701516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560808401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4282015560a08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4382015560c08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d449091018054949550859492939192909160ff19909116908381811115612f3657612f366140bf565b021790555060e0820151600582018054610100600160a81b0319166101006001600160a01b0393841681029190911790915583015160068301556101208301516007830180546001600160a01b03191691909216179055610140820151600882015561016090910151600990910155604051612fb6908290602001614e3a565b6040516020818303038152906040528051906020012091507fe59a3a16cdfcdb489bf3b4458738fea0061d879699ae38063f5bf87c02102b208183604051612c059291906151a9565b60405163d47eed4560e01b815283906001600160a01b0382169063ef9e5e2890829063d47eed459061303790889088906004016151ef565b602060405180830381865afa158015613054573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613078919061528a565b85856040518463ffffffff1660e01b81526004016130979291906151ef565b6000604051808303818588803b1580156130b057600080fd5b505af11580156130c4573d6000803e3d6000fd5b505050505050505050565b60055460009042906130ef9061010090046001600160401b03168461470c565b111592915050565b600080600184600181111561310e5761310e6140bf565b0361327c5760a0860151604051631237795960e21b8152600481018790526000906001600160a01b038316906348dde56490602401602060405180830381865afa158015613160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613184919061528a565b9050606060005b86518160ff16101561322a576000878260ff16815181106131ae576131ae6146ad565b60200260200101518060200190518101906131c991906152f2565b9150506000818060200190518101906131e291906153b9565b90508481600001510361321557888360ff1681518110613204576132046146ad565b60200260200101519350505061322a565b5050808061322290615468565b91505061318b565b508051600003613241576000945060009350613274565b600061324c8261380e565b90506402540be4008160c00151613263919061549d565b9550806020015163ffffffff169450505b505050613297565b60006132888787613bff565b80516060909101519093509150505b94509492505050565b6000426132ad83856154db565b6001600160401b03161115806132c7575060008460070b13155b90505b9392505050565b600080670de0b6b3a76400006132e7848261470c565b6132f19086615502565b6132fb9190615521565b90506000670de0b6b3a764000061331285826147ea565b61331c9087615502565b6133269190615521565b90508160070b8660070b138061334157508060070b8660070b125b9695505050505050565b6001600160a01b038616158061336857506001600160a01b038516155b806133855750846001600160a01b0316846001600160a01b031614155b6136225760405163a2f6532160e01b815282906001600160a01b038a169063a2f65321906133b79087906004016142ce565b602060405180830381865afa1580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f89190615535565b156135a75781156134a1576000879050670de0b6b3a7640000816001600160a01b031663d69fb6686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561344f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613473919061528a565b61348590670de0b6b3a764000061470c565b61348f9086615502565b6134999190615521565b9150506135a7565b6000879050670de0b6b3a7640000816001600160a01b031663704ce43e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613511919061528a565b826001600160a01b031663d69fb6686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613573919061528a565b61358590670de0b6b3a764000061470c565b61358f919061470c565b6135999086615502565b6135a39190615521565b9150505b6040516319ed7edf60e31b8152600481018990526001600160a01b038881166024830152858116604483015260648201839052831515608483015287169063cf6bf6f89060a401600060405180830381600087803b15801561360857600080fd5b505af115801561361c573d6000803e3d6000fd5b50505050505b5050505050505050565b6000836001600160401b03166000036136f957606082015151156136d95760005b8260600151518110156136cf5782606001518181518110613670576136706146ad565b60200260200101516001600160401b0316846001600160401b03161480156136ae575082604001516001600160401b0316846001600160401b031610155b156136bd5760009150506132ca565b806136c7816146d9565b91505061364d565b50600190506132ca565b81604001516001600160401b0316836001600160401b03161090506132ca565b42846001600160401b031611613711575060016132ca565b81604001516001600160401b031642856001600160401b031661373491906147ea565b1090506132ca565b6000613791826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613d089092919063ffffffff16565b805190915015610ecb57808060200190518101906137af9190615535565b610ecb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610974565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915260085460405163bf40fac160e01b815260206004820152601160248201527021b430b4b73634b735ab32b934b334b2b960791b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156138c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e69190614baa565b90506000816001600160a01b03166338416b5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394c9190614baa565b905060606001600160a01b03821615613b60576000826001600160a01b031663638786686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561399f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c39190614baa565b90506000868060200190518101906139db91906152f2565b9150506000846001600160a01b031663e03dab1a3084866040518463ffffffff1660e01b8152600401613a1093929190615552565b60a0604051808303816000875af1158015613a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5391906155e1565b5050602081015190915015613b3657826001600160a01b031663d0e30db082602001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015613aa157600080fd5b505af1158015613ab5573d6000803e3d6000fd5b50505050602082015160405163095ea7b360e01b81526001600160a01b0388811660048301526024820192909252908516915063095ea7b3906044016020604051808303816000875af1158015613b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b349190615535565b505b82604051602001613b4791906142ce565b6040516020818303038152906040529350505050613b71565b506040805160208101909152600081525b604051637bf41d7760e11b81526000906001600160a01b0385169063f7e83aee90613ba2908990869060040161561f565b6000604051808303816000875af1158015613bc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613be99190810190615644565b90508080602001905181019061334191906153b9565b60408051608081018252600080825260208201819052918101829052606081019190915260a083015160808401516040516317a8f53760e31b8152600481018590526001600160a01b03808316916396834ad39185169063bd47a9b890602401602060405180830381865afa158015613c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca0919061528a565b6040518263ffffffff1660e01b8152600401613cbe91815260200190565b608060405180830381865afa158015613cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cff9190615680565b95945050505050565b60606132c7848460008585843b613d615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610974565b600080866001600160a01b03168587604051613d7d919061570b565b60006040518083038185875af1925050503d8060008114613dba576040519150601f19603f3d011682016040523d82523d6000602084013e613dbf565b606091505b5091509150613dcf828286613dda565b979650505050505050565b60608315613de95750816132ca565b825115613df95782518084602001fd5b8160405162461bcd60e51b81526004016109749190615727565b50805460008255600a0290600052602060002090810190610b009190613f05565b50805460008255600a0290600052602060002090810190610b009190613f80565b82805482825590600052602060002090601f01602090048101928215613ef95791602002820160005b83821115613eca57835183826101000a81548160ff02191690836001811115613ea957613ea96140bf565b02179055509260200192600101602081600001049283019260010302613e7e565b8015613ef75782816101000a81549060ff0219169055600101602081600001049283019260010302613eca565b505b50610922929150614005565b5b808211156109225780546001600160a01b031990811682556000600183018190556002830180546001600160801b031916905560038301819055600483018190556005830180546001600160a81b031916905560068301819055600783018054909216909155600882018190556009820155600a01613f06565b808211156109225780546001600160a01b031916815560006001820181905560028201805467ffffffffffffffff191690556003820181905560048201819055613fcd600583018261401a565b506006810180546001600160a01b03199081169091556000600783018190556008830180549092169091556009820155600a01613f80565b5b808211156109225760008155600101614006565b50805460008255601f016020900490600052602060002090810190610b009190614005565b6001600160a01b0381168114610b0057600080fd5b60008060006060848603121561406957600080fd5b83356140748161403f565b925060208401356140848161403f565b929592945050506040919091013590565b6000602082840312156140a757600080fd5b81356132ca8161403f565b6001600160a01b03169052565b634e487b7160e01b600052602160045260246000fd5b60028110610b0057634e487b7160e01b600052602160045260246000fd5b6140fc816140d5565b9052565b600081518084526020808501945080840160005b83811015614139578151614127816140d5565b87529582019590820190600101614114565b509495945050505050565b60006101406141548484516140b2565b60208301516020850152604083015161417860408601826001600160401b03169052565b50606083015160608501526080830151608085015260a08301518160a08601526141a482860182614100565b91505060c08301516141b960c08601826140b2565b5060e083015160e0850152610100808401516141d7828701826140b2565b5050610120928301519390920192909252919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561424257603f19888603018452614230858351614144565b94509285019290850190600101614214565b5092979650505050505050565b8015158114610b0057600080fd5b60006020828403121561426f57600080fd5b81356132ca8161424f565b60006020828403121561428c57600080fd5b81356001600160401b038111156142a257600080fd5b820161010081850312156132ca57600080fd5b6000602082840312156142c757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038d81168252602082018d90526001600160401b038c811660408401528b166060830152608082018a905260a0820189905261018082019061432a896140d5565b8860c084015280881660e0840152866101008401528086166101208401525083610140830152826101608301529d9c50505050505050505050505050565b6143738282516140b2565b60208101516020830152604081015161439760408401826001600160401b03169052565b5060608101516143b260608401826001600160401b03169052565b506080810151608083015260a081015160a083015260c08101516143d960c08401826140f3565b5060e08101516143ec60e08401826140b2565b5061010081810151908301526101208082015161440b828501826140b2565b5050610140818101519083015261016090810151910152565b6020808252825182820181905260009190848201906040850190845b8181101561446757614453838551614368565b928401926101809290920191600101614440565b50909695505050505050565b6000806040838503121561448657600080fd5b82356144918161403f565b915060208301356144a18161403f565b809150509250929050565b60008083601f8401126144be57600080fd5b5081356001600160401b038111156144d557600080fd5b6020830191508360208260051b85010111156144f057600080fd5b9250929050565b60008060008060006060868803121561450f57600080fd5b853561451a8161424f565b945060208601356001600160401b038082111561453657600080fd5b61454289838a016144ac565b9096509450604088013591508082111561455b57600080fd5b50614568888289016144ac565b969995985093965092949392505050565b60006101408284031215610b6f57600080fd5b6000806040838503121561459f57600080fd5b82356145aa8161403f565b915060208301356144a18161424f565b60028110610b0057600080fd5b6000806000604084860312156145dc57600080fd5b83356145e7816145ba565b925060208401356001600160401b0381111561460257600080fd5b61460e868287016144ac565b9497909650939450505050565b6001600160401b0381168114610b0057600080fd5b803561463b8161461b565b919050565b60006020828403121561465257600080fd5b81356132ca8161461b565b60006020828403121561466f57600080fd5b81356001600160401b0381111561468557600080fd5b8201608081850312156132ca57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016146eb576146eb6146c3565b5060010190565b6001600160a01b0392831681529116602082015260400190565b8082018082111561471f5761471f6146c3565b92915050565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526017908201527610dc99585d1bdc881b9bdd081dda1a5d195b1a5cdd1959604a1b604082015260600190565b8181038181111561471f5761471f6146c3565b634e487b7160e01b600052603160045260246000fd5b602080825260179082015276456d70747920707269636520757064617465206461746160481b604082015260600190565b608081018181106001600160401b038211171561486357614863614697565b60405250565b606081018181106001600160401b038211171561486357614863614697565b601f8201601f191681016001600160401b03811182821017156148ad576148ad614697565b6040525050565b60405161012081016001600160401b03811182821017156148d7576148d7614697565b60405290565b805161463b8161403f565b600060c082840312156148fa57600080fd5b60405160c081018181106001600160401b038211171561491c5761491c614697565b604052825161492a8161403f565b8152602083015161493a8161403f565b6020820152604083015161494d8161403f565b604082015260608301516149608161403f565b606082015260808301516149738161403f565b608082015261498460a084016148dd565b60a08201529392505050565b6000602082840312156149a257600080fd5b81516132ca8161461b565b6020815260006132ca6020830184614144565b60188152771b585e10dc99585d1a5bdb91195b185e48195e1c1a5c995960421b602082015260400190565b6060815260006149fd606083016149c0565b8281036020840152614a0f8186614144565b9150508260408301529392505050565b60006001600160401b03821115614a3857614a38614697565b5060051b60200190565b60006001600160401b03821115614a5b57614a5b614697565b50601f01601f191660200190565b6000614a7483614a1f565b60408051614a828382614888565b858152925060208084019250600586901b85019087821115614aa357600080fd5b855b82811015614b265780356001600160401b03811115614ac45760008081fd5b8701601f81018a13614ad65760008081fd5b8035614ae181614a42565b8651614aed8282614888565b8281528c86848601011115614b0457600091508182fd5b8286850187830137600092810186019290925250865250938101938101614aa5565b50505050509392505050565b60006132ca368484614a69565b600b81526a5374616c6520707269636560a81b602082015260400190565b6060815260006149fd60608301614b3f565b60168152757072696365206578636565647320736c69707061676560501b602082015260400190565b6060815260006149fd60608301614b6f565b600060208284031215614bbc57600080fd5b81516132ca8161403f565b60208152614bd96020820183516140b2565b6020820151604082015260006040830151614bff60608401826001600160401b03169052565b506060830151614c14608084018260070b9052565b506080830151614c2760a08401826140f3565b5060a08301516101208060c0850152614c44610140850183614100565b915060c0850151614c5860e08601826140b2565b5060e085015161010085810191909152850151614c77828601826140b2565b5090949350505050565b600060033d1115614c9a5760046000803e5060005160e01c5b90565b600060443d1015614cab5790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614cda57505050505090565b8285019150815181811115614cf25750505050505090565b843d8701016020828501011115614d0c5750505050505090565b614d1b60208286010187614888565b509095945050505050565b60005b83811015614d41578181015183820152602001614d29565b50506000910152565b60008151808452614d62816020860160208601614d26565b601f01601f19169290920160200192915050565b606081526000614d896060830186614d4a565b8281036020840152614d9b8186614144565b915050826040830152949350505050565b6020808252600e908201526d233932b2a132ba39a437b63232b960911b604082015260600190565b6000808335601e19843603018112614deb57600080fd5b8301803591506001600160401b03821115614e0557600080fd5b6020019150600581901b36038213156144f057600080fd5b600060208284031215614e2f57600080fd5b81356132ca816145ba565b610180810161471f8284614368565b60006101c0808352614e5c8184016149c0565b915050614e6c6020830185614368565b826101a08301529392505050565b600082601f830112614e8b57600080fd5b81356020614e9882614a1f565b604051614ea58282614888565b83815260059390931b8501820192828101915086841115614ec557600080fd5b8286015b84811015614ee9578035614edc8161461b565b8352918301918301614ec9565b509695505050505050565b600060808236031215614f0657600080fd5b604051614f1281614844565b8235614f1d816145ba565b815260208301356001600160401b0380821115614f3957600080fd5b9084019036601f830112614f4c57600080fd5b614f5b36833560208501614a69565b6020840152614f6c60408601614630565b60408401526060850135915080821115614f8557600080fd5b50614f9236828601614e7a565b60608301525092915050565b6101c080825260199082015278696e76616c69642064656c74612f737472696b652074696d6560381b6101e08201526102008101614e6c6020830185614368565b60006101c0808352614e5c818401614b3f565b60006101c0808352614e5c818401614b6f565b6000610180820190506150198284516140b2565b60208301516020830152604083015161503d60408401826001600160401b03169052565b50606083015161505860608401826001600160401b03169052565b50608083015161506d608084018260070b9052565b5060a083015161508860a08401826001600160401b03169052565b5060c083015161509b60c08401826140f3565b5060e08301516150ae60e08401826140f3565b50610100808401516150c2828501826140b2565b50506101208381015190830152610140808401516150e2828501826140b2565b505061016092830151919092015290565b60006101c080835261510781840187614d4a565b9150506151176020830185614368565b826101a0830152949350505050565b60208082526016908201527513585e081c5d595d59481cda5e99481b9bdd081cd95d60521b604082015260600190565b60208082526017908201527613585e081c5d595d59481cda5e9948195e18d959591959604a1b604082015260600190565b60408152600061519a6040830185614144565b90508260208301529392505050565b6101a081016151b88285614368565b826101808301529392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b8781101561527d57868403603f190183528135368a9003601e1901811261523457600080fd5b890185810190356001600160401b0381111561524f57600080fd5b80360382131561525e57600080fd5b6152698682846151c6565b95505050918401919084019060010161520e565b5091979650505050505050565b60006020828403121561529c57600080fd5b5051919050565b600082601f8301126152b457600080fd5b81516152bf81614a42565b6040516152cc8282614888565b8281528560208487010111156152e157600080fd5b613cff836020830160208801614d26565b6000806080838503121561530557600080fd5b83601f84011261531457600080fd5b60405161532081614869565b80606085018681111561533257600080fd5b855b8181101561534c578051835260209283019201615334565b5051919350506001600160401b0381111561536657600080fd5b615372858286016152a3565b9150509250929050565b805163ffffffff8116811461463b57600080fd5b80516001600160c01b038116811461463b57600080fd5b8051601781900b811461463b57600080fd5b600061012082840312156153cc57600080fd5b6153d46148b4565b825181526153e46020840161537c565b60208201526153f56040840161537c565b604082015261540660608401615390565b606082015261541760808401615390565b608082015261542860a0840161537c565b60a082015261543960c084016153a7565b60c082015261544a60e084016153a7565b60e082015261010061545d8185016153a7565b908201529392505050565b600060ff821660ff810361547e5761547e6146c3565b60010192915050565b634e487b7160e01b600052601260045260246000fd5b60008160170b8360170b806154b4576154b4615487565b6001600160bf1b03198214600019821416156154d2576154d26146c3565b90059392505050565b6001600160401b038181168382160190808211156154fb576154fb6146c3565b5092915050565b600081600019048311821515161561551c5761551c6146c3565b500290565b60008261553057615530615487565b500490565b60006020828403121561554757600080fd5b81516132ca8161424f565b600060018060a01b038086168352606060208401526155746060840186614d4a565b9150808416604084015250949350505050565b60006040828403121561559957600080fd5b604051604081018181106001600160401b03821117156155bb576155bb614697565b806040525080915082516155ce8161403f565b8152602092830151920191909152919050565b600080600060a084860312156155f657600080fd5b6156008585615587565b925061560f8560408601615587565b9150608084015190509250925092565b6040815260006156326040830185614d4a565b8281036020840152613cff8185614d4a565b60006020828403121561565657600080fd5b81516001600160401b0381111561566c57600080fd5b615678848285016152a3565b949350505050565b60006080828403121561569257600080fd5b604051608081018181106001600160401b03821117156156b4576156b4614697565b6040528251600781900b81146156c957600080fd5b815260208301516156d98161461b565b60208201526040830151600381900b81146156f357600080fd5b60408201526060928301519281019290925250919050565b6000825161571d818460208701614d26565b9190910192915050565b6020815260006132ca6020830184614d4a56feb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8942c42cac2b53cc05a503aee742eb20728251e952b4bd383e4c07368b76cf72af3ddb5cb31123b06a45f1cac7940acb8c53267338c01be8628d74abe57aed3ea26469706673582212203c7b0f6624d66706b5a2624c973742b1547333afdbb26fdcae5e7305a9e05d3a64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101a75760003560e01c806353a47bb7116100e25780639e08ac25116100855780639e08ac2514610577578063aede07c014610597578063bc93233f146105b7578063c3b83f5f146105d7578063d35eb7f3146105f7578063ebc797721461060a578063f6264e751461061f578063f8021dad1461063f57600080fd5b806353a47bb71461040d5780635c975abb1461042d5780636032a02714610447578063766f924a1461046757806379ba5097146104a45780638411f183146104b95780638da5cb5b1461053b57806391b4ded91461056157600080fd5b80631936f21c1161014a5780631936f21c146102db5780631ab022ca146102fb5780631c07d3c31461033e5780632a789dc4146103765780633ab76e9f1461038b5780633ea330a3146103ab578063485cc955146103cd5780634bab19ad146103ed57600080fd5b806301f47471146101b35780630652b57a146101d557806306c933d8146101f557806308d56e501461023a57806313af40351461025c5780631627540c1461027c57806316c38b3c1461029c57806319297361146102bc57600080fd5b366101ae57005b600080fd5b3480156101bf57600080fd5b506101d36101ce366004614054565b610652565b005b3480156101e157600080fd5b506101d36101f0366004614095565b6106be565b34801561020157600080fd5b50610225610210366004614095565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561024657600080fd5b5061024f61071c565b60405161023191906141ed565b34801561026857600080fd5b506101d3610277366004614095565b610926565b34801561028857600080fd5b506101d3610297366004614095565b610a3e565b3480156102a857600080fd5b506101d36102b736600461425d565b610a91565b3480156102c857600080fd5b506006545b604051908152602001610231565b3480156102e757600080fd5b506102cd6102f636600461427a565b610b03565b34801561030757600080fd5b506103316103163660046142b5565b600a602052600090815260409020546001600160a01b031681565b60405161023191906142ce565b34801561034a57600080fd5b5061035e6103593660046142b5565b610b75565b6040516102319c9b9a999897969594939291906142e2565b34801561038257600080fd5b506007546102cd565b34801561039757600080fd5b50600854610331906001600160a01b031681565b3480156103b757600080fd5b506103c0610c03565b6040516102319190614424565b3480156103d957600080fd5b506101d36103e8366004614473565b610df1565b3480156103f957600080fd5b506101d36104083660046144f7565b610ed0565b34801561041957600080fd5b50600154610331906001600160a01b031681565b34801561043957600080fd5b506003546102259060ff1681565b34801561045357600080fd5b506102cd610462366004614579565b61128b565b34801561047357600080fd5b5060055461048c9061010090046001600160401b031681565b6040516001600160401b039091168152602001610231565b3480156104b057600080fd5b506101d36112d4565b3480156104c557600080fd5b506104d96104d43660046142b5565b6113bf565b604080516001600160a01b039a8b16815260208101999099526001600160401b039097169688019690965260608701949094526080860192909252851660a085015260c08401529290921660e082015261010081019190915261012001610231565b34801561054757600080fd5b50600054610331906201000090046001600160a01b031681565b34801561056d57600080fd5b506102cd60025481565b34801561058357600080fd5b506101d36105923660046142b5565b611435565b3480156105a357600080fd5b506101d36105b236600461425d565b6114d2565b3480156105c357600080fd5b506101d36105d236600461458c565b61151b565b3480156105e357600080fd5b506101d36105f2366004614095565b611599565b6101d36106053660046145c7565b61169c565b34801561061657600080fd5b506101d3611ed0565b34801561062b57600080fd5b506101d361063a366004614640565b611f2e565b6101d361064d36600461465d565b611f8d565b61065a612809565b61066e6001600160a01b0383168483612883565b604080516001600160a01b038085168252851660208201529081018290527f3dfef6507ded35b9ec518bb3532736bd85a598bdcb440fdd2289ce92a771e7979060600160405180910390a1505050565b6106c6612809565b600880546001600160a01b0319166001600160a01b0383161790556040517f954328d28753080b3c499697bde218fd8b53e924669801835383aa346e6940ee906107119083906142ce565b60405180910390a150565b6007546060906001600160401b0381111561073957610739614697565b6040519080825280602002602001820160405280156107b757816020015b60408051610140810182526000808252602080830182905292820181905260608083018290526080830182905260a083015260c0820181905260e08201819052610100820181905261012082015282526000199092019101816107575790505b50905060005b60075481101561092257600781815481106107da576107da6146ad565b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b0316835260018101548385015260028101546001600160401b03168383015260038101546060840152600481015460808401526005810180548351818702810187019094528084529394919360a0860193928301828280156108b257602002820191906000526020600020906000905b82829054906101000a900460ff166001811115610890576108906140bf565b8152602060019283018181049485019490930390920291018084116108715790505b505050918352505060068201546001600160a01b0390811660208301526007830154604083015260088301541660608201526009909101546080909101528251839083908110610904576109046146ad565b6020026020010181905250808061091a906146d9565b9150506107bd565b5090565b6001600160a01b03811661097d5760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064015b60405180910390fd5b600154600160a01b900460ff16156109e95760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610974565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b038316620100000262010000600160b01b031990911617815560405160008051602061573b833981519152916107119184906146f2565b610a46612809565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906107119083906142ce565b610a99612809565b60035460ff16151581151514610b00576003805460ff191682151590811790915560ff1615610ac757426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610711565b50565b6000600160046000828254610b18919061470c565b909155505060045460035460ff1615610b435760405162461bcd60e51b815260040161097490614725565b610b4c836128d5565b91506004548114610b6f5760405162461bcd60e51b815260040161097490614782565b50919050565b60068181548110610b8557600080fd5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901546001600160a01b039889169a5096986001600160401b0380881699600160401b90980416979596949560ff851695610100909504851694909216918c565b6006546060906001600160401b03811115610c2057610c20614697565b604051908082528060200260200182016040528015610caf57816020015b604080516101808101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e082018190526101008201819052610120820181905261014082018190526101608201528252600019909201910181610c3e5790505b50905060005b6006548110156109225760068181548110610cd257610cd26146ad565b60009182526020918290206040805161018081018252600a90930290910180546001600160a01b031683526001808201549484019490945260028101546001600160401b0380821693850193909352600160401b9004909116606083015260038101546080830152600481015460a083015260058101549192909160c084019160ff90911690811115610d6757610d676140bf565b6001811115610d7857610d786140bf565b815260058201546001600160a01b03610100909104811660208301526006830154604083015260078301541660608201526008820154608082015260099091015460a0909101528251839083908110610dd357610dd36146ad565b60200260200101819052508080610de9906146d9565b915050610cb5565b600054610100900460ff16610e0c5760005460ff1615610e10565b303b155b610e735760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610974565b600054610100900460ff16158015610e95576000805461ffff19166101011790555b610e9e83610926565b600880546001600160a01b0319166001600160a01b0384161790558015610ecb576000805461ff00191690555b505050565b3360009081526009602052604090205460ff16610eff5760405162461bcd60e51b8152600401610974906147b9565b8415610f1657610f1160066000613e13565b611284565b60005b6006548110156112825760008060005b86811015610fae57878782818110610f4357610f436146ad565b9050602002016020810190610f589190614095565b6001600160a01b031660068581548110610f7457610f746146ad565b60009182526020909120600a90910201546001600160a01b031603610f9c5760019250610fae565b80610fa6816146d9565b915050610f29565b5060005b8481101561101857858582818110610fcc57610fcc6146ad565b9050602002013560068581548110610fe657610fe66146ad565b90600052602060002090600a020160090154036110065760019150611018565b80611010816146d9565b915050610fb2565b506000861580159061102957508415155b1561103f578280156110385750815b905061105d565b861561104c57508161105d565b841561105957508061105d565b5060005b801561126c5760068054611073906001906147ea565b81548110611083576110836146ad565b90600052602060002090600a0201600685815481106110a4576110a46146ad565b600091825260209091208254600a9092020180546001600160a01b0319166001600160a01b039092169190911781556001808301548183015560028084018054918401805467ffffffffffffffff1981166001600160401b0394851690811783559254600160401b908190049094169093026001600160801b03199093169091179190911790556003808401549083015560048084015490830155600580840154908301805460ff90921692909160ff1916908381811115611168576111686140bf565b021790555060058281015490820180546001600160a01b03610100938490048116909302610100600160a81b03199091161790556006808401548184015560078085015490840180546001600160a01b03191691909316179091556008808401549083015560099283015492909101919091558054806111ea576111ea6147fd565b600082815260208120600a6000199093019283020180546001600160a01b03199081168255600182018390556002820180546001600160801b031916905560038201839055600482018390556005820180546001600160a81b03191690556006820183905560078201805490911690556008810182905560090155905561127a565b83611276816146d9565b9450505b505050610f19565b505b5050505050565b60006001600460008282546112a0919061470c565b909155505060045460035460ff16156112cb5760405162461bcd60e51b815260040161097490614725565b610b4c83612c13565b6001546001600160a01b0316331461134c5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610974565b60005460015460405160008051602061573b83398151915292611383926001600160a01b03620100009092048216929116906146f2565b60405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b600781815481106113cf57600080fd5b60009182526020909120600a90910201805460018201546002830154600384015460048501546006860154600787015460088801546009909801546001600160a01b03978816995095976001600160401b03909516969395929491841693909291169089565b61143d612809565b6000811161149d5760405162461bcd60e51b815260206004820152602760248201527f4d61782071756575652073697a652068617320746f20626520677265617465726044820152660207468616e20360cc1b6064820152608401610974565b600c8190556040518181527f79a87afea87ec3c30b4a8adb0163c56f865ba84524698194fa37c035b7eca22e90602001610711565b6114da612809565b600b805460ff19168215159081179091556040519081527f1b8e91cc273a8e1b9567ce4e98d59066450c93b2fa5e31f1fc1e740f1fc95a0590602001610711565b611523612809565b6001600160a01b03821661153657600080fd5b6001600160a01b038216600081815260096020908152604091829020805460ff19168515159081179091558251938452908301527f58d7a3ccc34541e162fcfc87b84be7b78c34d1e1e7f15de6e4dd67d0fe70aecd910160405180910390a15050565b6115a1612809565b6001600160a01b0381166115e95760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610974565b600154600160a81b900460ff16156116395760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610974565b600080546001600160a01b038084166201000090810262010000600160b01b031990931692909217928390556001805460ff60a81b1916600160a81b17905560405160008051602061573b833981519152936107119390049091169084906146f2565b6001600460008282546116af919061470c565b909155505060045460035460ff16156116da5760405162461bcd60e51b815260040161097490614725565b3360009081526009602052604090205460ff166117095760405162461bcd60e51b8152600401610974906147b9565b60075415611ea9578161172e5760405162461bcd60e51b815260040161097490614813565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c09291908290030181865afa158015611778573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179c91906148e8565b905060008560018111156117b2576117b26140bf565b036117c6576117c681608001518585612fff565b60008160a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118339190614990565b90506000805b600754811015611e5957600060078281548110611858576118586146ad565b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b0316835260018101548385015260028101546001600160401b03168383015260038101546060840152600481015460808401526005810180548351818702810187019094528084529394919360a08601939283018282801561193057602002820191906000526020600020906000905b82829054906101000a900460ff16600181111561190e5761190e6140bf565b8152602060019283018181049485019490930390920291018084116118ef5790505b505050918352505060068201546001600160a01b039081166020808401919091526007840154604080850191909152600885015490921660608401526009909301546080909201919091525191925060009161198e918491016149ad565b6040516020818303038152906040528051906020012090506119b48261012001516130cf565b15611a08576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b833981519152906119f990849084906149eb565b60405180910390a15050611e47565b600080611a278985602001518f8f8f90611a229190614b32565b6130f7565b91509150611a368282896132a0565b15611a8c576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b83398151915290611a7b9086908690614b5d565b60405180910390a150505050611e47565b611a9f82856060015186608001516132d1565b15611ae4576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b83398151915290611a7b9086908690614b98565b600060405180610120016040528086600001516001600160a01b031681526020018660200151815260200186604001516001600160401b031681526020018460070b81526020018f6001811115611b3d57611b3d6140bf565b815260a0870151602082015260c08701516001600160a01b0390811660408084019190915260e089015160608401526101008901518216608090930192909252600854915163bf40fac160e01b8152929350169063bf40fac190611bce90600401602080825260169082015275436861696e656453706565644d61726b657473414d4d60501b604082015260600190565b602060405180830381865afa158015611beb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0f9190614baa565b6001600160a01b03166348a017d9826040518263ffffffff1660e01b8152600401611c3a9190614bc7565b6020604051808303816000875af1925050508015611c75575060408051601f3d908101601f19168201909252611c7291810190614baa565b60015b611d7657611c81614c81565b806308c379a003611cf05750611c95614c9d565b80611ca05750611cf2565b6000858152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061575b83398151915290611ce290839089908990614d76565b60405180910390a150611e41565b505b3d808015611d1c576040519150601f19603f3d011682016040523d82523d6000602084013e611d21565b606091505b506000858152600a60205260409081902080546001600160a01b03191661dead179055517fe9a2356141fc237f09ca67a6fac74a54c353f3540b3f405211c297a3b4fe987d90611ce290839089908990614d76565b60085460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611da590600401614dac565b602060405180830381865afa158015611dc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de69190614baa565b6000878152600a6020526040902080546001600160a01b0319166001600160a01b038516179055875160c089015160e08a0151929350611e31928e928a92879287929190600161334b565b88611e3b816146d9565b99505050505b50505050505b80611e51816146d9565b915050611839565b506007805490611e6a906000613e34565b60408051828152602081018490527f1ab7a95ec65186d9eb7b80e9d2992235330d07b4ce15407b3bc40cefed7af834910160405180910390a150505050505b6004548114611eca5760405162461bcd60e51b815260040161097490614782565b50505050565b60055460ff1615611f195760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610974565b6005805460ff19166001908117909155600455565b611f36612809565b6005805468ffffffffffffffff0019166101006001600160401b038416908102919091179091556040519081527f41b95b0cd63e823b0fff2701a35e7ab970829374fa79149ca1b1d1dce73e001890602001610711565b600160046000828254611fa0919061470c565b909155505060045460035460ff1615611fcb5760405162461bcd60e51b815260040161097490614725565b3360009081526009602052604090205460ff16611ffa5760405162461bcd60e51b8152600401610974906147b9565b600654156127e45760006120116020840184614dd4565b9050116120305760405162461bcd60e51b815260040161097490614813565b600854604080516351cfd60960e11b815290516000926001600160a01b03169163a39fac129160048083019260c09291908290030181865afa15801561207a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209e91906148e8565b60085460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac1906120d290600401614dac565b602060405180830381865afa1580156120ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121139190614baa565b905060006121246020860186614e1d565b6001811115612135576121356140bf565b03612155576080820151612155906121506020870187614dd4565b612fff565b60008260a0015190506000816001600160a01b031663a201b3076040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c29190614990565b90506000805b600654811015612793576000600682815481106121e7576121e76146ad565b60009182526020918290206040805161018081018252600a90930290910180546001600160a01b031683526001808201549484019490945260028101546001600160401b0380821693850193909352600160401b9004909116606083015260038101546080830152600481015460a083015260058101549192909160c084019160ff9091169081111561227c5761227c6140bf565b600181111561228d5761228d6140bf565b815260058201546001600160a01b0361010090910481166020808401919091526006840154604080850191909152600785015490921660608401526008840154608084015260099093015460a090920191909152519192506000916122f491849101614e3a565b60405160208183030381529060405280519060200120905061231a8261016001516130cf565b1561236e576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061235f9084908490614e49565b60405180910390a15050612781565b61238a826040015183606001518c61238590614ef4565b61362c565b156123cf576000818152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061235f9084908490614f9e565b6000806124078a85602001518e60000160208101906123ee9190614e1d565b8f80602001906123fe9190614dd4565b611a2291614b32565b915091506124168282896132a0565b1561246c576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061245b9086908690614fdf565b60405180910390a150505050612781565b61247f8285608001518660a001516132d1565b156124c4576000838152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b8339815191529061245b9086908690614ff2565b600060405180610180016040528086600001516001600160a01b031681526020018660200151815260200186604001516001600160401b0316815260200186606001516001600160401b031681526020018460070b8152602001836001600160401b031681526020018e60000160208101906125409190614e1d565b6001811115612551576125516140bf565b81526020018660c00151600181111561256c5761256c6140bf565b81526020018660e001516001600160a01b0316815260200186610100015181526020018661012001516001600160a01b031681526020018661014001518152509050886001600160a01b0316636ce6c3ca826040518263ffffffff1660e01b81526004016125da9190615005565b6020604051808303816000875af1925050508015612615575060408051601f3d908101601f1916820190925261261291810190614baa565b60015b61271657612621614c81565b806308c379a0036126905750612635614c9d565b806126405750612692565b6000858152600a60205260409081902080546001600160a01b03191661dead1790555160008051602061577b83398151915290612682908390899089906150f3565b60405180910390a15061277b565b505b3d8080156126bc576040519150601f19603f3d011682016040523d82523d6000602084013e6126c1565b606091505b506000858152600a60205260409081902080546001600160a01b03191661dead179055517f4aea26aea125896a2852f331d17a39226261bb9ddd3f54f9d6ef483332b1d31c90612682908390899089906150f3565b80600a600087815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061276c8a86838e8a600001518b60e001518c6101000151600061334b565b87612776816146d9565b985050505b50505050505b8061278b816146d9565b9150506121c8565b5060068054906127a4906000613e13565b60408051828152602081018490527f1ab7a95ec65186d9eb7b80e9d2992235330d07b4ce15407b3bc40cefed7af834910160405180910390a15050505050505b60045481146128055760405162461bcd60e51b815260040161097490614782565b5050565b6000546201000090046001600160a01b031633146128815760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610974565b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ecb90849061373c565b600080600c54116128f85760405162461bcd60e51b815260040161097490615126565b600c546007541061291b5760405162461bcd60e51b815260040161097490615156565b6000604051806101400160405280336001600160a01b03168152602001846000013581526020018460200160208101906129559190614640565b6001600160401b0316815260200184604001358152602001846060013581526020018480608001906129879190614dd4565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050908252506020016129ce60c0860160a08701614095565b6001600160a01b0316815260c085013560208201526040016129f7610100860160e08701614095565b6001600160a01b039081168252426020928301526007805460018101825560009190915283517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600a90920291820180546001600160a01b03191691909316178255838301517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68982015560408401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a8201805467ffffffffffffffff19166001600160401b0390921691909117905560608401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b82015560808401517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68c82015560a0840151805194955085949293612b58937fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68d90930192910190613e55565b5060c08201516006820180546001600160a01b039283166001600160a01b03199182161790915560e0840151600784015561010084015160088401805491909316911617905561012090910151600990910155604051612bbc9082906020016149ad565b6040516020818303038152906040528051906020012091507fa4a06fbc3cb950ac65c422fd933aa21d293294483682c36c36c2ce691b39134c8183604051612c05929190615187565b60405180910390a150919050565b600080600c5411612c365760405162461bcd60e51b815260040161097490615126565b600c5460065410612c595760405162461bcd60e51b815260040161097490615156565b600b5460ff1680612c805750612c756040830160208401614640565b6001600160401b0316155b612cc85760405162461bcd60e51b815260206004820152601960248201527814dd1c9a5ad9481d1a5b59481b9bdd081cdd5c1c1bdc9d1959603a1b6044820152606401610974565b6000604051806101800160405280336001600160a01b0316815260200184600001358152602001846020016020810190612d029190614640565b6001600160401b03168152602001612d206060860160408701614640565b6001600160401b0316815260608086013560208301526080860135604083015201612d5160c0860160a08701614e1d565b6001811115612d6257612d626140bf565b8152602001612d7760e0860160c08701614095565b6001600160a01b0316815260e08501356020820152604001612da161012086016101008701614095565b6001600160a01b0390811682526101208601356020808401919091524260409384015260068054600181810183556000929092528551600a9091027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81018054929095166001600160a01b0319909216919091178455918501517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40830155928401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d418201805460608701516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560808401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4282015560a08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4382015560c08401517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d449091018054949550859492939192909160ff19909116908381811115612f3657612f366140bf565b021790555060e0820151600582018054610100600160a81b0319166101006001600160a01b0393841681029190911790915583015160068301556101208301516007830180546001600160a01b03191691909216179055610140820151600882015561016090910151600990910155604051612fb6908290602001614e3a565b6040516020818303038152906040528051906020012091507fe59a3a16cdfcdb489bf3b4458738fea0061d879699ae38063f5bf87c02102b208183604051612c059291906151a9565b60405163d47eed4560e01b815283906001600160a01b0382169063ef9e5e2890829063d47eed459061303790889088906004016151ef565b602060405180830381865afa158015613054573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613078919061528a565b85856040518463ffffffff1660e01b81526004016130979291906151ef565b6000604051808303818588803b1580156130b057600080fd5b505af11580156130c4573d6000803e3d6000fd5b505050505050505050565b60055460009042906130ef9061010090046001600160401b03168461470c565b111592915050565b600080600184600181111561310e5761310e6140bf565b0361327c5760a0860151604051631237795960e21b8152600481018790526000906001600160a01b038316906348dde56490602401602060405180830381865afa158015613160573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613184919061528a565b9050606060005b86518160ff16101561322a576000878260ff16815181106131ae576131ae6146ad565b60200260200101518060200190518101906131c991906152f2565b9150506000818060200190518101906131e291906153b9565b90508481600001510361321557888360ff1681518110613204576132046146ad565b60200260200101519350505061322a565b5050808061322290615468565b91505061318b565b508051600003613241576000945060009350613274565b600061324c8261380e565b90506402540be4008160c00151613263919061549d565b9550806020015163ffffffff169450505b505050613297565b60006132888787613bff565b80516060909101519093509150505b94509492505050565b6000426132ad83856154db565b6001600160401b03161115806132c7575060008460070b13155b90505b9392505050565b600080670de0b6b3a76400006132e7848261470c565b6132f19086615502565b6132fb9190615521565b90506000670de0b6b3a764000061331285826147ea565b61331c9087615502565b6133269190615521565b90508160070b8660070b138061334157508060070b8660070b125b9695505050505050565b6001600160a01b038616158061336857506001600160a01b038516155b806133855750846001600160a01b0316846001600160a01b031614155b6136225760405163a2f6532160e01b815282906001600160a01b038a169063a2f65321906133b79087906004016142ce565b602060405180830381865afa1580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f89190615535565b156135a75781156134a1576000879050670de0b6b3a7640000816001600160a01b031663d69fb6686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561344f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613473919061528a565b61348590670de0b6b3a764000061470c565b61348f9086615502565b6134999190615521565b9150506135a7565b6000879050670de0b6b3a7640000816001600160a01b031663704ce43e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613511919061528a565b826001600160a01b031663d69fb6686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613573919061528a565b61358590670de0b6b3a764000061470c565b61358f919061470c565b6135999086615502565b6135a39190615521565b9150505b6040516319ed7edf60e31b8152600481018990526001600160a01b038881166024830152858116604483015260648201839052831515608483015287169063cf6bf6f89060a401600060405180830381600087803b15801561360857600080fd5b505af115801561361c573d6000803e3d6000fd5b50505050505b5050505050505050565b6000836001600160401b03166000036136f957606082015151156136d95760005b8260600151518110156136cf5782606001518181518110613670576136706146ad565b60200260200101516001600160401b0316846001600160401b03161480156136ae575082604001516001600160401b0316846001600160401b031610155b156136bd5760009150506132ca565b806136c7816146d9565b91505061364d565b50600190506132ca565b81604001516001600160401b0316836001600160401b03161090506132ca565b42846001600160401b031611613711575060016132ca565b81604001516001600160401b031642856001600160401b031661373491906147ea565b1090506132ca565b6000613791826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613d089092919063ffffffff16565b805190915015610ecb57808060200190518101906137af9190615535565b610ecb5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610974565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915260085460405163bf40fac160e01b815260206004820152601160248201527021b430b4b73634b735ab32b934b334b2b960791b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa1580156138c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e69190614baa565b90506000816001600160a01b03166338416b5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613928573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394c9190614baa565b905060606001600160a01b03821615613b60576000826001600160a01b031663638786686040518163ffffffff1660e01b8152600401602060405180830381865afa15801561399f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c39190614baa565b90506000868060200190518101906139db91906152f2565b9150506000846001600160a01b031663e03dab1a3084866040518463ffffffff1660e01b8152600401613a1093929190615552565b60a0604051808303816000875af1158015613a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5391906155e1565b5050602081015190915015613b3657826001600160a01b031663d0e30db082602001516040518263ffffffff1660e01b81526004016000604051808303818588803b158015613aa157600080fd5b505af1158015613ab5573d6000803e3d6000fd5b50505050602082015160405163095ea7b360e01b81526001600160a01b0388811660048301526024820192909252908516915063095ea7b3906044016020604051808303816000875af1158015613b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b349190615535565b505b82604051602001613b4791906142ce565b6040516020818303038152906040529350505050613b71565b506040805160208101909152600081525b604051637bf41d7760e11b81526000906001600160a01b0385169063f7e83aee90613ba2908990869060040161561f565b6000604051808303816000875af1158015613bc1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613be99190810190615644565b90508080602001905181019061334191906153b9565b60408051608081018252600080825260208201819052918101829052606081019190915260a083015160808401516040516317a8f53760e31b8152600481018590526001600160a01b03808316916396834ad39185169063bd47a9b890602401602060405180830381865afa158015613c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca0919061528a565b6040518263ffffffff1660e01b8152600401613cbe91815260200190565b608060405180830381865afa158015613cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cff9190615680565b95945050505050565b60606132c7848460008585843b613d615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610974565b600080866001600160a01b03168587604051613d7d919061570b565b60006040518083038185875af1925050503d8060008114613dba576040519150601f19603f3d011682016040523d82523d6000602084013e613dbf565b606091505b5091509150613dcf828286613dda565b979650505050505050565b60608315613de95750816132ca565b825115613df95782518084602001fd5b8160405162461bcd60e51b81526004016109749190615727565b50805460008255600a0290600052602060002090810190610b009190613f05565b50805460008255600a0290600052602060002090810190610b009190613f80565b82805482825590600052602060002090601f01602090048101928215613ef95791602002820160005b83821115613eca57835183826101000a81548160ff02191690836001811115613ea957613ea96140bf565b02179055509260200192600101602081600001049283019260010302613e7e565b8015613ef75782816101000a81549060ff0219169055600101602081600001049283019260010302613eca565b505b50610922929150614005565b5b808211156109225780546001600160a01b031990811682556000600183018190556002830180546001600160801b031916905560038301819055600483018190556005830180546001600160a81b031916905560068301819055600783018054909216909155600882018190556009820155600a01613f06565b808211156109225780546001600160a01b031916815560006001820181905560028201805467ffffffffffffffff191690556003820181905560048201819055613fcd600583018261401a565b506006810180546001600160a01b03199081169091556000600783018190556008830180549092169091556009820155600a01613f80565b5b808211156109225760008155600101614006565b50805460008255601f016020900490600052602060002090810190610b009190614005565b6001600160a01b0381168114610b0057600080fd5b60008060006060848603121561406957600080fd5b83356140748161403f565b925060208401356140848161403f565b929592945050506040919091013590565b6000602082840312156140a757600080fd5b81356132ca8161403f565b6001600160a01b03169052565b634e487b7160e01b600052602160045260246000fd5b60028110610b0057634e487b7160e01b600052602160045260246000fd5b6140fc816140d5565b9052565b600081518084526020808501945080840160005b83811015614139578151614127816140d5565b87529582019590820190600101614114565b509495945050505050565b60006101406141548484516140b2565b60208301516020850152604083015161417860408601826001600160401b03169052565b50606083015160608501526080830151608085015260a08301518160a08601526141a482860182614100565b91505060c08301516141b960c08601826140b2565b5060e083015160e0850152610100808401516141d7828701826140b2565b5050610120928301519390920192909252919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561424257603f19888603018452614230858351614144565b94509285019290850190600101614214565b5092979650505050505050565b8015158114610b0057600080fd5b60006020828403121561426f57600080fd5b81356132ca8161424f565b60006020828403121561428c57600080fd5b81356001600160401b038111156142a257600080fd5b820161010081850312156132ca57600080fd5b6000602082840312156142c757600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b038d81168252602082018d90526001600160401b038c811660408401528b166060830152608082018a905260a0820189905261018082019061432a896140d5565b8860c084015280881660e0840152866101008401528086166101208401525083610140830152826101608301529d9c50505050505050505050505050565b6143738282516140b2565b60208101516020830152604081015161439760408401826001600160401b03169052565b5060608101516143b260608401826001600160401b03169052565b506080810151608083015260a081015160a083015260c08101516143d960c08401826140f3565b5060e08101516143ec60e08401826140b2565b5061010081810151908301526101208082015161440b828501826140b2565b5050610140818101519083015261016090810151910152565b6020808252825182820181905260009190848201906040850190845b8181101561446757614453838551614368565b928401926101809290920191600101614440565b50909695505050505050565b6000806040838503121561448657600080fd5b82356144918161403f565b915060208301356144a18161403f565b809150509250929050565b60008083601f8401126144be57600080fd5b5081356001600160401b038111156144d557600080fd5b6020830191508360208260051b85010111156144f057600080fd5b9250929050565b60008060008060006060868803121561450f57600080fd5b853561451a8161424f565b945060208601356001600160401b038082111561453657600080fd5b61454289838a016144ac565b9096509450604088013591508082111561455b57600080fd5b50614568888289016144ac565b969995985093965092949392505050565b60006101408284031215610b6f57600080fd5b6000806040838503121561459f57600080fd5b82356145aa8161403f565b915060208301356144a18161424f565b60028110610b0057600080fd5b6000806000604084860312156145dc57600080fd5b83356145e7816145ba565b925060208401356001600160401b0381111561460257600080fd5b61460e868287016144ac565b9497909650939450505050565b6001600160401b0381168114610b0057600080fd5b803561463b8161461b565b919050565b60006020828403121561465257600080fd5b81356132ca8161461b565b60006020828403121561466f57600080fd5b81356001600160401b0381111561468557600080fd5b8201608081850312156132ca57600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016146eb576146eb6146c3565b5060010190565b6001600160a01b0392831681529116602082015260400190565b8082018082111561471f5761471f6146c3565b92915050565b6020808252603c908201527f5468697320616374696f6e2063616e6e6f7420626520706572666f726d65642060408201527f7768696c652074686520636f6e74726163742069732070617573656400000000606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526017908201527610dc99585d1bdc881b9bdd081dda1a5d195b1a5cdd1959604a1b604082015260600190565b8181038181111561471f5761471f6146c3565b634e487b7160e01b600052603160045260246000fd5b602080825260179082015276456d70747920707269636520757064617465206461746160481b604082015260600190565b608081018181106001600160401b038211171561486357614863614697565b60405250565b606081018181106001600160401b038211171561486357614863614697565b601f8201601f191681016001600160401b03811182821017156148ad576148ad614697565b6040525050565b60405161012081016001600160401b03811182821017156148d7576148d7614697565b60405290565b805161463b8161403f565b600060c082840312156148fa57600080fd5b60405160c081018181106001600160401b038211171561491c5761491c614697565b604052825161492a8161403f565b8152602083015161493a8161403f565b6020820152604083015161494d8161403f565b604082015260608301516149608161403f565b606082015260808301516149738161403f565b608082015261498460a084016148dd565b60a08201529392505050565b6000602082840312156149a257600080fd5b81516132ca8161461b565b6020815260006132ca6020830184614144565b60188152771b585e10dc99585d1a5bdb91195b185e48195e1c1a5c995960421b602082015260400190565b6060815260006149fd606083016149c0565b8281036020840152614a0f8186614144565b9150508260408301529392505050565b60006001600160401b03821115614a3857614a38614697565b5060051b60200190565b60006001600160401b03821115614a5b57614a5b614697565b50601f01601f191660200190565b6000614a7483614a1f565b60408051614a828382614888565b858152925060208084019250600586901b85019087821115614aa357600080fd5b855b82811015614b265780356001600160401b03811115614ac45760008081fd5b8701601f81018a13614ad65760008081fd5b8035614ae181614a42565b8651614aed8282614888565b8281528c86848601011115614b0457600091508182fd5b8286850187830137600092810186019290925250865250938101938101614aa5565b50505050509392505050565b60006132ca368484614a69565b600b81526a5374616c6520707269636560a81b602082015260400190565b6060815260006149fd60608301614b3f565b60168152757072696365206578636565647320736c69707061676560501b602082015260400190565b6060815260006149fd60608301614b6f565b600060208284031215614bbc57600080fd5b81516132ca8161403f565b60208152614bd96020820183516140b2565b6020820151604082015260006040830151614bff60608401826001600160401b03169052565b506060830151614c14608084018260070b9052565b506080830151614c2760a08401826140f3565b5060a08301516101208060c0850152614c44610140850183614100565b915060c0850151614c5860e08601826140b2565b5060e085015161010085810191909152850151614c77828601826140b2565b5090949350505050565b600060033d1115614c9a5760046000803e5060005160e01c5b90565b600060443d1015614cab5790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614cda57505050505090565b8285019150815181811115614cf25750505050505090565b843d8701016020828501011115614d0c5750505050505090565b614d1b60208286010187614888565b509095945050505050565b60005b83811015614d41578181015183820152602001614d29565b50506000910152565b60008151808452614d62816020860160208601614d26565b601f01601f19169290920160200192915050565b606081526000614d896060830186614d4a565b8281036020840152614d9b8186614144565b915050826040830152949350505050565b6020808252600e908201526d233932b2a132ba39a437b63232b960911b604082015260600190565b6000808335601e19843603018112614deb57600080fd5b8301803591506001600160401b03821115614e0557600080fd5b6020019150600581901b36038213156144f057600080fd5b600060208284031215614e2f57600080fd5b81356132ca816145ba565b610180810161471f8284614368565b60006101c0808352614e5c8184016149c0565b915050614e6c6020830185614368565b826101a08301529392505050565b600082601f830112614e8b57600080fd5b81356020614e9882614a1f565b604051614ea58282614888565b83815260059390931b8501820192828101915086841115614ec557600080fd5b8286015b84811015614ee9578035614edc8161461b565b8352918301918301614ec9565b509695505050505050565b600060808236031215614f0657600080fd5b604051614f1281614844565b8235614f1d816145ba565b815260208301356001600160401b0380821115614f3957600080fd5b9084019036601f830112614f4c57600080fd5b614f5b36833560208501614a69565b6020840152614f6c60408601614630565b60408401526060850135915080821115614f8557600080fd5b50614f9236828601614e7a565b60608301525092915050565b6101c080825260199082015278696e76616c69642064656c74612f737472696b652074696d6560381b6101e08201526102008101614e6c6020830185614368565b60006101c0808352614e5c818401614b3f565b60006101c0808352614e5c818401614b6f565b6000610180820190506150198284516140b2565b60208301516020830152604083015161503d60408401826001600160401b03169052565b50606083015161505860608401826001600160401b03169052565b50608083015161506d608084018260070b9052565b5060a083015161508860a08401826001600160401b03169052565b5060c083015161509b60c08401826140f3565b5060e08301516150ae60e08401826140f3565b50610100808401516150c2828501826140b2565b50506101208381015190830152610140808401516150e2828501826140b2565b505061016092830151919092015290565b60006101c080835261510781840187614d4a565b9150506151176020830185614368565b826101a0830152949350505050565b60208082526016908201527513585e081c5d595d59481cda5e99481b9bdd081cd95d60521b604082015260600190565b60208082526017908201527613585e081c5d595d59481cda5e9948195e18d959591959604a1b604082015260600190565b60408152600061519a6040830185614144565b90508260208301529392505050565b6101a081016151b88285614368565b826101808301529392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208082528181018390526000906040600585901b8401810190840186845b8781101561527d57868403603f190183528135368a9003601e1901811261523457600080fd5b890185810190356001600160401b0381111561524f57600080fd5b80360382131561525e57600080fd5b6152698682846151c6565b95505050918401919084019060010161520e565b5091979650505050505050565b60006020828403121561529c57600080fd5b5051919050565b600082601f8301126152b457600080fd5b81516152bf81614a42565b6040516152cc8282614888565b8281528560208487010111156152e157600080fd5b613cff836020830160208801614d26565b6000806080838503121561530557600080fd5b83601f84011261531457600080fd5b60405161532081614869565b80606085018681111561533257600080fd5b855b8181101561534c578051835260209283019201615334565b5051919350506001600160401b0381111561536657600080fd5b615372858286016152a3565b9150509250929050565b805163ffffffff8116811461463b57600080fd5b80516001600160c01b038116811461463b57600080fd5b8051601781900b811461463b57600080fd5b600061012082840312156153cc57600080fd5b6153d46148b4565b825181526153e46020840161537c565b60208201526153f56040840161537c565b604082015261540660608401615390565b606082015261541760808401615390565b608082015261542860a0840161537c565b60a082015261543960c084016153a7565b60c082015261544a60e084016153a7565b60e082015261010061545d8185016153a7565b908201529392505050565b600060ff821660ff810361547e5761547e6146c3565b60010192915050565b634e487b7160e01b600052601260045260246000fd5b60008160170b8360170b806154b4576154b4615487565b6001600160bf1b03198214600019821416156154d2576154d26146c3565b90059392505050565b6001600160401b038181168382160190808211156154fb576154fb6146c3565b5092915050565b600081600019048311821515161561551c5761551c6146c3565b500290565b60008261553057615530615487565b500490565b60006020828403121561554757600080fd5b81516132ca8161424f565b600060018060a01b038086168352606060208401526155746060840186614d4a565b9150808416604084015250949350505050565b60006040828403121561559957600080fd5b604051604081018181106001600160401b03821117156155bb576155bb614697565b806040525080915082516155ce8161403f565b8152602092830151920191909152919050565b600080600060a084860312156155f657600080fd5b6156008585615587565b925061560f8560408601615587565b9150608084015190509250925092565b6040815260006156326040830185614d4a565b8281036020840152613cff8185614d4a565b60006020828403121561565657600080fd5b81516001600160401b0381111561566c57600080fd5b615678848285016152a3565b949350505050565b60006080828403121561569257600080fd5b604051608081018181106001600160401b03821117156156b4576156b4614697565b6040528251600781900b81146156c957600080fd5b815260208301516156d98161461b565b60208201526040830151600381900b81146156f357600080fd5b60408201526060928301519281019290925250919050565b6000825161571d818460208701614d26565b9190910192915050565b6020815260006132ca6020830184614d4a56feb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c8942c42cac2b53cc05a503aee742eb20728251e952b4bd383e4c07368b76cf72af3ddb5cb31123b06a45f1cac7940acb8c53267338c01be8628d74abe57aed3ea26469706673582212203c7b0f6624d66706b5a2624c973742b1547333afdbb26fdcae5e7305a9e05d3a64736f6c63430008100033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.