ETH Price: $2,298.84 (-1.35%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

Colosseum

Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled
Yes with 10000 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
[{"inputs":[{"internalType":"contract L2OutputOracle","name":"_l2Oracle","type":"address"},{"internalType":"contract ZKProofVerifier","name":"_zkProofVerifier","type":"address"},{"internalType":"uint256","name":"_submissionInterval","type":"uint256"},{"internalType":"uint256","name":"_creationPeriodSeconds","type":"uint256"},{"internalType":"uint256","name":"_bisectionTimeout","type":"uint256"},{"internalType":"uint256","name":"_provingTimeout","type":"uint256"},{"internalType":"uint256[]","name":"_segmentsLengths","type":"uint256[]"},{"internalType":"address","name":"_securityCouncil","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyVerifiedPublicInput","type":"error"},{"inputs":[],"name":"CannotCancelChallenge","type":"error"},{"inputs":[],"name":"CreationPeriodPassed","type":"error"},{"inputs":[],"name":"FirstSegmentMismatched","type":"error"},{"inputs":[],"name":"ImproperChallengeStatus","type":"error"},{"inputs":[],"name":"ImproperChallengeStatusToCancel","type":"error"},{"inputs":[],"name":"ImproperValidatorStatus","type":"error"},{"inputs":[],"name":"InvalidAddressGiven","type":"error"},{"inputs":[],"name":"InvalidOutputGiven","type":"error"},{"inputs":[],"name":"InvalidPublicInputHash","type":"error"},{"inputs":[],"name":"InvalidSegmentsLength","type":"error"},{"inputs":[],"name":"InvalidTurn","type":"error"},{"inputs":[],"name":"L1Reorged","type":"error"},{"inputs":[],"name":"LastSegmentMatched","type":"error"},{"inputs":[],"name":"NotAllowedCaller","type":"error"},{"inputs":[],"name":"NotAllowedGenesisOutput","type":"error"},{"inputs":[],"name":"OnlyChallengerCanCancel","type":"error"},{"inputs":[],"name":"OutputAlreadyDeleted","type":"error"},{"inputs":[],"name":"OutputAlreadyFinalized","type":"error"},{"inputs":[],"name":"OutputNotDeleted","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"uint8","name":"turn","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Bisected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ChallengeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"asserter","type":"address"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ChallengeCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ChallengeDismissed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ChallengerTimedOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"asseter","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OutputForceDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Proven","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"outputIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"}],"name":"ReadyToProve","type":"event"},{"inputs":[],"name":"BISECTION_TIMEOUT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CREATION_PERIOD_SECONDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"L2_ORACLE","outputs":[{"internalType":"contract L2OutputOracle","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"L2_ORACLE_SUBMISSION_INTERVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROVING_TIMEOUT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECURITY_COUNCIL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZK_PROOF_VERIFIER","outputs":[{"internalType":"contract ZKProofVerifier","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"address","name":"_challenger","type":"address"},{"internalType":"uint256","name":"_pos","type":"uint256"},{"internalType":"bytes32[]","name":"_segments","type":"bytes32[]"}],"name":"bisect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"}],"name":"cancelChallenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"address","name":"_challenger","type":"address"}],"name":"challengerTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"challenges","outputs":[{"internalType":"uint8","name":"turn","type":"uint8"},{"internalType":"uint64","name":"timeoutAt","type":"uint64"},{"internalType":"address","name":"asserter","type":"address"},{"internalType":"address","name":"challenger","type":"address"},{"internalType":"uint256","name":"segSize","type":"uint256"},{"internalType":"uint256","name":"segStart","type":"uint256"},{"internalType":"bytes32","name":"l1Head","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"bytes32","name":"_l1BlockHash","type":"bytes32"},{"internalType":"uint256","name":"_l1BlockNumber","type":"uint256"},{"internalType":"bytes32[]","name":"_segments","type":"bytes32[]"}],"name":"createChallenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"deletedOutputs","outputs":[{"internalType":"address","name":"submitter","type":"address"},{"internalType":"bytes32","name":"outputRoot","type":"bytes32"},{"internalType":"uint128","name":"timestamp","type":"uint128"},{"internalType":"uint128","name":"l2BlockNumber","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"address","name":"_challenger","type":"address"},{"internalType":"address","name":"_asserter","type":"address"},{"internalType":"bytes32","name":"_outputRoot","type":"bytes32"},{"internalType":"bytes32","name":"_publicInputHash","type":"bytes32"}],"name":"dismissChallenge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"}],"name":"forceDeleteOutput","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"address","name":"_challenger","type":"address"}],"name":"getChallenge","outputs":[{"components":[{"internalType":"uint8","name":"turn","type":"uint8"},{"internalType":"uint64","name":"timeoutAt","type":"uint64"},{"internalType":"address","name":"asserter","type":"address"},{"internalType":"address","name":"challenger","type":"address"},{"internalType":"bytes32[]","name":"segments","type":"bytes32[]"},{"internalType":"uint256","name":"segSize","type":"uint256"},{"internalType":"uint256","name":"segStart","type":"uint256"},{"internalType":"bytes32","name":"l1Head","type":"bytes32"}],"internalType":"struct Types.Challenge","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"address","name":"_challenger","type":"address"}],"name":"getStatus","outputs":[{"internalType":"enum Colosseum.ChallengeStatus","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_segmentsLengths","type":"uint256[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"}],"name":"isInCreationPeriod","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"uint256","name":"_pos","type":"uint256"},{"components":[{"components":[{"components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"},{"internalType":"bytes32","name":"nextBlockHash","type":"bytes32"}],"internalType":"struct Types.OutputRootProof","name":"srcOutputRootProof","type":"tuple"},{"components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"messagePasserStorageRoot","type":"bytes32"},{"internalType":"bytes32","name":"latestBlockhash","type":"bytes32"},{"internalType":"bytes32","name":"nextBlockHash","type":"bytes32"}],"internalType":"struct Types.OutputRootProof","name":"dstOutputRootProof","type":"tuple"},{"components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"bytes32","name":"parentHash","type":"bytes32"},{"internalType":"uint64","name":"timestamp","type":"uint64"},{"internalType":"uint64","name":"number","type":"uint64"},{"internalType":"uint64","name":"gasLimit","type":"uint64"},{"internalType":"uint256","name":"baseFee","type":"uint256"},{"internalType":"bytes32","name":"transactionsRoot","type":"bytes32"},{"internalType":"bytes32","name":"stateRoot","type":"bytes32"},{"internalType":"bytes32","name":"withdrawalsRoot","type":"bytes32"},{"internalType":"bytes32[]","name":"txHashes","type":"bytes32[]"},{"internalType":"uint64","name":"blobGasUsed","type":"uint64"},{"internalType":"uint64","name":"excessBlobGas","type":"uint64"},{"internalType":"bytes32","name":"parentBeaconRoot","type":"bytes32"}],"internalType":"struct Types.PublicInput","name":"publicInput","type":"tuple"},{"components":[{"internalType":"bytes","name":"uncleHash","type":"bytes"},{"internalType":"bytes","name":"coinbase","type":"bytes"},{"internalType":"bytes","name":"receiptsRoot","type":"bytes"},{"internalType":"bytes","name":"logsBloom","type":"bytes"},{"internalType":"bytes","name":"difficulty","type":"bytes"},{"internalType":"bytes","name":"gasUsed","type":"bytes"},{"internalType":"bytes","name":"extraData","type":"bytes"},{"internalType":"bytes","name":"mixHash","type":"bytes"},{"internalType":"bytes","name":"nonce","type":"bytes"}],"internalType":"struct Types.BlockHeaderRLP","name":"rlps","type":"tuple"},{"internalType":"bytes32","name":"l2ToL1MessagePasserBalance","type":"bytes32"},{"internalType":"bytes32","name":"l2ToL1MessagePasserCodeHash","type":"bytes32"},{"internalType":"bytes[]","name":"merkleProof","type":"bytes[]"}],"internalType":"struct Types.PublicInputProof","name":"publicInputProof","type":"tuple"},{"internalType":"uint256[]","name":"proof","type":"uint256[]"},{"internalType":"uint256[]","name":"pair","type":"uint256[]"}],"internalType":"struct Types.ZkEvmProof","name":"_zkEvmProof","type":"tuple"}],"name":"proveFaultWithZkEvm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_outputIndex","type":"uint256"},{"internalType":"uint256","name":"_pos","type":"uint256"},{"components":[{"internalType":"bytes32","name":"zkVmProgramVKey","type":"bytes32"},{"internalType":"bytes","name":"publicValues","type":"bytes"},{"internalType":"bytes","name":"proofBytes","type":"bytes"}],"internalType":"struct Types.ZkVmProof","name":"_zkVmProof","type":"tuple"}],"name":"proveFaultWithZkVm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"segmentsLengths","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"verifiedPublicInputs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
6101606040523480156200001257600080fd5b5060405162005a1638038062005a168339810160408190526200003591620002d0565b6001600160a01b0380891660805287811660a05260c086905260e085905261010084905261012087905281166101405262000070826200007e565b50505050505050506200048e565b600054610100900460ff16158080156200009f5750600054600160ff909116105b80620000cf5750620000bc306200028060201b6200254c1760201c565b158015620000cf575060005460ff166001145b620001375760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156200015b576000805461ff0019166101001790555b600282516200016b919062000403565b156200018a57604051630fbb795f60e41b815260040160405180910390fd5b600160005b83518110156200020f57838181518110620001ae57620001ae62000426565b602002602001015160016000838152602001908152602001600020819055506001848281518110620001e457620001e462000426565b6020026020010151620001f8919062000452565b6200020490836200046c565b91506001016200018f565b506101205181146200023457604051630fbb795f60e41b815260040160405180910390fd5b5080156200027c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b03163b151590565b6001600160a01b0381168114620002a557600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b8051620002cb816200028f565b919050565b600080600080600080600080610100898b031215620002ee57600080fd5b8851620002fb816200028f565b809850506020808a015162000310816200028f565b60408b015160608c015160808d015160a08e015160c08f0151949c50929a50909850965094506001600160401b03808211156200034c57600080fd5b818c0191508c601f8301126200036157600080fd5b815181811115620003765762000376620002a8565b8060051b604051601f19603f830116810181811085821117156200039e576200039e620002a8565b60405291825284820192508381018501918f831115620003bd57600080fd5b938501935b82851015620003dd57845184529385019392850192620003c2565b809750505050505050620003f460e08a01620002be565b90509295985092959890939650565b6000826200042157634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156200046757620004676200043c565b500390565b60008160001904831182151516156200048957620004896200043c565b500290565b60805160a05160c05160e0516101005161012051610140516153cf62000647600039600081816103000152818161159f015281816117d301528181612a2e015261370401526000818161052a015281816110380152818161241901526124520152600081816105510152818161301d0152613ef10152600081816103270152613f580152600081816104aa015281816106850152611e54015260008181610470015281816126b801526127690152600081816101a1015281816106a60152818161079e015281816108c501528181610aac01528181610b0a01528181610bff01528181610cfe015281816114b0015281816115c7015281816116250152818161171a01528181611a1901528181611b0e01528181611bed01528181611ddc01528181611fa4015281816120eb015281816121e0015281816122db0152818161289801528181612b4d01528181612c3301528181612d4a01528181612f47015281816131750152818161326a015281816132fb0152818161343c015281816134b601528181613548015281816136290152818161378c0152818161386d01528181613a6201528181613b570152613c5201526153cf6000f3fe608060405234801561001057600080fd5b50600436106101975760003560e01c80636fe0e559116100e3578063cfb4474d1161008c578063e58932b311610066578063e58932b314610586578063e9371a2c146105a6578063fc9d84df146105c657600080fd5b8063cfb4474d14610525578063d2ee30751461054c578063e39a219c1461057357600080fd5b8063a41483e3116100bd578063a41483e3146104ec578063a6ade11f146104ff578063cbdd28141461051257600080fd5b80636fe0e559146104925780638f3a6c88146104a55780638f86c803146104cc57600080fd5b80634394c584116101455780635a6b011f1161011f5780635a6b011f146103b357806362fc00db146104585780636506e8371461046b57600080fd5b80634394c58414610322578063461569b81461035757806354fd4d501461036a57600080fd5b80631db1b672116101765780631db1b672146102285780632df27fa51461023b57806336086417146102fb57600080fd5b80621c2ff61461019c57806304126dd0146101e05780631be4e27e146101f5575b600080fd5b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f36101ee36600461418c565b6105d9565b005b6102186102033660046141dc565b60036020526000908152604090205460ff1681565b60405190151581526020016101d7565b6101f361023636600461420a565b6105fd565b6102ad61024936600461420a565b60026020908152600092835260408084209091529082529020805460018201546003830154600484015460059094015460ff84169467ffffffffffffffff610100860416946001600160a01b03690100000000000000000090910481169416929187565b6040805160ff909816885267ffffffffffffffff90961660208801526001600160a01b0394851695870195909552929091166060850152608084015260a083015260c082015260e0016101d7565b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b6103497f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016101d7565b6102186103653660046141dc565b610680565b6103a66040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101d791906142a5565b6104166103c13660046141dc565b6004602052600090815260409020805460018201546002909201546001600160a01b0390911691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041684565b604080516001600160a01b03909516855260208501939093526fffffffffffffffffffffffffffffffff918216928401929092521660608201526080016101d7565b6101f36104663660046142b8565b61075b565b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b6101f36104a03660046144ab565b610e4f565b6103497f000000000000000000000000000000000000000000000000000000000000000081565b6103496104da3660046141dc565b60016020526000908152604090205481565b6101f36104fa3660046141dc565b6110f6565b6101f361050d366004614534565b611167565b6101f361052036600461418c565b61143a565b6103497f000000000000000000000000000000000000000000000000000000000000000081565b6103497f000000000000000000000000000000000000000000000000000000000000000081565b6101f36105813660046141dc565b61146d565b61059961059436600461420a565b61188c565b6040516101d791906145d9565b6105b96105b436600461420a565b6119ab565b6040516101d791906146a2565b6101f36105d43660046146e3565b6119dd565b6105e1613f91565b6105f784846001846105f2876147b5565b61255b565b50505050565b600360008381526002602090815260408083206001600160a01b0386168452909152902061062a90612fb7565b600581111561063b5761063b614673565b14610672576040517f744b348200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067c8282613095565b5050565b6000427f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a25ae557856040518263ffffffff1660e01b81526004016106f291815260200190565b608060405180830381865afa15801561070f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107339190614851565b604001516fffffffffffffffffffffffffffffffff1661075391906148f8565b101592915050565b6107636136f9565b61076c8561375d565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018690526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a25ae55790602401608060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190614851565b602001511461084c576040517f8796efdc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000858152600460205260409020600101548214610896576040517f90e78fa500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fb0ea09a8000000000000000000000000000000000000000000000000000000008152600481018690527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b0ea09a890602401602060405180830381865afa158015610914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109389190614910565b6001600160a01b0316846001600160a01b031614158061097257506000858152600460205260409020546001600160a01b03848116911614155b156109a9576040517f8036a47f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526003602052604090205460ff166109f1576040517fe1cdd3ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905587835260049182905280832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600181018490556002019290925590517fe6646723000000000000000000000000000000000000000000000000000000008152908101869052602481018390526001600160a01b0384811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063e664672390606401600060405180830381600087803b158015610af057600080fd5b505af1158015610b04573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190614910565b6001600160a01b031663ad36d6cc866040518263ffffffff1660e01b8152600401610bb791815260200190565b602060405180830381865afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061492d565b15610e04577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190614910565b6040517fab04b8aa000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038581166024830152919091169063ab04b8aa90604401600060405180830381600087803b158015610ce457600080fd5b505af1158015610cf8573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7e9190614910565b6040517fbe995dc2000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b0385811660248301528681166044830152919091169063be995dc290606401600060405180830381600087803b158015610deb57600080fd5b505af1158015610dff573d6000803e3d6000fd5b505050505b836001600160a01b0316857fdca9fa9b51a5ba03938c6a0cd5489011630370fc481ef2b0cb771ad904a7305342604051610e4091815260200190565b60405180910390a35050505050565b600054610100900460ff1615808015610e6f5750600054600160ff909116105b80610e895750303b158015610e89575060005460ff166001145b610f19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f7757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b60028251610f85919061497e565b15610fbc576040517ffbb795f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160005b835181101561103557838181518110610fdc57610fdc614992565b60200260200101516001600083815260200190815260200160002081905550600184828151811061100f5761100f614992565b602002602001015161102191906149c1565b61102b90836149d8565b9150600101610fc1565b507f0000000000000000000000000000000000000000000000000000000000000000811461108f576040517ffbb795f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50801561067c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818152600260209081526040808320338452909152902060018101546111319083906001600160a01b031661112c84612fb7565b613839565b61067c576040517f4e9d86f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111708561375d565b60008581526002602090815260408083206001600160a01b038816845290915281209061119c82612fb7565b60018301549091506111b99088906001600160a01b031683613839565b156111c5575050611433565b600060018260058111156111db576111db614673565b036111f4575060018201546001600160a01b0316611227565b600282600581111561120857611208614673565b0361122757508154690100000000000000000090046001600160a01b03165b336001600160a01b03821614611269576040517f9d02a7c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825460009061127c9060ff166001614a15565b90506113078185600201898154811061129757611297614992565b9060005260206000200154866002018a60016112b391906148f8565b815481106112c3576112c3614992565b9060005260206000200154898980806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613d5f92505050565b600061131285613e6a565b905061136d8588888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061135892508691508d90506149d8565b886004015461136791906148f8565b84613eb5565b84547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161785556113a185613edf565b6040805160ff841681524260208201526001600160a01b038b16918c917fcadef6622777415b0589e491bdbf6baf11242f676f77055fd03bf1658c17a145910160405180910390a36113f285613f7d565b61142d576040516001600160a01b038a16908b907f5c4528cbb38a169d24837617d3fd3d5c70a47769a4e9af6f384720b359b716c890600090a35b50505050505b5050505050565b60408051606080820183526000825260208201819052918101919091526105f78484600061146786614da4565b8561255b565b6114756136f9565b61147e8161375d565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a25ae55790602401608060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614851565b6020810151909150611561576040517fe66309bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fe664672300000000000000000000000000000000000000000000000000000000815260048101839052600060248201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063e664672390606401600060405180830381600087803b15801561160b57600080fd5b505af115801561161f573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a59190614910565b6001600160a01b031663ad36d6cc836040518263ffffffff1660e01b81526004016116d291815260200190565b602060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061492d565b15611840577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179a9190614910565b81516040517fbe995dc2000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152918216604482015291169063be995dc290606401600060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b505050505b80600001516001600160a01b0316827fa620f04b65b1d538481626bf41dc5ee321b5c48e0cc1a7daae213cf7c254b54e4260405161188091815260200190565b60405180910390a35050565b60408051610100810182526000808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e081019190915260008381526002602081815260408084206001600160a01b0387811686529083529381902081516101008082018452825460ff8116835290810467ffffffffffffffff168286015269010000000000000000009004861681840152600182015490951660608601529283018054825181850281018501909352808352608086019383018282801561197c57602002820191906000526020600020905b815481526020019060010190808311611968575b505050505081526020016003820154815260200160048201548152602001600582015481525050905092915050565b60008281526002602090815260408083206001600160a01b038516845290915281206119d690612fb7565b9392505050565b84600003611a17576040517f2604872b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a999190614910565b6001600160a01b031663ad36d6cc866040518263ffffffff1660e01b8152600401611ac691815260200190565b602060405180830381865afa158015611ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b07919061492d565b15611d26577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e9190614910565b6001600160a01b0316632afe548d866040518263ffffffff1660e01b8152600401611bbb91815260200190565b60006040518083038186803b158015611bd357600080fd5b505afa158015611be7573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6d9190614910565b6040517f9f8a13d70000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039190911690639f8a13d790602401602060405180830381865afa158015611ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf0919061492d565b611d26576040517f197299a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600085815260026020908152604080832033845290915290208054600160ff90911610611daa576003611d5882612fb7565b6005811115611d6957611d69614673565b14611da0576040517f744b348200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611daa8633613095565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018790526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a25ae55790602401608060405180830381865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190614851565b9050427f000000000000000000000000000000000000000000000000000000000000000082604001516fffffffffffffffffffffffffffffffff16611e9491906148f8565b1015611ecc576040517fa0388b4700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020810151611f07576040517fe66309bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03163303611f4a576040517f9d02a7c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8515801590611f595750844015155b15611f985785854014611f98576040517f72f1f56300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a25ae557611fd460018b6149c1565b6040518263ffffffff1660e01b8152600401611ff291815260200190565b608060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120339190614851565b60208101519091506120a15761209c60018686600081811061205757612057614992565b905060200201358460200151888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613d5f92505050565b6120e9565b6120e9600182602001518460200151888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613d5f92505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216b9190614910565b6001600160a01b031663ad36d6cc896040518263ffffffff1660e01b815260040161219891815260200190565b602060405180830381865afa1580156121b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d9919061492d565b156122d9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561223c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122609190614910565b6040517f8c1516c70000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039190911690638c1516c790602401600060405180830381600087803b1580156122bc57600080fd5b505af11580156122d0573d6000803e3d6000fd5b505050506123d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235b9190614910565b6040517f5a544742000000000000000000000000000000000000000000000000000000008152600481018a90523360248201526001600160a01b039190911690635a54474290604401600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050505b612476838686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050606086015161245091507f0000000000000000000000000000000000000000000000000000000000000000906fffffffffffffffffffffffffffffffff166149c1565b7f0000000000000000000000000000000000000000000000000000000000000000613eb5565b825482516001600160a01b03166901000000000000000000027fffffff0000000000000000000000000000000000000000ffffffffffffffff00909116176001908117845583810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556124f090436149c1565b4060058401556124ff83613edf565b815160405142815233916001600160a01b0316908a907fd2f7931a802085b3d0234d4c320ce7ee0041da96678ce2bf5c93e8d3d7e65f529060200160405180910390a45050505050505050565b6001600160a01b03163b151590565b6125648561375d565b600085815260026020908152604080832033845290915281209061258782612fb7565b60018301549091506125a49088906001600160a01b031683613839565b156125b0575050611433565b60058160058111156125c4576125c4614673565b141580156125e4575060048160058111156125e1576125e1614673565b14155b1561261b576040517f744b348200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082600201878154811061263257612632614992565b90600052602060002001549050600061264a84613f7d565b61267b576002840161265d8960016148f8565b8154811061266d5761266d614992565b906000526020600020015490505b600087156127395760058501546040517f9a7ec1360000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639a7ec136916126f1918a9188918891600401614edf565b602060405180830381865afa15801561270e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127329190614f5e565b90506127e6565b6040517f3955d7a10000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633955d7a1906127a2908a90879087906004016151b0565b602060405180830381865afa1580156127bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e39190614f5e565b90505b60008181526003602052604090205460ff161561282f576040517fd0cea89800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405142815233908b907f0431864ed2609170587bbc7c198abd8caee4c55943dfb16fd42ec6f59c91c5f79060200160405180910390a36040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018b90526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a25ae55790602401608060405180830381865afa1580156128e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290b9190614851565b86546020820151604051602481018f905233604482015269010000000000000000009092046001600160a01b03166064830152608482015260a481018490529091506000907f62fc00db000000000000000000000000000000000000000000000000000000009060c401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935291840151606085015192517f080b91ee0000000000000000000000000000000000000000000000000000000081529193506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263080b91ee92612a65929190869060040161532f565b600060405180830381600087803b158015612a7f57600080fd5b505af1158015612a93573d6000803e3d6000fd5b50505060008d815260046020818152604092839020865181546001600160a01b039182167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116178255828801516001830155848801516060909801516fffffffffffffffffffffffffffffffff9081167001000000000000000000000000000000000298169790971760029091015582517fb98debbf00000000000000000000000000000000000000000000000000000000815292517f00000000000000000000000000000000000000000000000000000000000000009096169563b98debbf9550838301945090929091908290030181865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614910565b6001600160a01b031663ad36d6cc8b6040518263ffffffff1660e01b8152600401612beb91815260200190565b602060405180830381865afa158015612c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2c919061492d565b15612d48577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb39190614910565b85546040517fbe995dc2000000000000000000000000000000000000000000000000000000008152600481018d90523360248201526001600160a01b0369010000000000000000009092048216604482015291169063be995dc290606401600060405180830381600087803b158015612d2b57600080fd5b505af1158015612d3f573d6000803e3d6000fd5b50505050612e46565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dca9190614910565b6040517fdd215c5d000000000000000000000000000000000000000000000000000000008152600481018c90523360248201526001600160a01b03919091169063dd215c5d90604401600060405180830381600087803b158015612e2d57600080fd5b505af1158015612e41573d6000803e3d6000fd5b505050505b600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558d8452600280845282852033865290935290832080547fffffff000000000000000000000000000000000000000000000000000000000016815590810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559190612ef490830182613fb8565b50600060038201819055600480830182905560059092018190556040517fe66467230000000000000000000000000000000000000000000000000000000081529182018c905260248201523360448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e664672390606401600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b5050505050505050505050505050565b8054600090600160ff9091161015612fd157506000919050565b8154600090612fe59060029060ff16615369565b835460ff91909116159150610100900467ffffffffffffffff1642111561306a5780156130155750600392915050565b8254613051907f000000000000000000000000000000000000000000000000000000000000000090610100900467ffffffffffffffff166148f8565b4211156130615750600392915050565b50600492915050565b61307383613f7d565b6130805750600592915050565b8061308c5760026119d6565b60019392505050565b60008281526002602081815260408084206001600160a01b0386168552909152822080547fffffff00000000000000000000000000000000000000000000000000000000001681556001810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055919061311590830182613fb8565b6003820160009055600482016000905560058201600090555050806001600160a01b0316827fbf4506ef5d06ecb6168f37bc9e69dd473089eb9e3f2675322d01b4d466cff0514260405161316b91815260200190565b60405180910390a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f59190614910565b6001600160a01b031663ad36d6cc836040518263ffffffff1660e01b815260040161322291815260200190565b602060405180830381865afa15801561323f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613263919061492d565b1561340d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ea9190614910565b6001600160a01b031663be995dc2837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ea09a8866040518263ffffffff1660e01b815260040161334791815260200190565b602060405180830381865afa158015613364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133889190614910565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b039081166024830152841660448201526064015b600060405180830381600087803b1580156133f157600080fd5b505af1158015613405573d6000803e3d6000fd5b505050505050565b6040517f33727c4d000000000000000000000000000000000000000000000000000000008152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333727c4d90602401602060405180830381865afa15801561348b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134af919061492d565b15613627577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135369190614910565b6001600160a01b03166336b8346983837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b0ea09a8876040518263ffffffff1660e01b815260040161359491815260200190565b602060405180830381865afa1580156135b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d59190614910565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526001600160a01b0391821660248401521660448201526064016133d7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a99190614910565b6040517fdd215c5d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b038381166024830152919091169063dd215c5d906044016133d7565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461375b576040517f9d02a7c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040517f33727c4d000000000000000000000000000000000000000000000000000000008152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906333727c4d90602401602060405180830381865afa1580156137db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ff919061492d565b15613836576040517f5c9d9a2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905260009081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a25ae55790602401608060405180830381865afa1580156138bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e09190614851565b60200151146138f1575060006119d6565b336001600160a01b03841614613933576040517f21e62a3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082600581111561394757613947614673565b14806139645750600382600581111561396257613962614673565b145b1561399b576040517ff691b6e600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600260208181526040808420338552909152822080547fffffff00000000000000000000000000000000000000000000000000000000001681556001810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559190613a1290830182613fb8565b5060006003820181905560048201819055600590910155604051428152339085907f6f3468a095154788e69ed719ee418416c1e338ac2348ccb3531bb97a0ed6ed9d9060200160405180910390a37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae29190614910565b6001600160a01b031663ad36d6cc856040518263ffffffff1660e01b8152600401613b0f91815260200190565b602060405180830381865afa158015613b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b50919061492d565b15613c50577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd79190614910565b6040517fa83871720000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03919091169063a838717290602401600060405180830381600087803b158015613c3357600080fd5b505af1158015613c47573d6000803e3d6000fd5b50505050613d55565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd29190614910565b6040517f36b8346900000000000000000000000000000000000000000000000000000000815260048101869052336024820181905260448201526001600160a01b0391909116906336b8346990606401600060405180830381600087803b158015613d3c57600080fd5b505af1158015613d50573d6000803e3d6000fd5b505050505b5060019392505050565b805160016000613d6f828861538b565b60ff1681526020019081526020016000205414613db8576040517ffbb795f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081518110613dcb57613dcb614992565b60200260200101518314613e0b576040517f224dff3200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060018251613e1a91906149c1565b81518110613e2a57613e2a614992565b602002602001015182036105f7576040517f87c1943200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805460009060019081908390613e8490839060ff1661538b565b60ff16815260200190815260200160002054613ea091906149c1565b8260030154613eaf91906153ae565b92915050565b8251613eca9060028601906020860190613fd6565b50600484019190915560039092019190915550565b613ee881613f7d565b613f5357613f167f0000000000000000000000000000000000000000000000000000000000000000426148f8565b815467ffffffffffffffff91909116610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff90911617815550565b613f167f0000000000000000000000000000000000000000000000000000000000000000426148f8565b60006001613f8a83613e6a565b1192915050565b6040518060600160405280613fa4614021565b815260200160608152602001606081525090565b5080546000825590600052602060002090810190613836919061415f565b828054828255906000526020600020908101928215614011579160200282015b82811115614011578251825591602001919060010190613ff6565b5061401d92915061415f565b5090565b604080516101808101909152600060e08201818152610100830182905261012083018290526101408301829052610160830191909152819081526040805160a081018252600080825260208281018290529282018190526060820181905260808201529101908152604080516101a0810182526000808252602082810182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301526101408201819052610160820181905261018082015291019081526020016141466040518061012001604052806060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b8152600060208201819052604082015260609081015290565b5b8082111561401d5760008155600101614160565b60006060828403121561418657600080fd5b50919050565b6000806000606084860312156141a157600080fd5b8335925060208401359150604084013567ffffffffffffffff8111156141c657600080fd5b6141d286828701614174565b9150509250925092565b6000602082840312156141ee57600080fd5b5035919050565b6001600160a01b038116811461383657600080fd5b6000806040838503121561421d57600080fd5b82359150602083013561422f816141f5565b809150509250929050565b6000815180845260005b8181101561426057602081850181015186830182015201614244565b81811115614272576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119d6602083018461423a565b600080600080600060a086880312156142d057600080fd5b8535945060208601356142e2816141f5565b935060408601356142f2816141f5565b94979396509394606081013594506080013592915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561435c5761435c61430a565b60405290565b6040516101a0810167ffffffffffffffff8111828210171561435c5761435c61430a565b604051610120810167ffffffffffffffff8111828210171561435c5761435c61430a565b60405160e0810167ffffffffffffffff8111828210171561435c5761435c61430a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156144145761441461430a565b604052919050565b600067ffffffffffffffff8211156144365761443661430a565b5060051b60200190565b600082601f83011261445157600080fd5b813560206144666144618361441c565b6143cd565b82815260059290921b8401810191818101908684111561448557600080fd5b8286015b848110156144a05780358352918301918301614489565b509695505050505050565b6000602082840312156144bd57600080fd5b813567ffffffffffffffff8111156144d457600080fd5b6144e084828501614440565b949350505050565b60008083601f8401126144fa57600080fd5b50813567ffffffffffffffff81111561451257600080fd5b6020830191508360208260051b850101111561452d57600080fd5b9250929050565b60008060008060006080868803121561454c57600080fd5b85359450602086013561455e816141f5565b935060408601359250606086013567ffffffffffffffff81111561458157600080fd5b61458d888289016144e8565b969995985093965092949392505050565b600081518084526020808501945080840160005b838110156145ce578151875295820195908201906001016145b2565b509495945050505050565b6020815260ff825116602082015267ffffffffffffffff60208301511660408201526000604083015161461760608401826001600160a01b03169052565b5060608301516001600160a01b03811660808401525060808301516101008060a085015261464961012085018361459e565b915060a085015160c085015260c085015160e085015260e085015181850152508091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600683106146dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806000806000608086880312156146fb57600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff81111561458157600080fd5b600082601f83011261473857600080fd5b813567ffffffffffffffff8111156147525761475261430a565b61478360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016143cd565b81815284602083860101111561479857600080fd5b816020850160208301376000918101602001919091529392505050565b6000606082360312156147c757600080fd5b6147cf614339565b82358152602083013567ffffffffffffffff808211156147ee57600080fd5b6147fa36838701614727565b6020840152604085013591508082111561481357600080fd5b5061482036828601614727565b60408301525092915050565b80516fffffffffffffffffffffffffffffffff8116811461484c57600080fd5b919050565b60006080828403121561486357600080fd5b6040516080810181811067ffffffffffffffff821117156148865761488661430a565b6040528251614894816141f5565b8152602083810151908201526148ac6040840161482c565b60408201526148bd6060840161482c565b60608201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561490b5761490b6148c9565b500190565b60006020828403121561492257600080fd5b81516119d6816141f5565b60006020828403121561493f57600080fd5b815180151581146119d657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261498d5761498d61494f565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000828210156149d3576149d36148c9565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a1057614a106148c9565b500290565b600060ff821660ff84168060ff03821115614a3257614a326148c9565b019392505050565b600060a08284031215614a4c57600080fd5b60405160a0810181811067ffffffffffffffff82111715614a6f57614a6f61430a565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b803567ffffffffffffffff8116811461484c57600080fd5b60006101a08284031215614ad557600080fd5b614add614362565b90508135815260208201356020820152614af960408301614aaa565b6040820152614b0a60608301614aaa565b6060820152614b1b60808301614aaa565b608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013567ffffffffffffffff811115614b6657600080fd5b614b7285828601614440565b828401525050610140614b86818401614aaa565b90820152610160614b98838201614aaa565b818301525061018080830135818301525092915050565b60006101208284031215614bc257600080fd5b614bca614386565b9050813567ffffffffffffffff80821115614be457600080fd5b614bf085838601614727565b83526020840135915080821115614c0657600080fd5b614c1285838601614727565b60208401526040840135915080821115614c2b57600080fd5b614c3785838601614727565b60408401526060840135915080821115614c5057600080fd5b614c5c85838601614727565b60608401526080840135915080821115614c7557600080fd5b614c8185838601614727565b608084015260a0840135915080821115614c9a57600080fd5b614ca685838601614727565b60a084015260c0840135915080821115614cbf57600080fd5b614ccb85838601614727565b60c084015260e0840135915080821115614ce457600080fd5b614cf085838601614727565b60e084015261010091508184013581811115614d0b57600080fd5b614d1786828701614727565b8385015250505092915050565b600082601f830112614d3557600080fd5b81356020614d456144618361441c565b82815260059290921b84018101918181019086841115614d6457600080fd5b8286015b848110156144a057803567ffffffffffffffff811115614d885760008081fd5b614d968986838b0101614727565b845250918301918301614d68565b600060608236031215614db657600080fd5b614dbe614339565b823567ffffffffffffffff80821115614dd657600080fd5b81850191506101e08236031215614dec57600080fd5b614df46143aa565b614dfe3684614a3a565b8152614e0d3660a08501614a3a565b602082015261014083013582811115614e2557600080fd5b614e3136828601614ac2565b60408301525061016083013582811115614e4a57600080fd5b614e5636828601614baf565b60608301525061018083013560808201526101a083013560a08201526101c083013582811115614e8557600080fd5b614e9136828601614d24565b60c08301525083526020850135915080821115614ead57600080fd5b614eb936838701614440565b60208401526040850135915080821115614ed257600080fd5b5061482036828601614440565b608081528451608082015260006020860151606060a0840152614f0560e084018261423a565b905060408701517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808483030160c0850152614f40828261423a565b60208501979097525050506040810192909252606090910152919050565b600060208284031215614f7057600080fd5b5051919050565b60006101a082518452602083015160208501526040830151614fa5604086018267ffffffffffffffff169052565b506060830151614fc1606086018267ffffffffffffffff169052565b506080830151614fdd608086018267ffffffffffffffff169052565b5060a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015182828701526150208387018261459e565b92505050610140808401516150408287018267ffffffffffffffff169052565b50506101608381015167ffffffffffffffff16908501526101809283015192909301919091525090565b600061012082518185526150808286018261423a565b9150506020830151848203602086015261509a828261423a565b915050604083015184820360408601526150b4828261423a565b915050606083015184820360608601526150ce828261423a565b915050608083015184820360808601526150e8828261423a565b91505060a083015184820360a0860152615102828261423a565b91505060c083015184820360c086015261511c828261423a565b91505060e083015184820360e0860152615136828261423a565b9150506101008084015185830382870152615151838261423a565b9695505050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156151a357828403895261519184835161423a565b98850198935090840190600101615179565b5091979650505050505050565b60608152600084516060808401526151f760c08401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60208181015180516101608601529081015161018085015260408101516101a085015260608101516101c085015260808101516101e08501525060408101516101e061020085015261524d6102a0850182614f77565b905060608201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40808684030161022087015261528a838361506a565b9250608084015161024087015260a084015161026087015260c08401519350808684030161028087015250506152c0818361515b565b91505060208601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0808584030160808601526152fd838361459e565b925060408801519150808584030160a08601525061531b828261459e565b602085019690965250505060400152919050565b8381526fffffffffffffffffffffffffffffffff83166020820152606060408201526000615360606083018461423a565b95945050505050565b600060ff83168061537c5761537c61494f565b8060ff84160691505092915050565b600060ff821660ff8416808210156153a5576153a56148c9565b90039392505050565b6000826153bd576153bd61494f565b50049056fea164736f6c634300080f000a000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a6000000000000000000000000005ddc466c804c79adb079c120347dde481321050000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000007e9000000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000001000000000000000000000000003de211088df516da72efe68d386b561bee256ec4000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000006
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101975760003560e01c80636fe0e559116100e3578063cfb4474d1161008c578063e58932b311610066578063e58932b314610586578063e9371a2c146105a6578063fc9d84df146105c657600080fd5b8063cfb4474d14610525578063d2ee30751461054c578063e39a219c1461057357600080fd5b8063a41483e3116100bd578063a41483e3146104ec578063a6ade11f146104ff578063cbdd28141461051257600080fd5b80636fe0e559146104925780638f3a6c88146104a55780638f86c803146104cc57600080fd5b80634394c584116101455780635a6b011f1161011f5780635a6b011f146103b357806362fc00db146104585780636506e8371461046b57600080fd5b80634394c58414610322578063461569b81461035757806354fd4d501461036a57600080fd5b80631db1b672116101765780631db1b672146102285780632df27fa51461023b57806336086417146102fb57600080fd5b80621c2ff61461019c57806304126dd0146101e05780631be4e27e146101f5575b600080fd5b6101c37f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f36101ee36600461418c565b6105d9565b005b6102186102033660046141dc565b60036020526000908152604090205460ff1681565b60405190151581526020016101d7565b6101f361023636600461420a565b6105fd565b6102ad61024936600461420a565b60026020908152600092835260408084209091529082529020805460018201546003830154600484015460059094015460ff84169467ffffffffffffffff610100860416946001600160a01b03690100000000000000000090910481169416929187565b6040805160ff909816885267ffffffffffffffff90961660208801526001600160a01b0394851695870195909552929091166060850152608084015260a083015260c082015260e0016101d7565b6101c37f0000000000000000000000003de211088df516da72efe68d386b561bee256ec481565b6103497f0000000000000000000000000000000000000000000000000000000000000e1081565b6040519081526020016101d7565b6102186103653660046141dc565b610680565b6103a66040518060400160405280600581526020017f322e302e3000000000000000000000000000000000000000000000000000000081525081565b6040516101d791906142a5565b6104166103c13660046141dc565b6004602052600090815260409020805460018201546002909201546001600160a01b0390911691906fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041684565b604080516001600160a01b03909516855260208501939093526fffffffffffffffffffffffffffffffff918216928401929092521660608201526080016101d7565b6101f36104663660046142b8565b61075b565b6101c37f000000000000000000000000005ddc466c804c79adb079c120347dde4813210581565b6101f36104a03660046144ab565b610e4f565b6103497f000000000000000000000000000000000000000000000000000000000007e90081565b6103496104da3660046141dc565b60016020526000908152604090205481565b6101f36104fa3660046141dc565b6110f6565b6101f361050d366004614534565b611167565b6101f361052036600461418c565b61143a565b6103497f000000000000000000000000000000000000000000000000000000000000070881565b6103497f000000000000000000000000000000000000000000000000000000000000708081565b6101f36105813660046141dc565b61146d565b61059961059436600461420a565b61188c565b6040516101d791906145d9565b6105b96105b436600461420a565b6119ab565b6040516101d791906146a2565b6101f36105d43660046146e3565b6119dd565b6105e1613f91565b6105f784846001846105f2876147b5565b61255b565b50505050565b600360008381526002602090815260408083206001600160a01b0386168452909152902061062a90612fb7565b600581111561063b5761063b614673565b14610672576040517f744b348200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067c8282613095565b5050565b6000427f000000000000000000000000000000000000000000000000000000000007e9007f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663a25ae557856040518263ffffffff1660e01b81526004016106f291815260200190565b608060405180830381865afa15801561070f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107339190614851565b604001516fffffffffffffffffffffffffffffffff1661075391906148f8565b101592915050565b6107636136f9565b61076c8561375d565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018690526000907f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063a25ae55790602401608060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190614851565b602001511461084c576040517f8796efdc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000858152600460205260409020600101548214610896576040517f90e78fa500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fb0ea09a8000000000000000000000000000000000000000000000000000000008152600481018690527f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063b0ea09a890602401602060405180830381865afa158015610914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109389190614910565b6001600160a01b0316846001600160a01b031614158061097257506000858152600460205260409020546001600160a01b03848116911614155b156109a9576040517f8036a47f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526003602052604090205460ff166109f1576040517fe1cdd3ac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905587835260049182905280832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168155600181018490556002019290925590517fe6646723000000000000000000000000000000000000000000000000000000008152908101869052602481018390526001600160a01b0384811660448301527f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a6169063e664672390606401600060405180830381600087803b158015610af057600080fd5b505af1158015610b04573d6000803e3d6000fd5b505050507f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8a9190614910565b6001600160a01b031663ad36d6cc866040518263ffffffff1660e01b8152600401610bb791815260200190565b602060405180830381865afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061492d565b15610e04577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190614910565b6040517fab04b8aa000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b038581166024830152919091169063ab04b8aa90604401600060405180830381600087803b158015610ce457600080fd5b505af1158015610cf8573d6000803e3d6000fd5b505050507f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7e9190614910565b6040517fbe995dc2000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b0385811660248301528681166044830152919091169063be995dc290606401600060405180830381600087803b158015610deb57600080fd5b505af1158015610dff573d6000803e3d6000fd5b505050505b836001600160a01b0316857fdca9fa9b51a5ba03938c6a0cd5489011630370fc481ef2b0cb771ad904a7305342604051610e4091815260200190565b60405180910390a35050505050565b600054610100900460ff1615808015610e6f5750600054600160ff909116105b80610e895750303b158015610e89575060005460ff166001145b610f19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840160405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f7757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b60028251610f85919061497e565b15610fbc576040517ffbb795f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160005b835181101561103557838181518110610fdc57610fdc614992565b60200260200101516001600083815260200190815260200160002081905550600184828151811061100f5761100f614992565b602002602001015161102191906149c1565b61102b90836149d8565b9150600101610fc1565b507f0000000000000000000000000000000000000000000000000000000000000708811461108f576040517ffbb795f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50801561067c57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6000818152600260209081526040808320338452909152902060018101546111319083906001600160a01b031661112c84612fb7565b613839565b61067c576040517f4e9d86f500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111708561375d565b60008581526002602090815260408083206001600160a01b038816845290915281209061119c82612fb7565b60018301549091506111b99088906001600160a01b031683613839565b156111c5575050611433565b600060018260058111156111db576111db614673565b036111f4575060018201546001600160a01b0316611227565b600282600581111561120857611208614673565b0361122757508154690100000000000000000090046001600160a01b03165b336001600160a01b03821614611269576040517f9d02a7c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825460009061127c9060ff166001614a15565b90506113078185600201898154811061129757611297614992565b9060005260206000200154866002018a60016112b391906148f8565b815481106112c3576112c3614992565b9060005260206000200154898980806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613d5f92505050565b600061131285613e6a565b905061136d8588888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061135892508691508d90506149d8565b886004015461136791906148f8565b84613eb5565b84547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff83161785556113a185613edf565b6040805160ff841681524260208201526001600160a01b038b16918c917fcadef6622777415b0589e491bdbf6baf11242f676f77055fd03bf1658c17a145910160405180910390a36113f285613f7d565b61142d576040516001600160a01b038a16908b907f5c4528cbb38a169d24837617d3fd3d5c70a47769a4e9af6f384720b359b716c890600090a35b50505050505b5050505050565b60408051606080820183526000825260208201819052918101919091526105f78484600061146786614da4565b8561255b565b6114756136f9565b61147e8161375d565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063a25ae55790602401608060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190614851565b6020810151909150611561576040517fe66309bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fe664672300000000000000000000000000000000000000000000000000000000815260048101839052600060248201526001600160a01b037f0000000000000000000000003de211088df516da72efe68d386b561bee256ec4811660448301527f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a6169063e664672390606401600060405180830381600087803b15801561160b57600080fd5b505af115801561161f573d6000803e3d6000fd5b505050507f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a59190614910565b6001600160a01b031663ad36d6cc836040518263ffffffff1660e01b81526004016116d291815260200190565b602060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061492d565b15611840577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611776573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179a9190614910565b81516040517fbe995dc2000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b037f0000000000000000000000003de211088df516da72efe68d386b561bee256ec481166024830152918216604482015291169063be995dc290606401600060405180830381600087803b15801561182757600080fd5b505af115801561183b573d6000803e3d6000fd5b505050505b80600001516001600160a01b0316827fa620f04b65b1d538481626bf41dc5ee321b5c48e0cc1a7daae213cf7c254b54e4260405161188091815260200190565b60405180910390a35050565b60408051610100810182526000808252602082018190529181018290526060808201839052608082015260a0810182905260c0810182905260e081019190915260008381526002602081815260408084206001600160a01b0387811686529083529381902081516101008082018452825460ff8116835290810467ffffffffffffffff168286015269010000000000000000009004861681840152600182015490951660608601529283018054825181850281018501909352808352608086019383018282801561197c57602002820191906000526020600020905b815481526020019060010190808311611968575b505050505081526020016003820154815260200160048201548152602001600582015481525050905092915050565b60008281526002602090815260408083206001600160a01b038516845290915281206119d690612fb7565b9392505050565b84600003611a17576040517f2604872b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a999190614910565b6001600160a01b031663ad36d6cc866040518263ffffffff1660e01b8152600401611ac691815260200190565b602060405180830381865afa158015611ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b07919061492d565b15611d26577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e9190614910565b6001600160a01b0316632afe548d866040518263ffffffff1660e01b8152600401611bbb91815260200190565b60006040518083038186803b158015611bd357600080fd5b505afa158015611be7573d6000803e3d6000fd5b505050507f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6d9190614910565b6040517f9f8a13d70000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039190911690639f8a13d790602401602060405180830381865afa158015611ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf0919061492d565b611d26576040517f197299a000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600085815260026020908152604080832033845290915290208054600160ff90911610611daa576003611d5882612fb7565b6005811115611d6957611d69614673565b14611da0576040517f744b348200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611daa8633613095565b6040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018790526000907f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063a25ae55790602401608060405180830381865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190614851565b9050427f000000000000000000000000000000000000000000000000000000000007e90082604001516fffffffffffffffffffffffffffffffff16611e9491906148f8565b1015611ecc576040517fa0388b4700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020810151611f07576040517fe66309bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516001600160a01b03163303611f4a576040517f9d02a7c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8515801590611f595750844015155b15611f985785854014611f98576040517f72f1f56300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006001600160a01b037f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a61663a25ae557611fd460018b6149c1565b6040518263ffffffff1660e01b8152600401611ff291815260200190565b608060405180830381865afa15801561200f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120339190614851565b60208101519091506120a15761209c60018686600081811061205757612057614992565b905060200201358460200151888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613d5f92505050565b6120e9565b6120e9600182602001518460200151888880806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250613d5f92505050565b7f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216b9190614910565b6001600160a01b031663ad36d6cc896040518263ffffffff1660e01b815260040161219891815260200190565b602060405180830381865afa1580156121b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d9919061492d565b156122d9577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561223c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122609190614910565b6040517f8c1516c70000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039190911690638c1516c790602401600060405180830381600087803b1580156122bc57600080fd5b505af11580156122d0573d6000803e3d6000fd5b505050506123d7565b7f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235b9190614910565b6040517f5a544742000000000000000000000000000000000000000000000000000000008152600481018a90523360248201526001600160a01b039190911690635a54474290604401600060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050505b612476838686808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050606086015161245091507f0000000000000000000000000000000000000000000000000000000000000708906fffffffffffffffffffffffffffffffff166149c1565b7f0000000000000000000000000000000000000000000000000000000000000708613eb5565b825482516001600160a01b03166901000000000000000000027fffffff0000000000000000000000000000000000000000ffffffffffffffff00909116176001908117845583810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556124f090436149c1565b4060058401556124ff83613edf565b815160405142815233916001600160a01b0316908a907fd2f7931a802085b3d0234d4c320ce7ee0041da96678ce2bf5c93e8d3d7e65f529060200160405180910390a45050505050505050565b6001600160a01b03163b151590565b6125648561375d565b600085815260026020908152604080832033845290915281209061258782612fb7565b60018301549091506125a49088906001600160a01b031683613839565b156125b0575050611433565b60058160058111156125c4576125c4614673565b141580156125e4575060048160058111156125e1576125e1614673565b14155b1561261b576040517f744b348200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082600201878154811061263257612632614992565b90600052602060002001549050600061264a84613f7d565b61267b576002840161265d8960016148f8565b8154811061266d5761266d614992565b906000526020600020015490505b600087156127395760058501546040517f9a7ec1360000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000005ddc466c804c79adb079c120347dde481321051691639a7ec136916126f1918a9188918891600401614edf565b602060405180830381865afa15801561270e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127329190614f5e565b90506127e6565b6040517f3955d7a10000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000005ddc466c804c79adb079c120347dde481321051690633955d7a1906127a2908a90879087906004016151b0565b602060405180830381865afa1580156127bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e39190614f5e565b90505b60008181526003602052604090205460ff161561282f576040517fd0cea89800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405142815233908b907f0431864ed2609170587bbc7c198abd8caee4c55943dfb16fd42ec6f59c91c5f79060200160405180910390a36040517fa25ae557000000000000000000000000000000000000000000000000000000008152600481018b90526000907f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063a25ae55790602401608060405180830381865afa1580156128e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290b9190614851565b86546020820151604051602481018f905233604482015269010000000000000000009092046001600160a01b03166064830152608482015260a481018490529091506000907f62fc00db000000000000000000000000000000000000000000000000000000009060c401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935291840151606085015192517f080b91ee0000000000000000000000000000000000000000000000000000000081529193506001600160a01b037f0000000000000000000000003de211088df516da72efe68d386b561bee256ec4169263080b91ee92612a65929190869060040161532f565b600060405180830381600087803b158015612a7f57600080fd5b505af1158015612a93573d6000803e3d6000fd5b50505060008d815260046020818152604092839020865181546001600160a01b039182167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116178255828801516001830155848801516060909801516fffffffffffffffffffffffffffffffff9081167001000000000000000000000000000000000298169790971760029091015582517fb98debbf00000000000000000000000000000000000000000000000000000000815292517f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a69096169563b98debbf9550838301945090929091908290030181865afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614910565b6001600160a01b031663ad36d6cc8b6040518263ffffffff1660e01b8152600401612beb91815260200190565b602060405180830381865afa158015612c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2c919061492d565b15612d48577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb39190614910565b85546040517fbe995dc2000000000000000000000000000000000000000000000000000000008152600481018d90523360248201526001600160a01b0369010000000000000000009092048216604482015291169063be995dc290606401600060405180830381600087803b158015612d2b57600080fd5b505af1158015612d3f573d6000803e3d6000fd5b50505050612e46565b7f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dca9190614910565b6040517fdd215c5d000000000000000000000000000000000000000000000000000000008152600481018c90523360248201526001600160a01b03919091169063dd215c5d90604401600060405180830381600087803b158015612e2d57600080fd5b505af1158015612e41573d6000803e3d6000fd5b505050505b600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558d8452600280845282852033865290935290832080547fffffff000000000000000000000000000000000000000000000000000000000016815590810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559190612ef490830182613fb8565b50600060038201819055600480830182905560059092018190556040517fe66467230000000000000000000000000000000000000000000000000000000081529182018c905260248201523360448201527f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063e664672390606401600060405180830381600087803b158015612f9357600080fd5b505af1158015612fa7573d6000803e3d6000fd5b5050505050505050505050505050565b8054600090600160ff9091161015612fd157506000919050565b8154600090612fe59060029060ff16615369565b835460ff91909116159150610100900467ffffffffffffffff1642111561306a5780156130155750600392915050565b8254613051907f000000000000000000000000000000000000000000000000000000000000708090610100900467ffffffffffffffff166148f8565b4211156130615750600392915050565b50600492915050565b61307383613f7d565b6130805750600592915050565b8061308c5760026119d6565b60019392505050565b60008281526002602081815260408084206001600160a01b0386168552909152822080547fffffff00000000000000000000000000000000000000000000000000000000001681556001810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055919061311590830182613fb8565b6003820160009055600482016000905560058201600090555050806001600160a01b0316827fbf4506ef5d06ecb6168f37bc9e69dd473089eb9e3f2675322d01b4d466cff0514260405161316b91815260200190565b60405180910390a37f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f59190614910565b6001600160a01b031663ad36d6cc836040518263ffffffff1660e01b815260040161322291815260200190565b602060405180830381865afa15801561323f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613263919061492d565b1561340d577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132ea9190614910565b6001600160a01b031663be995dc2837f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b0ea09a8866040518263ffffffff1660e01b815260040161334791815260200190565b602060405180830381865afa158015613364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133889190614910565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815260048101929092526001600160a01b039081166024830152841660448201526064015b600060405180830381600087803b1580156133f157600080fd5b505af1158015613405573d6000803e3d6000fd5b505050505050565b6040517f33727c4d000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b0316906333727c4d90602401602060405180830381865afa15801561348b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134af919061492d565b15613627577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613512573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135369190614910565b6001600160a01b03166336b8346983837f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b0ea09a8876040518263ffffffff1660e01b815260040161359491815260200190565b602060405180830381865afa1580156135b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d59190614910565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815260048101939093526001600160a01b0391821660248401521660448201526064016133d7565b7f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a99190614910565b6040517fdd215c5d000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b038381166024830152919091169063dd215c5d906044016133d7565b336001600160a01b037f0000000000000000000000003de211088df516da72efe68d386b561bee256ec4161461375b576040517f9d02a7c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6040517f33727c4d000000000000000000000000000000000000000000000000000000008152600481018290527f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b0316906333727c4d90602401602060405180830381865afa1580156137db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ff919061492d565b15613836576040517f5c9d9a2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810184905260009081907f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b03169063a25ae55790602401608060405180830381865afa1580156138bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e09190614851565b60200151146138f1575060006119d6565b336001600160a01b03841614613933576040517f21e62a3f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082600581111561394757613947614673565b14806139645750600382600581111561396257613962614673565b145b1561399b576040517ff691b6e600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000848152600260208181526040808420338552909152822080547fffffff00000000000000000000000000000000000000000000000000000000001681556001810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690559190613a1290830182613fb8565b5060006003820181905560048201819055600590910155604051428152339085907f6f3468a095154788e69ed719ee418416c1e338ac2348ccb3531bb97a0ed6ed9d9060200160405180910390a37f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ae29190614910565b6001600160a01b031663ad36d6cc856040518263ffffffff1660e01b8152600401613b0f91815260200190565b602060405180830381865afa158015613b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b50919061492d565b15613c50577f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663ae9483e06040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd79190614910565b6040517fa83871720000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03919091169063a838717290602401600060405180830381600087803b158015613c3357600080fd5b505af1158015613c47573d6000803e3d6000fd5b50505050613d55565b7f000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a66001600160a01b031663b98debbf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd29190614910565b6040517f36b8346900000000000000000000000000000000000000000000000000000000815260048101869052336024820181905260448201526001600160a01b0391909116906336b8346990606401600060405180830381600087803b158015613d3c57600080fd5b505af1158015613d50573d6000803e3d6000fd5b505050505b5060019392505050565b805160016000613d6f828861538b565b60ff1681526020019081526020016000205414613db8576040517ffbb795f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600081518110613dcb57613dcb614992565b60200260200101518314613e0b576040517f224dff3200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060018251613e1a91906149c1565b81518110613e2a57613e2a614992565b602002602001015182036105f7576040517f87c1943200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805460009060019081908390613e8490839060ff1661538b565b60ff16815260200190815260200160002054613ea091906149c1565b8260030154613eaf91906153ae565b92915050565b8251613eca9060028601906020860190613fd6565b50600484019190915560039092019190915550565b613ee881613f7d565b613f5357613f167f0000000000000000000000000000000000000000000000000000000000007080426148f8565b815467ffffffffffffffff91909116610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff90911617815550565b613f167f0000000000000000000000000000000000000000000000000000000000000e10426148f8565b60006001613f8a83613e6a565b1192915050565b6040518060600160405280613fa4614021565b815260200160608152602001606081525090565b5080546000825590600052602060002090810190613836919061415f565b828054828255906000526020600020908101928215614011579160200282015b82811115614011578251825591602001919060010190613ff6565b5061401d92915061415f565b5090565b604080516101808101909152600060e08201818152610100830182905261012083018290526101408301829052610160830191909152819081526040805160a081018252600080825260208281018290529282018190526060820181905260808201529101908152604080516101a0810182526000808252602082810182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301526101408201819052610160820181905261018082015291019081526020016141466040518061012001604052806060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b8152600060208201819052604082015260609081015290565b5b8082111561401d5760008155600101614160565b60006060828403121561418657600080fd5b50919050565b6000806000606084860312156141a157600080fd5b8335925060208401359150604084013567ffffffffffffffff8111156141c657600080fd5b6141d286828701614174565b9150509250925092565b6000602082840312156141ee57600080fd5b5035919050565b6001600160a01b038116811461383657600080fd5b6000806040838503121561421d57600080fd5b82359150602083013561422f816141f5565b809150509250929050565b6000815180845260005b8181101561426057602081850181015186830182015201614244565b81811115614272576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006119d6602083018461423a565b600080600080600060a086880312156142d057600080fd5b8535945060208601356142e2816141f5565b935060408601356142f2816141f5565b94979396509394606081013594506080013592915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561435c5761435c61430a565b60405290565b6040516101a0810167ffffffffffffffff8111828210171561435c5761435c61430a565b604051610120810167ffffffffffffffff8111828210171561435c5761435c61430a565b60405160e0810167ffffffffffffffff8111828210171561435c5761435c61430a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156144145761441461430a565b604052919050565b600067ffffffffffffffff8211156144365761443661430a565b5060051b60200190565b600082601f83011261445157600080fd5b813560206144666144618361441c565b6143cd565b82815260059290921b8401810191818101908684111561448557600080fd5b8286015b848110156144a05780358352918301918301614489565b509695505050505050565b6000602082840312156144bd57600080fd5b813567ffffffffffffffff8111156144d457600080fd5b6144e084828501614440565b949350505050565b60008083601f8401126144fa57600080fd5b50813567ffffffffffffffff81111561451257600080fd5b6020830191508360208260051b850101111561452d57600080fd5b9250929050565b60008060008060006080868803121561454c57600080fd5b85359450602086013561455e816141f5565b935060408601359250606086013567ffffffffffffffff81111561458157600080fd5b61458d888289016144e8565b969995985093965092949392505050565b600081518084526020808501945080840160005b838110156145ce578151875295820195908201906001016145b2565b509495945050505050565b6020815260ff825116602082015267ffffffffffffffff60208301511660408201526000604083015161461760608401826001600160a01b03169052565b5060608301516001600160a01b03811660808401525060808301516101008060a085015261464961012085018361459e565b915060a085015160c085015260c085015160e085015260e085015181850152508091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60208101600683106146dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000806000806000608086880312156146fb57600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff81111561458157600080fd5b600082601f83011261473857600080fd5b813567ffffffffffffffff8111156147525761475261430a565b61478360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016143cd565b81815284602083860101111561479857600080fd5b816020850160208301376000918101602001919091529392505050565b6000606082360312156147c757600080fd5b6147cf614339565b82358152602083013567ffffffffffffffff808211156147ee57600080fd5b6147fa36838701614727565b6020840152604085013591508082111561481357600080fd5b5061482036828601614727565b60408301525092915050565b80516fffffffffffffffffffffffffffffffff8116811461484c57600080fd5b919050565b60006080828403121561486357600080fd5b6040516080810181811067ffffffffffffffff821117156148865761488661430a565b6040528251614894816141f5565b8152602083810151908201526148ac6040840161482c565b60408201526148bd6060840161482c565b60608201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561490b5761490b6148c9565b500190565b60006020828403121561492257600080fd5b81516119d6816141f5565b60006020828403121561493f57600080fd5b815180151581146119d657600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261498d5761498d61494f565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000828210156149d3576149d36148c9565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614a1057614a106148c9565b500290565b600060ff821660ff84168060ff03821115614a3257614a326148c9565b019392505050565b600060a08284031215614a4c57600080fd5b60405160a0810181811067ffffffffffffffff82111715614a6f57614a6f61430a565b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b803567ffffffffffffffff8116811461484c57600080fd5b60006101a08284031215614ad557600080fd5b614add614362565b90508135815260208201356020820152614af960408301614aaa565b6040820152614b0a60608301614aaa565b6060820152614b1b60808301614aaa565b608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101208083013567ffffffffffffffff811115614b6657600080fd5b614b7285828601614440565b828401525050610140614b86818401614aaa565b90820152610160614b98838201614aaa565b818301525061018080830135818301525092915050565b60006101208284031215614bc257600080fd5b614bca614386565b9050813567ffffffffffffffff80821115614be457600080fd5b614bf085838601614727565b83526020840135915080821115614c0657600080fd5b614c1285838601614727565b60208401526040840135915080821115614c2b57600080fd5b614c3785838601614727565b60408401526060840135915080821115614c5057600080fd5b614c5c85838601614727565b60608401526080840135915080821115614c7557600080fd5b614c8185838601614727565b608084015260a0840135915080821115614c9a57600080fd5b614ca685838601614727565b60a084015260c0840135915080821115614cbf57600080fd5b614ccb85838601614727565b60c084015260e0840135915080821115614ce457600080fd5b614cf085838601614727565b60e084015261010091508184013581811115614d0b57600080fd5b614d1786828701614727565b8385015250505092915050565b600082601f830112614d3557600080fd5b81356020614d456144618361441c565b82815260059290921b84018101918181019086841115614d6457600080fd5b8286015b848110156144a057803567ffffffffffffffff811115614d885760008081fd5b614d968986838b0101614727565b845250918301918301614d68565b600060608236031215614db657600080fd5b614dbe614339565b823567ffffffffffffffff80821115614dd657600080fd5b81850191506101e08236031215614dec57600080fd5b614df46143aa565b614dfe3684614a3a565b8152614e0d3660a08501614a3a565b602082015261014083013582811115614e2557600080fd5b614e3136828601614ac2565b60408301525061016083013582811115614e4a57600080fd5b614e5636828601614baf565b60608301525061018083013560808201526101a083013560a08201526101c083013582811115614e8557600080fd5b614e9136828601614d24565b60c08301525083526020850135915080821115614ead57600080fd5b614eb936838701614440565b60208401526040850135915080821115614ed257600080fd5b5061482036828601614440565b608081528451608082015260006020860151606060a0840152614f0560e084018261423a565b905060408701517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808483030160c0850152614f40828261423a565b60208501979097525050506040810192909252606090910152919050565b600060208284031215614f7057600080fd5b5051919050565b60006101a082518452602083015160208501526040830151614fa5604086018267ffffffffffffffff169052565b506060830151614fc1606086018267ffffffffffffffff169052565b506080830151614fdd608086018267ffffffffffffffff169052565b5060a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015182828701526150208387018261459e565b92505050610140808401516150408287018267ffffffffffffffff169052565b50506101608381015167ffffffffffffffff16908501526101809283015192909301919091525090565b600061012082518185526150808286018261423a565b9150506020830151848203602086015261509a828261423a565b915050604083015184820360408601526150b4828261423a565b915050606083015184820360608601526150ce828261423a565b915050608083015184820360808601526150e8828261423a565b91505060a083015184820360a0860152615102828261423a565b91505060c083015184820360c086015261511c828261423a565b91505060e083015184820360e0860152615136828261423a565b9150506101008084015185830382870152615151838261423a565b9695505050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156151a357828403895261519184835161423a565b98850198935090840190600101615179565b5091979650505050505050565b60608152600084516060808401526151f760c08401825180518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60208181015180516101608601529081015161018085015260408101516101a085015260608101516101c085015260808101516101e08501525060408101516101e061020085015261524d6102a0850182614f77565b905060608201517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40808684030161022087015261528a838361506a565b9250608084015161024087015260a084015161026087015260c08401519350808684030161028087015250506152c0818361515b565b91505060208601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0808584030160808601526152fd838361459e565b925060408801519150808584030160a08601525061531b828261459e565b602085019690965250505060400152919050565b8381526fffffffffffffffffffffffffffffffff83166020820152606060408201526000615360606083018461423a565b95945050505050565b600060ff83168061537c5761537c61494f565b8060ff84160691505092915050565b600060ff821660ff8416808210156153a5576153a56148c9565b90039392505050565b6000826153bd576153bd61494f565b50049056fea164736f6c634300080f000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a6000000000000000000000000005ddc466c804c79adb079c120347dde481321050000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000007e9000000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000001000000000000000000000000003de211088df516da72efe68d386b561bee256ec4000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : _l2Oracle (address): 0x180c77aE51a9c505a43A2C7D81f8CE70cacb93A6
Arg [1] : _zkProofVerifier (address): 0x005DDC466C804c79adB079c120347dDE48132105
Arg [2] : _submissionInterval (uint256): 1800
Arg [3] : _creationPeriodSeconds (uint256): 518400
Arg [4] : _bisectionTimeout (uint256): 3600
Arg [5] : _provingTimeout (uint256): 28800
Arg [6] : _segmentsLengths (uint256[]): 9,6,10,6
Arg [7] : _securityCouncil (address): 0x3de211088dF516da72efe68D386b561BEE256Ec4

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 000000000000000000000000180c77ae51a9c505a43a2c7d81f8ce70cacb93a6
Arg [1] : 000000000000000000000000005ddc466c804c79adb079c120347dde48132105
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000708
Arg [3] : 000000000000000000000000000000000000000000000000000000000007e900
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000e10
Arg [5] : 0000000000000000000000000000000000000000000000000000000000007080
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [7] : 0000000000000000000000003de211088df516da72efe68d386b561bee256ec4
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [11] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000006

🤖 Code Reader Beta

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

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

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.