ETH Price: $1,716.85 (+2.52%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

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

Contract Name

ParlayAMMLiquidityPool

Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled
Yes with 200 runs
Other Settings
default evmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_whitelistAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"_flag","type":"bool"}],"name":"AddedIntoWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_whitelistAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"_flag","type":"bool"}],"name":"AddedIntoWhitelistStaker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newProvider","type":"address"}],"name":"DefaultLiquidityProviderChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"}],"name":"LeftoverFundsPulled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxAllowedDeposit","type":"uint256"}],"name":"MaxAllowedDepositChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"MaxAllowedUsersChanged","type":"uint256"}],"name":"MaxAllowedUsersChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minAllowedDeposit","type":"uint256"}],"name":"MinAllowedDepositChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newMastercopy","type":"address"}],"name":"PoolRoundMastercopyChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"PoolStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"roundPnL","type":"uint256"}],"name":"RoundClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"batchSize","type":"uint256"}],"name":"RoundClosingBatchProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"}],"name":"RoundClosingPrepared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"roundLength","type":"uint256"}],"name":"RoundLengthChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_round","type":"uint256"},{"indexed":false,"internalType":"address","name":"roundPool","type":"address"}],"name":"RoundPoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"safeBoxShare","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"safeBoxAmount","type":"uint256"}],"name":"SafeBoxSharePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"safeBox","type":"address"},{"indexed":false,"internalType":"uint256","name":"safeBoxImpact","type":"uint256"}],"name":"SetSafeBoxParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sportAMM","type":"address"}],"name":"SportAMMChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_stakedThalesMultiplier","type":"uint256"}],"name":"StakedThalesMultiplierChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakingThales","type":"address"}],"name":"StakingThalesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"utilizationRate","type":"uint256"}],"name":"UtilizationRateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"WithdrawalRequested","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allocationPerRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"balancesPerRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canCloseCurrentRound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"closeRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"uint256","name":"amountToMint","type":"uint256"}],"name":"commitTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundA","type":"uint256"},{"internalType":"uint256","name":"roundB","type":"uint256"}],"name":"cumulativePnLBetweenRounds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cumulativeProfitAndLoss","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultLiquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exerciseMarketsReadyToExercised","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"batchSize","type":"uint256"}],"name":"exerciseMarketsReadyToExercisedBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"firstRoundStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"getMarketPool","outputs":[{"internalType":"address","name":"roundPool","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"getMarketRound","outputs":[{"internalType":"uint256","name":"_round","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getMaxAvailableDepositForUser","outputs":[{"internalType":"uint256","name":"maxDepositForUser","type":"uint256"},{"internalType":"uint256","name":"availableToDepositForUser","type":"uint256"},{"internalType":"uint256","name":"stakedThalesForUser","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"}],"name":"getOrCreateMarketPool","outputs":[{"internalType":"address","name":"roundPool","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_round","type":"uint256"}],"name":"getRoundEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_round","type":"uint256"}],"name":"getRoundStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_round","type":"uint256"}],"name":"getTradingMarketsPerRound","outputs":[{"internalType":"uint256","name":"numOfMarkets","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUsersCountInCurrentRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasMarketsReadyToBeExercised","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initNonReentrant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_parlayAMM","type":"address"},{"internalType":"contract IERC20Upgradeable","name":"_sUSD","type":"address"},{"internalType":"uint256","name":"_roundLength","type":"uint256"},{"internalType":"uint256","name":"_maxAllowedDeposit","type":"uint256"},{"internalType":"uint256","name":"_minDepositAmount","type":"uint256"},{"internalType":"uint256","name":"_maxAllowedUsers","type":"uint256"},{"internalType":"bool","name":"_needsTransformingCollateral","type":"bool"}],"internalType":"struct ParlayAMMLiquidityPool.InitParams","name":"params","type":"tuple"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"isTradingMarketInARound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserLPing","outputs":[{"internalType":"bool","name":"isUserInLP","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"marketAlreadyExercisedInRound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAllowedDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAllowedUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDepositAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"needsTransformingCollateral","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onlyWhitelistedStakersAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"parlayAMM","outputs":[{"internalType":"contract IParlayMarketsAMM","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"parlayMarketRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"share","type":"uint256"}],"name":"partialWithdrawalRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolRoundMastercopy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareRoundClosing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"batchSize","type":"uint256"}],"name":"processRoundClosingBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"profitAndLossPerRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"rounds","type":"uint256[]"}],"name":"retrieveLeftoverRoundFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"round","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"roundClosingPrepared","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"roundLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"roundPools","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sUSD","outputs":[{"internalType":"contract IERC20Upgradeable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeBox","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeBoxImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_defaultLiquidityProvider","type":"address"}],"name":"setDefaultLiquidityProvider","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAllowedDeposit","type":"uint256"}],"name":"setMaxAllowedDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAllowedUsers","type":"uint256"}],"name":"setMaxAllowedUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minDepositAmount","type":"uint256"}],"name":"setMinAllowedDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IParlayMarketsAMM","name":"_parlayAMM","type":"address"}],"name":"setParlayAmm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_setPausing","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_poolRoundMastercopy","type":"address"}],"name":"setPoolRoundMastercopy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundLength","type":"uint256"}],"name":"setRoundLength","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_safeBox","type":"address"},{"internalType":"uint256","name":"_safeBoxImpact","type":"uint256"}],"name":"setSafeBoxParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IStakingThales","name":"_stakingThales","type":"address"}],"name":"setStakingThales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_utilizationRate","type":"uint256"}],"name":"setUtilizationRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakedThalesMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingThales","outputs":[{"internalType":"contract IStakingThales","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"started","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDeposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"tradingMarketsPerRound","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"proxyAddress","type":"address"}],"name":"transferOwnershipAtInit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_market","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferToPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInRound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usersCurrentlyInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"usersPerRound","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usersProcessedInRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"utilizationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedDeposits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedStakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawalRequested","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawalShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
608060405234801561001057600080fd5b506157d780620000216000396000f3fe608060405234801561001057600080fd5b506004361061048b5760003560e01c80637a1e0aa811610262578063be9a655511610151578063ddcc8fe9116100ce578063efcac68911610092578063efcac68914610a7e578063f475f13b14610a91578063f61fcb8b14610aa4578063fd8a8cc614610ac4578063fdaf17f014610ad7578063ff50abdc14610afa57600080fd5b8063ddcc8fe914610a4b578063e278fe6f14610a5e578063e3041fd914610a66578063ebc7977214610a6e578063ee161cce14610a7657600080fd5b8063d69fb66811610115578063d69fb668146109f6578063d7efa129146109ff578063d95ad45c14610a12578063db7f92d414610a25578063ddc6ac2314610a3857600080fd5b8063be9a6555146109ac578063c2edfc73146109b4578063c3b83f5f146109c7578063c9f4ff46146109da578063d27c0797146109ed57600080fd5b80639324cac7116101df578063b6b55f25116101a3578063b6b55f2514610962578063b745abe314610975578063b9b1be8b1461097d578063bcfa893714610990578063bdcc22e9146109a357600080fd5b80639324cac7146108fc5780639bd2e61b1461090f5780639faf680214610922578063a8df539f14610935578063b01862151461094257600080fd5b80638b649b94116102265780638b649b94146108bc5780638b844412146108c55780638da5cb5b146108cd5780638fe812b4146108e6578063930102f2146108f357600080fd5b80637a1e0aa8146108485780637d550e051461085b5780637f7b8c50146108735780637f8525821461089657806384c095c2146108a957600080fd5b806348663e951161037e578063634e0d97116102fb5780636c321c8a116102bf5780636c321c8a146107d657806371143ab9146107df5780637261b81a1461080d57806374094edd1461082057806379ba50971461084057600080fd5b8063634e0d9714610762578063645006ca1461079057806365e0e725146107995780636685fdc2146107ac578063681312f5146107c357600080fd5b806358c09cc01161034257806358c09cc0146107075780635c7b396e1461071a5780635c975abb146107235780635ddd3e831461072e578063610589e11461075957600080fd5b806348663e951461068e5780634ae7937f146106a15780634b141b3f146106c15780634d549a42146106e157806353a47bb7146106f457600080fd5b80631baa88561161040c578063336d30ed116103d0578063336d30ed1461060c578063343e4f9f1461062c5780633b92d7581461063f57806340774ff6146106525780634651f0801461066557600080fd5b80631baa8856146105b15780631daae173146105ba5780631f2698ab146105dd578063202ffce8146105f1578063311c56df1461060457600080fd5b8063146ca53111610453578063146ca531146105415780631627540c1461054a57806316c38b3c1461055d578063175e6700146105705780631b2a52d81461059e57600080fd5b806302f97b0c14610490578063042047cf146104d3578063082f9fd4146104e057806312b19a131461050b57806313af40351461052c575b600080fd5b6104be61049e3660046153ae565b608360209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6080546104be9060ff1681565b6104f36104ee3660046153dd565b610b03565b6040516001600160a01b0390911681526020016104ca565b61051e61051936600461537e565b610b3b565b6040519081526020016104ca565b61053f61053a36600461510d565b610b69565b005b61051e60695481565b61053f61055836600461510d565b610ca9565b61053f61056b366004615256565b610cff565b61058361057e36600461510d565b610d1f565b604080519384526020840192909252908201526060016104ca565b61053f6105ac36600461537e565b610e89565b61051e606b5481565b6104be6105c836600461510d565b60716020526000908152604090205460ff1681565b6068546104be90600160a01b900460ff1681565b61053f6105ff36600461537e565b6114d7565b61053f611514565b61051e61061a36600461537e565b60756020526000908152604090205481565b6104f361063a3660046153dd565b611793565b607a546104f3906001600160a01b031681565b61053f61066036600461537e565b6117af565b6104f361067336600461537e565b606c602052600090815260409020546001600160a01b031681565b6089546104f3906001600160a01b031681565b61051e6106af36600461537e565b60706020526000908152604090205481565b61051e6106cf36600461537e565b60009081526072602052604090205490565b61053f6106ef36600461510d565b6117ec565b6001546104f3906001600160a01b031681565b61053f610715366004615129565b611868565b61051e60855481565b60345460ff166104be565b61051e61073c3660046153ae565b606f60209081526000928352604080842090915290825290205481565b61051e60785481565b6104be6107703660046153ae565b606e60209081526000928352604080842090915290825290205460ff1681565b61051e60775481565b61053f6107a736600461510d565b611cfa565b6069546000908152606d602052604090205461051e565b61053f6107d136600461537e565b611d76565b61051e60885481565b6104be6107ed3660046153ae565b607360209081526000928352604080842090915290825290205460ff1681565b61053f61081b36600461536c565b611e1b565b61051e61082e36600461537e565b60746020526000908152604090205481565b61053f61203d565b61053f610856366004615129565b61213a565b6067546104f39061010090046001600160a01b031681565b6104be61088136600461510d565b607e6020526000908152604090205460ff1681565b61053f6108a436600461510d565b6121a2565b61053f6108b736600461510d565b61221e565b61051e606a5481565b61053f61232e565b6000546104f3906201000090046001600160a01b031681565b6082546104be9060ff1681565b61051e607c5481565b6068546104f3906001600160a01b031681565b61053f61091d36600461537e565b612625565b61051e61093036600461510d565b61292b565b6084546104be9060ff1681565b61051e61095036600461510d565b60876020526000908152604090205481565b61053f61097036600461537e565b612b62565b6104be613028565b607d546104f3906001600160a01b031681565b61053f61099e36600461537e565b6131d9565b61051e60795481565b61053f6135d5565b6104f36109c236600461510d565b613784565b61053f6109d536600461510d565b6137b3565b61051e6109e83660046153dd565b6138cc565b61051e60765481565b61051e608a5481565b61053f610a0d366004615129565b61390c565b6104be610a2036600461510d565b613a39565b61053f610a3336600461537e565b613af8565b61051e610a4636600461537e565b613b35565b61053f610a5936600461537e565b613b46565b61053f613b83565b61053f61400f565b61053f61436b565b6104be6143c9565b61053f610a8c3660046151e6565b614520565b6104f3610a9f36600461510d565b61476d565b61051e610ab236600461510d565b60866020526000908152604090205481565b607b546104f3906001600160a01b031681565b6104be610ae536600461510d565b60816020526000908152604090205460ff1681565b61051e607f5481565b60726020528160005260406000208181548110610b1f57600080fd5b6000918252602090912001546001600160a01b03169150829050565b606a54600090610b4c6001846156f4565b610b5691906156d5565b606b54610b63919061569d565b92915050565b6001600160a01b038116610bc45760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff1615610c305760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610bbb565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b03831662010000810262010000600160b01b03199092169190911782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91015b60405180910390a150565b610cb1614840565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610c9e565b610d07614840565b80610d1757610d146148ba565b50565b610d1461494d565b6000806000806069546001610d34919061569d565b607b54604051631676539160e01b81526001600160a01b03888116600483015292935091169063167653919060240160206040518083038186803b158015610d7b57600080fd5b505afa158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db39190615396565b9150610dde670de0b6b3a7640000607c5484610dcf91906156d5565b610dd991906156b5565b6149a5565b6000828152606f602081815260408084206001600160a01b038b1680865290835281852054606954865293835281852090855290915290912054919550610e249161569d565b8411610e31576000610e7f565b6000818152606f602081815260408084206001600160a01b038a1680865290835281852054606954865293835281852090855290915290912054610e7590866156f4565b610e7f91906156f4565b9250509193909250565b600160666000828254610e9c919061569d565b909155505060665460345460ff1615610ec75760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16610f195760405162461bcd60e51b815260206004820152601a60248201527f526f756e6420636c6f73696e67206e6f742070726570617265640000000000006044820152606401610bbb565b6069546000908152606d602052604090205460855410610f7b5760405162461bcd60e51b815260206004820152601b60248201527f416c6c20757365727320616c72656164792070726f63657373656400000000006044820152606401610bbb565b60008211610f9b5760405162461bcd60e51b8152600401610bbb906155ab565b6069546000908152606c60205260408120546085546001600160a01b039091169190610fc890859061569d565b6069546000908152606d6020526040902054909150811115610ff857506069546000908152606d60205260409020545b6085545b81811015611473576069546000908152606d6020526040812080548390811061103557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154606954835260748252604080842054606f84528185206001600160a01b0390931680865292909352832054909350670de0b6b3a764000091611084916156d5565b61108e91906156b5565b6001600160a01b03831660009081526071602052604090205490915060ff161580156110ca575060695460009081526074602052604090205415155b1561122f5780606f600060695460016110e3919061569d565b81526020019081526020016000206000846001600160a01b03166001600160a01b031681526020019081526020016000205461111f919061569d565b606f60006069546001611132919061569d565b81526020019081526020016000206000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550606d6000606954600161117a919061569d565b8152602080820192909252604001600090812080546001810182559082529190200180546001600160a01b0319166001600160a01b0384811691909117909155607b54161561122a57607b546040516302c7739b60e01b81526001600160a01b03848116600483015260248201849052909116906302c7739b90604401600060405180830381600087803b15801561121157600080fd5b505af1158015611225573d6000803e3d6000fd5b505050505b61144d565b6001600160a01b038216600090815260866020526040902054156113a5576001600160a01b038216600090815260866020526040812054670de0b6b3a76400009061127a90846156d5565b61128491906156b5565b60685490915061129f906001600160a01b03168785846149c6565b604080516001600160a01b0385168152602081018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a910160405180910390a16001600160a01b0383166000908152607160209081526040808320805460ff1916905560869091528120819055606954606d919061132090600161569d565b8152602080820192909252604001600090812080546001810182559082529190200180546001600160a01b0319166001600160a01b03851617905561136581836156f4565b606f60006069546001611378919061569d565b8152602080820192909252604090810160009081206001600160a01b03881682529092529020555061144d565b6000606f600060695460016113ba919061569d565b8152602080820192909252604090810160009081206001600160a01b038088168352935220919091556068546113f391168684846149c6565b6001600160a01b038216600081815260716020908152604091829020805460ff19169055815192835282018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a910160405180910390a15b60855461145b90600161569d565b6085555081905061146b81615737565b915050610ffc565b5060695460408051918252602082018690527f2e692c8fcabe33ba22535323e79dcb54ef22dccdb8e4ebdd9f2a7ffb1a28856c910160405180910390a1505060665481146114d35760405162461bcd60e51b8152600401610bbb906155ed565b5050565b6114df614840565b60788190556040518181527fe7c2c09f66c8b970b4a99250f4d0844e1496b9d51d4760a17b0134ddd52023e190602001610c9e565b600160666000828254611527919061569d565b9091555050606654606854600160a01b900460ff166115585760405162461bcd60e51b8152600401610bbb90615470565b3360009081526071602052604090205460ff16156115b85760405162461bcd60e51b815260206004820152601c60248201527f5769746864726177616c20616c726561647920726571756573746564000000006044820152606401610bbb565b6069546000908152606f602090815260408083203384529091529020546116175760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610bbb565b606f6000606954600161162a919061569d565b815260208082019290925260409081016000908120338252909252902054156116655760405162461bcd60e51b8152600401610bbb90615555565b60345460ff16156116885760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156116ab5760405162461bcd60e51b8152600401610bbb9061550e565b6069546000908152606f60209081526040808320338452909152902054607f54111561170c576069546000908152606f60209081526040808320338452909152812054607f8054919290916117019084906156f4565b909155506117129050565b6000607f555b600160795461172191906156f4565b60795533600081815260716020908152604091829020805460ff1916600117905590519182527fe5892ff2a8b08efb903ffbba1f0514c1d3e22eea34dd5b89cf30aabce03dde5a910160405180910390a16066548114610d145760405162461bcd60e51b8152600401610bbb906155ed565b606d6020528160005260406000208181548110610b1f57600080fd5b6117b7614840565b60888190556040518181527fc117ccf765672707ebe3c1606037488c1e27dc1f42b5266e3d6b496db7d4209e90602001610c9e565b6117f4614840565b6001600160a01b03811661181a5760405162461bcd60e51b8152600401610bbb90615666565b607d80546001600160a01b0319166001600160a01b0383169081179091556040519081527fa65a5aa86bb6f8e75752296da3ebda45474c8a302fc640c3b62868793862a03390602001610c9e565b60016066600082825461187b919061569d565b909155505060665460345460ff16156118a65760405162461bcd60e51b8152600401610bbb906154e4565b60675461010090046001600160a01b031633146118d55760405162461bcd60e51b8152600401610bbb9061549e565b60845460ff16156118f85760405162461bcd60e51b8152600401610bbb9061550e565b606854600160a01b900460ff166119215760405162461bcd60e51b8152600401610bbb90615470565b600082116119715760405162461bcd60e51b815260206004820152601960248201527f43616e277420636f6d6d69742061207a65726f207472616465000000000000006044820152606401610bbb565b61197a826149a5565b60825490925060ff1661198d5781611998565b61199882600161569d565b915060006119a58461292b565b6001600160a01b03851660009081526087602052604081208290559091506119cc82614a20565b9050606954821415611b31576067546068546119fc916001600160a01b03918216918491610100900416876149c6565b608854606954600090815260706020526040902054670de0b6b3a764000091611a24916156d5565b611a2e91906156b5565b606954600090815260706020526040902054611a4a91906156f4565b6068546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b158015611a8f57600080fd5b505afa158015611aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac79190615396565b1015611b2c5760405162461bcd60e51b815260206004820152602e60248201527f416d6f756e74206578636565647320617661696c61626c65207574696c697a6160448201526d1d1a5bdb88199bdc881c9bdd5b9960921b6064820152608401610bbb565b611c78565b606954821115611c30576068546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a082319060240160206040518083038186803b158015611b8157600080fd5b505afa158015611b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb99190615396565b9050848110611beb57606754606854611be6916001600160a01b03918216918591610100900416886149c6565b611c2a565b6000611bf782876156f4565b9050611c04818486614bff565b606754606854611c28916001600160a01b03918216918691610100900416896149c6565b505b50611c78565b81600114611c6f5760405162461bcd60e51b815260206004820152600c60248201526b125b9d985b1a59149bdd5b9960a21b6044820152606401610bbb565b611c7884614cf3565b5060008181526072602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038a1690811790915594845260738352818420948452939091529020805460ff191690911790556066548114611cf55760405162461bcd60e51b8152600401610bbb906155ed565b505050565b611d02614840565b6001600160a01b038116611d285760405162461bcd60e51b8152600401610bbb90615666565b607a80546001600160a01b0319166001600160a01b0383169081179091556040519081527faaf6f0738515c3cf390f1b3faec649d2dacb169d024089afc43bbe2fe66cd2d890602001610c9e565b611d7e614840565b606854600160a01b900460ff1615611de65760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e676520726f756e64206c656e677468206166746572206044820152641cdd185c9d60da1b6064820152608401610bbb565b606a8190556040518181527f1d1fb7111c3779798bd4aefb2daea07ee8257a13c7eaceba89b4b1ccd405050d90602001610c9e565b600054610100900460ff16611e365760005460ff1615611e3a565b303b155b611e9d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610bbb565b600054610100900460ff16158015611ebf576000805461ffff19166101011790555b611ecf61053a602084018461510d565b611ed761436b565b611ee7604083016020840161510d565b606780546001600160a01b039290921661010002610100600160a81b0319909216919091179055611f1e606083016040840161510d565b606880546001600160a01b0319166001600160a01b03929092169190911790556060820135606a55608082013560765560a082013560775560c0820135607855611f6f610100830160e08401615256565b6082805460ff19169115159190911790556068546001600160a01b031663095ea7b3611fa1604085016020860161510d565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526000196024820152604401602060405180830381600087803b158015611fea57600080fd5b505af1158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190615272565b50600160695580156114d3576000805461ff00191690555050565b6001546001600160a01b031633146120b55760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610bbb565b60005460015460408051620100009093046001600160a01b03908116845290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b612142614840565b608980546001600160a01b0319166001600160a01b038416908117909155608a82905560408051918252602082018390527fa1a8623472ca4e2879372be60dfd1ff0675778e49f7379eedd98ca57cf36b21a910160405180910390a15050565b6121aa614840565b6001600160a01b0381166121d05760405162461bcd60e51b8152600401610bbb90615666565b607b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c7faa500efbd341aedbf1ee7ebd52ea36d226dda76bc01dd39b43d46f55b8d390602001610c9e565b612226614840565b6001600160a01b03811661224c5760405162461bcd60e51b8152600401610bbb90615666565b60678054610100600160a81b0319166101006001600160a01b038481168202929092179283905560685460405163095ea7b360e01b81529190930482166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b1580156122bc57600080fd5b505af11580156122d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f49190615272565b506040516001600160a01b03821681527f576297e5fcc8cd907ee80b240284865eb3d821bdc5232e6ee9e4d78a12531c0990602001610c9e565b600160666000828254612341919061569d565b909155505060665460345460ff161561236c5760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff161561238f5760405162461bcd60e51b8152600401610bbb9061550e565b6123976143c9565b6123e35760405162461bcd60e51b815260206004820152601960248201527f43616e277420636c6f73652063757272656e7420726f756e64000000000000006044820152606401610bbb565b6123eb61400f565b6069546000908152606c60205260408082205460685491516370a0823160e01b81526001600160a01b0391821660048201819052939291909116906370a082319060240160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247f9190615396565b60695460009081526070602052604090205490915081111561254757608a546069546000908152607060205260408120549091670de0b6b3a7640000916124c690856156f4565b6124d091906156d5565b6124da91906156b5565b6089546068549192506124fc916001600160a01b0390811691869116846149c6565b61250681836156f4565b608a5460408051918252602082018490529193507fb8379d05082aa2dd32963972d72cc2d46257811133341855b63bb2fddda6ca3e910160405180910390a1505b606954600090815260706020526040902054612577576069546000908152607460205260409020600190556125b8565b60695460009081526070602052604090205461259b670de0b6b3a7640000836156d5565b6125a591906156b5565b6069546000908152607460205260409020555b6084805460ff191660011790556069546040517fa224cce482b24082d1d3128437615f7f5ce87b97453a11114846ea442a100272916125fa9190815260200190565b60405180910390a150506066548114610d145760405162461bcd60e51b8152600401610bbb906155ed565b600160666000828254612638919061569d565b9091555050606654606854600160a01b900460ff166126695760405162461bcd60e51b8152600401610bbb90615470565b3360009081526071602052604090205460ff16156126c95760405162461bcd60e51b815260206004820152601c60248201527f5769746864726177616c20616c726561647920726571756573746564000000006044820152606401610bbb565b6069546000908152606f602090815260408083203384529091529020546127285760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610bbb565b606f6000606954600161273b919061569d565b815260208082019290925260409081016000908120338252909252902054156127765760405162461bcd60e51b8152600401610bbb90615555565b60345460ff16156127995760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156127bc5760405162461bcd60e51b8152600401610bbb9061550e565b6127ce662386f26fc10000600a6156d5565b82101580156127ee57506127ea662386f26fc10000605a6156d5565b8211155b6128465760405162461bcd60e51b815260206004820152602360248201527f53686172652068617320746f206265206265747765656e2031302520616e642060448201526239302560e81b6064820152608401610bbb565b6069546000908152606f60209081526040808320338452909152812054670de0b6b3a7640000906128789085906156d5565b61288291906156b5565b905080607f5411156128ab5780607f60008282546128a091906156f4565b909155506128b19050565b6000607f555b336000818152607160209081526040808320805460ff19166001179055608682529182902086905590519182527fe5892ff2a8b08efb903ffbba1f0514c1d3e22eea34dd5b89cf30aabce03dde5a910160405180910390a15060665481146114d35760405162461bcd60e51b8152600401610bbb906155ed565b6001600160a01b03811660009081526087602052604090205480612b5d57816000805b826001600160a01b031663081ad4946040518163ffffffff1660e01b815260040160206040518083038186803b15801561298757600080fd5b505afa15801561299b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129bf9190615396565b811015612b59576040516302042e1d60e31b8152600481018290526001600160a01b0384169063102170e8906024016101006040518083038186803b158015612a0757600080fd5b505afa158015612a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3f9190615154565b505060408051639e3b34bf60e01b815281519799508997600097506001600160a01b0389169650639e3b34bf9550600480830195509293509190829003018186803b158015612a8d57600080fd5b505afa158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac591906153fe565b509050606b54811115612b3f5782612b0357606a54606b54612ae790836156f4565b612af191906156b5565b612afc90600261569d565b9550612b44565b85606a54606b5483612b1591906156f4565b612b1f91906156b5565b612b2a90600261569d565b14612b3a57600195505050612b59565b612b44565b600195505b50508080612b5190615737565b91505061294e565b5050505b919050565b33600090815260716020526040902054819060ff1615612bd45760405162461bcd60e51b815260206004820152602760248201527f5769746864726177616c206973207265717565737465642c2063616e6e6f742060448201526619195c1bdcda5d60ca1b6064820152608401610bbb565b60765481607f54612be5919061569d565b1115612c3d5760405162461bcd60e51b815260206004820152602160248201527f4465706f73697420616d6f756e74206578636565647320414d4d204c502063616044820152600760fc1b6064820152608401610bbb565b6069546000908152606f60209081526040808320338452909152902054158015612c955750606f60006069546001612c75919061569d565b815260208082019290925260409081016000908120338252909252902054155b15612cf657607754811015612cf65760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206c657373207468616e206d696e4465706f736974416d6f756e6044820152601d60fa1b6064820152608401610bbb565b600160666000828254612d09919061569d565b909155505060665460345460ff1615612d345760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff1615612d575760405162461bcd60e51b8152600401610bbb9061550e565b60006069546001612d68919061569d565b90506000612d7582614a20565b606854909150612d90906001600160a01b03163383886149c6565b607a546001600160a01b0316331415612e085760405162461bcd60e51b815260206004820152603460248201527f43616e2774206465706f736974206469726563746c792061732064656661756c6044820152733a103634b8bab4b234ba3c90383937bb34b232b960611b6064820152608401610bbb565b6069546000908152606f60209081526040808320338452909152902054158015612e4957506000828152606f60209081526040808320338452909152902054155b15612ee25760785460795410612ea15760405162461bcd60e51b815260206004820152601b60248201527f4d617820616d6f756e74206f66207573657273207265616368656400000000006044820152606401610bbb565b6000828152606d602090815260408220805460018181018355918452919092200180546001600160a01b03191633179055607954612ede9161569d565b6079555b6000828152606f6020908152604080832033845290915281208054879290612f0b90849061569d565b909155505060008281526070602052604081208054879290612f2e90849061569d565b9250508190555084607f6000828254612f47919061569d565b9091555050607b546001600160a01b031615612fc257607b546040516302c7739b60e01b8152336004820152602481018790526001600160a01b03909116906302c7739b90604401600060405180830381600087803b158015612fa957600080fd5b505af1158015612fbd573d6000803e3d6000fd5b505050505b606954604080513381526020810188905280820192909252517f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca9181900360600190a150506066548114611cf55760405162461bcd60e51b8152600401610bbb906155ed565b60008080805b6069546000908152607260205260409020548110156131cf57606954600090815260726020526040902080548290811061307857634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490925060ff166131bd578192506000836001600160a01b03166337783bfa6040518163ffffffff1660e01b815260040160006040518083038186803b1580156130f157600080fd5b505afa158015613105573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261312d919081019061528e565b5090508080156131ab5750836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561317157600080fd5b505afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615272565b155b156131bb57600194505050505090565b505b806131c781615737565b91505061302e565b5060009250505090565b6001606660008282546131ec919061569d565b909155505060665460345460ff16156132175760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff161561323a5760405162461bcd60e51b8152600401610bbb9061550e565b6000821161325a5760405162461bcd60e51b8152600401610bbb906155ab565b6069546000908152606c60205260408120546001600160a01b03169080805b6069546000908152607260205260409020548110156135b0578583141561329f576135b0565b60695460009081526072602052604081208054839081106132d057634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490915060ff1661359d578092506000836001600160a01b03166337783bfa6040518163ffffffff1660e01b815260040160006040518083038186803b15801561334957600080fd5b505afa15801561335d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613385919081019061528e565b5090508080156134035750836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190615272565b155b1561346e5760675460405163ad385b9160e01b81526001600160a01b0384811660048301526101009092049091169063ad385b9190602401600060405180830381600087803b15801561345557600080fd5b505af1158015613469573d6000803e3d6000fd5b505050505b836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156134a757600080fd5b505afa1580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df9190615272565b806135565750836001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b15801561351e57600080fd5b505afa158015613532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135569190615272565b1561359b5760695460009081526083602090815260408083206001600160a01b03861684529091529020805460ff19166001908117909155613598908661569d565b94505b505b50806135a881615737565b915050613279565b5050505060665481146114d35760405162461bcd60e51b8152600401610bbb906155ed565b6135dd614840565b606854600160a01b900460ff16156136425760405162461bcd60e51b815260206004820152602260248201527f4c697175696469747920706f6f6c2068617320616c7265616479207374617274604482015261195960f21b6064820152608401610bbb565b600260005260706020527f60b45511bf7ff7962f4d95774002c49705feb8f9eb913220abee2cd301af1d1d546136ba5760405162461bcd60e51b815260206004820152601d60248201527f63616e206e6f7420737461727420776974682030206465706f736974730000006044820152606401610bbb565b42606b55600260698190556000906136d190614a20565b9050806001600160a01b0316637d3de7ce606b546136ef6002610b3b565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561372d57600080fd5b505af1158015613741573d6000803e3d6000fd5b50506068805460ff60a01b1916600160a01b17905550506040517f960682678fca98f3ed131eaf165e59544bcd738e948f0b3c64f58fa9e1c65e6090600090a150565b6000606c60006137938461292b565b81526020810191909152604001600020546001600160a01b031692915050565b6137bb614840565b6001600160a01b0381166138035760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610bbb565b600154600160a81b900460ff16156138535760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610bbb565b600080546001600160a01b038381166201000081810262010000600160b01b031990941693909317938490556001805460ff60a81b1916600160a81b1790556040805193909404909116825260208201527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9101610c9e565b60008281526075602081815260408084205460748352818520548686529390925283205490916138fb916156d5565b61390591906156b5565b9392505050565b60345460ff161561392f5760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156139525760405162461bcd60e51b8152600401610bbb9061550e565b60675461010090046001600160a01b031633146139815760405162461bcd60e51b8152600401610bbb9061549e565b600061398c8361292b565b9050600060018211156139a7576139a282614a20565b6139b4565b607a546001600160a01b03165b6067546068549192506139da916001600160a01b039081169161010090041683866149c6565b60008281526073602090815260408083206001600160a01b038816845290915290205460ff1615613a335760008281526083602090815260408083206001600160a01b03881684529091529020805460ff191660011790555b50505050565b6069546000908152606f602090815260408083206001600160a01b0385168452909152812054151580613ab057506000606f60006069546001613a7c919061569d565b81526020019081526020016000206000846001600160a01b03166001600160a01b0316815260200190815260200160002054115b8015610b6357506001600160a01b03821660009081526071602052604090205460ff161580610b635750506001600160a01b0316600090815260866020526040902054151590565b613b00614840565b60778190556040518181527f990717cc219e5348c1b88bb0ff530d804f0b6f54f3b03844a2bfbe4eb1e9c5d690602001610c9e565b606a54600090610b4c6002846156f4565b613b4e614840565b60768190556040518181527f8c43aa02599ac8f8bab4724621ceea5e7a06b07bbbfaf3b7bd0386cbe481ea3c90602001610c9e565b600160666000828254613b96919061569d565b909155505060665460345460ff1615613bc15760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16613c135760405162461bcd60e51b815260206004820152601a60248201527f526f756e6420636c6f73696e67206e6f742070726570617265640000000000006044820152606401610bbb565b6069546000908152606d602052604090205460855414613c755760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420616c6c2075736572732070726f6365737365642079657400000000006044820152606401610bbb565b6084805460ff191690556069546000908152606c6020908152604080832054606f8352818420607a546001600160a01b039081168652935292205491169015613d6f57606954600090815260746020908152604080832054606f8352818420607a546001600160a01b03168552909252822054670de0b6b3a764000091613cfb916156d5565b613d0591906156b5565b607a54606854919250613d27916001600160a01b0390811691859116846149c6565b607a54604080516001600160a01b039092168252602082018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a910160405180910390a1505b60695460021415613d9d57606954600090815260746020908152604080832054607590925290912055613e00565b606954600081815260746020526040812054670de0b6b3a7640000929091607591613dca906001906156f4565b815260200190815260200160002054613de391906156d5565b613ded91906156b5565b6069546000908152607560205260409020555b606960008154613e0f90615737565b909155506068546040516370a0823160e01b81526001600160a01b038381166004830152909116906370a082319060240160206040518083038186803b158015613e5857600080fd5b505afa158015613e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e909190615396565b60695460009081526070602052604081208054909190613eb190849061569d565b90915550506069546000818152606f60209081526040808320607a546001600160a01b031684528252808320549383526070909152902054613ef391906156f4565b607f55606954600090613f0590614a20565b6068546040516370a0823160e01b81526001600160a01b038086166004830152929350613fa092859285929116906370a082319060240160206040518083038186803b158015613f5457600080fd5b505afa158015613f68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f8c9190615396565b6068546001600160a01b03169291906149c6565b60006085556069547fc67dda8e11f1aa941c7e74466b1859a07a32f46aaf641d29b83be348424d93cd90613fd6906001906156f4565b607460006001606954613fe991906156f4565b8152602001908152602001600020546040516125fa929190918252602082015260400190565b60845460ff16156140325760405162461bcd60e51b8152600401610bbb9061550e565b6069546000908152606c60205260408120546001600160a01b03169080805b606954600090815260726020526040902054811015613a3357606954600090815260726020526040902080548290811061409b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490925060ff16614359578192506000836001600160a01b03166337783bfa6040518163ffffffff1660e01b815260040160006040518083038186803b15801561411457600080fd5b505afa158015614128573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614150919081019061528e565b5090508080156141ce5750836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561419457600080fd5b505afa1580156141a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141cc9190615272565b155b156142395760675460405163ad385b9160e01b81526001600160a01b0385811660048301526101009092049091169063ad385b9190602401600060405180830381600087803b15801561422057600080fd5b505af1158015614234573d6000803e3d6000fd5b505050505b836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561427257600080fd5b505afa158015614286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142aa9190615272565b806143215750836001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b1580156142e957600080fd5b505afa1580156142fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143219190615272565b156143575760695460009081526083602090815260408083206001600160a01b03871684529091529020805460ff191660011790555b505b8061436381615737565b915050614051565b60675460ff16156143b45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610bbb565b6067805460ff19166001908117909155606655565b606854600090600160a01b900460ff1615806143ee57506143eb606954610b3b565b42105b156143f95750600090565b6000805b60695460009081526072602052604090205481101561451757606954600090815260726020526040812080548390811061444757634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490915060ff1661450457809250826001600160a01b031663e990b0986040518163ffffffff1660e01b815260040160206040518083038186803b1580156144be57600080fd5b505afa1580156144d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144f69190615272565b614504576000935050505090565b508061450f81615737565b9150506143fd565b50600191505090565b600160666000828254614533919061569d565b909155505060665460345460ff161561455e5760405162461bcd60e51b8152600401610bbb906154e4565b614566614840565b60005b8281101561474b57600084848381811061459357634e487b7160e01b600052603260045260246000fd5b905060200201359050600181116145ec5760405162461bcd60e51b815260206004820152601e60248201527f43616e27742070756c6c2066726f6d2064656661756c7420726f756e647300006044820152606401610bbb565b606954811061464e5760405162461bcd60e51b815260206004820152602860248201527f43616e27742070756c6c2066726f6d2063757272656e74206f722066757475726044820152676520726f756e647360c01b6064820152608401610bbb565b6000818152606c60205260408082205460685491516370a0823160e01b81526001600160a01b0391821660048201819052939291909116906370a082319060240160206040518083038186803b1580156146a757600080fd5b505afa1580156146bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146df9190615396565b6068549091506146fa906001600160a01b03168333846149c6565b7f772d8b935fea383cb27d439d54ed82e6d7b3f56a51d5f2e1c06d59365cd75d6260695460405161472d91815260200190565b60405180910390a1505050808061474390615737565b915050614569565b506066548114611cf55760405162461bcd60e51b8152600401610bbb906155ed565b60675460009061010090046001600160a01b0316331461479f5760405162461bcd60e51b8152600401610bbb9061549e565b6001606660008282546147b2919061569d565b909155505060665460345460ff16156147dd5760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156148005760405162461bcd60e51b8152600401610bbb9061550e565b600061480b8461292b565b905061481681614a20565b925050606654811461483a5760405162461bcd60e51b8152600401610bbb906155ed565b50919050565b6000546201000090046001600160a01b031633146148b85760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610bbb565b565b60345460ff166149035760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610bbb565b6034805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60345460ff16156149705760405162461bcd60e51b8152600401610bbb906154e4565b6034805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586149303390565b60825460009060ff16156149c257610b6364e8d4a51000836156b5565b5090565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052613a33908590614e20565b6000818152606c60205260409020546001600160a01b031680612b5d578160011415614a7b5750607a80546000838152606c6020526040902080546001600160a01b0319166001600160a01b03928316179055905416919050565b607d546001600160a01b0316614ad35760405162461bcd60e51b815260206004820152601d60248201527f526f756e6420706f6f6c206d6173746572636f7079206e6f74207365740000006044820152606401610bbb565b607d54600090614aeb906001600160a01b0316614ef2565b6068549091506001600160a01b038083169163d13f90b49130911686614b156105196001836156f4565b614b1e89610b3b565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015260448401919091526064830152608482015260a401600060405180830381600087803b158015614b7a57600080fd5b505af1158015614b8e573d6000803e3d6000fd5b5050506000848152606c602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915582518781529182015292935083927f24c1b21b902a85b5039d7d72427d9376657229eea77880ec9e62031dc950f6ba92500160405180910390a150919050565b607a546001600160a01b0316614c275760405162461bcd60e51b8152600401610bbb90615624565b607a54606854614c45916001600160a01b03918216911684866149c6565b6000818152606f60209081526040808320607a546001600160a01b0316845290915281208054859290614c7990849061569d565b909155505060008181526070602052604081208054859290614c9c90849061569d565b9091555050607a54604080516001600160a01b0390921682526020820185905281018290527f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca9060600160405180910390a1505050565b607a546001600160a01b0316614d1b5760405162461bcd60e51b8152600401610bbb90615624565b607a54606754606854614d45926001600160a01b03918216929082169161010090910416846149c6565b607a546001600160a01b031660009081527f6e075724c97aa8b42d86406682b25042490cf37e8d91270a79e54ad319c8b085602052604081208054839290614d8e90849061569d565b90915550506001600090815260706020527fb1a24bae1e5047fbb0cf526090cbec15c09a4036896111a8964a155b1c4771a18054839290614dd090849061569d565b9091555050607a54604080516001600160a01b039092168252602082018390526001908201527f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca90606001610c9e565b6000614e75826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614f8a9092919063ffffffff16565b805190915015611cf55780806020019051810190614e939190615272565b611cf55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bbb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116612b5d5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610bbb565b6060614f998484600085614fa1565b949350505050565b6060824710156150025760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610bbb565b843b6150505760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bbb565b600080866001600160a01b0316858760405161506c9190615421565b60006040518083038185875af1925050503d80600081146150a9576040519150601f19603f3d011682016040523d82523d6000602084013e6150ae565b606091505b50915091506150be8282866150c9565b979650505050505050565b606083156150d8575081613905565b8251156150e85782518084602001fd5b8160405162461bcd60e51b8152600401610bbb919061543d565b8051612b5d81615793565b60006020828403121561511e578081fd5b81356139058161577e565b6000806040838503121561513b578081fd5b82356151468161577e565b946020939093013593505050565b600080600080600080600080610100898b031215615170578384fd5b885161517b8161577e565b8098505060208901519650604089015195506060890151945060808901516151a281615793565b60a08a01519094506151b381615793565b60c08a01519093506151c481615793565b60e08a01519092506151d581615793565b809150509295985092959890939650565b600080602083850312156151f8578182fd5b823567ffffffffffffffff8082111561520f578384fd5b818501915085601f830112615222578384fd5b813581811115615230578485fd5b8660208260051b8501011115615244578485fd5b60209290920196919550909350505050565b600060208284031215615267578081fd5b813561390581615793565b600060208284031215615283578081fd5b815161390581615793565b600080604083850312156152a0578182fd5b82516152ab81615793565b8092505060208084015167ffffffffffffffff808211156152ca578384fd5b818601915086601f8301126152dd578384fd5b8151818111156152ef576152ef615768565b8060051b604051601f19603f8301168101818110858211171561531457615314615768565b604052828152858101935084860182860187018b1015615332578788fd5b8795505b8386101561535b5761534781615102565b855260019590950194938601938601615336565b508096505050505050509250929050565b6000610100828403121561483a578081fd5b60006020828403121561538f578081fd5b5035919050565b6000602082840312156153a7578081fd5b5051919050565b600080604083850312156153c0578182fd5b8235915060208301356153d28161577e565b809150509250929050565b600080604083850312156153ef578182fd5b50508035926020909101359150565b60008060408385031215615410578182fd5b505080516020909101519092909150565b6000825161543381846020870161570b565b9190910192915050565b602081526000825180602084015261545c81604085016020870161570b565b601f01601f19169190910160400192915050565b602080825260149082015273141bdbdb081a185cc81b9bdd081cdd185c9d195960621b604082015260600190565b60208082526026908201527f6f6e6c792074686520414d4d206d617920706572666f726d207468657365206d6040820152656574686f647360d01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526027908201527f4e6f7420616c6c6f77656420647572696e6720726f756e64436c6f73696e67506040820152661c995c185c995960ca1b606082015260800190565b60208082526036908201527f43616e277420776974686472617720617320796f7520616c72656164792064656040820152751c1bdcda5d195908199bdc881b995e1d081c9bdd5b9960521b606082015260800190565b60208082526022908201527f626174636853697a652068617320746f2062652067726561746572207468616e604082015261020360f41b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526022908201527f64656661756c74206c69717569646974792070726f7669646572206e6f742073604082015261195d60f21b606082015260800190565b6020808252601b908201527f43616e206e6f74207365742061207a65726f2061646472657373210000000000604082015260600190565b600082198211156156b0576156b0615752565b500190565b6000826156d057634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156156ef576156ef615752565b500290565b60008282101561570657615706615752565b500390565b60005b8381101561572657818101518382015260200161570e565b83811115613a335750506000910152565b600060001982141561574b5761574b615752565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d1457600080fd5b8015158114610d1457600080fdfea2646970667358221220120375353c99bca4c8e52985ed0a7882dc61743854949eed12750849aed22b1464736f6c63430008040033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061048b5760003560e01c80637a1e0aa811610262578063be9a655511610151578063ddcc8fe9116100ce578063efcac68911610092578063efcac68914610a7e578063f475f13b14610a91578063f61fcb8b14610aa4578063fd8a8cc614610ac4578063fdaf17f014610ad7578063ff50abdc14610afa57600080fd5b8063ddcc8fe914610a4b578063e278fe6f14610a5e578063e3041fd914610a66578063ebc7977214610a6e578063ee161cce14610a7657600080fd5b8063d69fb66811610115578063d69fb668146109f6578063d7efa129146109ff578063d95ad45c14610a12578063db7f92d414610a25578063ddc6ac2314610a3857600080fd5b8063be9a6555146109ac578063c2edfc73146109b4578063c3b83f5f146109c7578063c9f4ff46146109da578063d27c0797146109ed57600080fd5b80639324cac7116101df578063b6b55f25116101a3578063b6b55f2514610962578063b745abe314610975578063b9b1be8b1461097d578063bcfa893714610990578063bdcc22e9146109a357600080fd5b80639324cac7146108fc5780639bd2e61b1461090f5780639faf680214610922578063a8df539f14610935578063b01862151461094257600080fd5b80638b649b94116102265780638b649b94146108bc5780638b844412146108c55780638da5cb5b146108cd5780638fe812b4146108e6578063930102f2146108f357600080fd5b80637a1e0aa8146108485780637d550e051461085b5780637f7b8c50146108735780637f8525821461089657806384c095c2146108a957600080fd5b806348663e951161037e578063634e0d97116102fb5780636c321c8a116102bf5780636c321c8a146107d657806371143ab9146107df5780637261b81a1461080d57806374094edd1461082057806379ba50971461084057600080fd5b8063634e0d9714610762578063645006ca1461079057806365e0e725146107995780636685fdc2146107ac578063681312f5146107c357600080fd5b806358c09cc01161034257806358c09cc0146107075780635c7b396e1461071a5780635c975abb146107235780635ddd3e831461072e578063610589e11461075957600080fd5b806348663e951461068e5780634ae7937f146106a15780634b141b3f146106c15780634d549a42146106e157806353a47bb7146106f457600080fd5b80631baa88561161040c578063336d30ed116103d0578063336d30ed1461060c578063343e4f9f1461062c5780633b92d7581461063f57806340774ff6146106525780634651f0801461066557600080fd5b80631baa8856146105b15780631daae173146105ba5780631f2698ab146105dd578063202ffce8146105f1578063311c56df1461060457600080fd5b8063146ca53111610453578063146ca531146105415780631627540c1461054a57806316c38b3c1461055d578063175e6700146105705780631b2a52d81461059e57600080fd5b806302f97b0c14610490578063042047cf146104d3578063082f9fd4146104e057806312b19a131461050b57806313af40351461052c575b600080fd5b6104be61049e3660046153ae565b608360209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b6080546104be9060ff1681565b6104f36104ee3660046153dd565b610b03565b6040516001600160a01b0390911681526020016104ca565b61051e61051936600461537e565b610b3b565b6040519081526020016104ca565b61053f61053a36600461510d565b610b69565b005b61051e60695481565b61053f61055836600461510d565b610ca9565b61053f61056b366004615256565b610cff565b61058361057e36600461510d565b610d1f565b604080519384526020840192909252908201526060016104ca565b61053f6105ac36600461537e565b610e89565b61051e606b5481565b6104be6105c836600461510d565b60716020526000908152604090205460ff1681565b6068546104be90600160a01b900460ff1681565b61053f6105ff36600461537e565b6114d7565b61053f611514565b61051e61061a36600461537e565b60756020526000908152604090205481565b6104f361063a3660046153dd565b611793565b607a546104f3906001600160a01b031681565b61053f61066036600461537e565b6117af565b6104f361067336600461537e565b606c602052600090815260409020546001600160a01b031681565b6089546104f3906001600160a01b031681565b61051e6106af36600461537e565b60706020526000908152604090205481565b61051e6106cf36600461537e565b60009081526072602052604090205490565b61053f6106ef36600461510d565b6117ec565b6001546104f3906001600160a01b031681565b61053f610715366004615129565b611868565b61051e60855481565b60345460ff166104be565b61051e61073c3660046153ae565b606f60209081526000928352604080842090915290825290205481565b61051e60785481565b6104be6107703660046153ae565b606e60209081526000928352604080842090915290825290205460ff1681565b61051e60775481565b61053f6107a736600461510d565b611cfa565b6069546000908152606d602052604090205461051e565b61053f6107d136600461537e565b611d76565b61051e60885481565b6104be6107ed3660046153ae565b607360209081526000928352604080842090915290825290205460ff1681565b61053f61081b36600461536c565b611e1b565b61051e61082e36600461537e565b60746020526000908152604090205481565b61053f61203d565b61053f610856366004615129565b61213a565b6067546104f39061010090046001600160a01b031681565b6104be61088136600461510d565b607e6020526000908152604090205460ff1681565b61053f6108a436600461510d565b6121a2565b61053f6108b736600461510d565b61221e565b61051e606a5481565b61053f61232e565b6000546104f3906201000090046001600160a01b031681565b6082546104be9060ff1681565b61051e607c5481565b6068546104f3906001600160a01b031681565b61053f61091d36600461537e565b612625565b61051e61093036600461510d565b61292b565b6084546104be9060ff1681565b61051e61095036600461510d565b60876020526000908152604090205481565b61053f61097036600461537e565b612b62565b6104be613028565b607d546104f3906001600160a01b031681565b61053f61099e36600461537e565b6131d9565b61051e60795481565b61053f6135d5565b6104f36109c236600461510d565b613784565b61053f6109d536600461510d565b6137b3565b61051e6109e83660046153dd565b6138cc565b61051e60765481565b61051e608a5481565b61053f610a0d366004615129565b61390c565b6104be610a2036600461510d565b613a39565b61053f610a3336600461537e565b613af8565b61051e610a4636600461537e565b613b35565b61053f610a5936600461537e565b613b46565b61053f613b83565b61053f61400f565b61053f61436b565b6104be6143c9565b61053f610a8c3660046151e6565b614520565b6104f3610a9f36600461510d565b61476d565b61051e610ab236600461510d565b60866020526000908152604090205481565b607b546104f3906001600160a01b031681565b6104be610ae536600461510d565b60816020526000908152604090205460ff1681565b61051e607f5481565b60726020528160005260406000208181548110610b1f57600080fd5b6000918252602090912001546001600160a01b03169150829050565b606a54600090610b4c6001846156f4565b610b5691906156d5565b606b54610b63919061569d565b92915050565b6001600160a01b038116610bc45760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600154600160a01b900460ff1615610c305760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610bbb565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b03831662010000810262010000600160b01b03199092169190911782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91015b60405180910390a150565b610cb1614840565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610c9e565b610d07614840565b80610d1757610d146148ba565b50565b610d1461494d565b6000806000806069546001610d34919061569d565b607b54604051631676539160e01b81526001600160a01b03888116600483015292935091169063167653919060240160206040518083038186803b158015610d7b57600080fd5b505afa158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db39190615396565b9150610dde670de0b6b3a7640000607c5484610dcf91906156d5565b610dd991906156b5565b6149a5565b6000828152606f602081815260408084206001600160a01b038b1680865290835281852054606954865293835281852090855290915290912054919550610e249161569d565b8411610e31576000610e7f565b6000818152606f602081815260408084206001600160a01b038a1680865290835281852054606954865293835281852090855290915290912054610e7590866156f4565b610e7f91906156f4565b9250509193909250565b600160666000828254610e9c919061569d565b909155505060665460345460ff1615610ec75760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16610f195760405162461bcd60e51b815260206004820152601a60248201527f526f756e6420636c6f73696e67206e6f742070726570617265640000000000006044820152606401610bbb565b6069546000908152606d602052604090205460855410610f7b5760405162461bcd60e51b815260206004820152601b60248201527f416c6c20757365727320616c72656164792070726f63657373656400000000006044820152606401610bbb565b60008211610f9b5760405162461bcd60e51b8152600401610bbb906155ab565b6069546000908152606c60205260408120546085546001600160a01b039091169190610fc890859061569d565b6069546000908152606d6020526040902054909150811115610ff857506069546000908152606d60205260409020545b6085545b81811015611473576069546000908152606d6020526040812080548390811061103557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154606954835260748252604080842054606f84528185206001600160a01b0390931680865292909352832054909350670de0b6b3a764000091611084916156d5565b61108e91906156b5565b6001600160a01b03831660009081526071602052604090205490915060ff161580156110ca575060695460009081526074602052604090205415155b1561122f5780606f600060695460016110e3919061569d565b81526020019081526020016000206000846001600160a01b03166001600160a01b031681526020019081526020016000205461111f919061569d565b606f60006069546001611132919061569d565b81526020019081526020016000206000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550606d6000606954600161117a919061569d565b8152602080820192909252604001600090812080546001810182559082529190200180546001600160a01b0319166001600160a01b0384811691909117909155607b54161561122a57607b546040516302c7739b60e01b81526001600160a01b03848116600483015260248201849052909116906302c7739b90604401600060405180830381600087803b15801561121157600080fd5b505af1158015611225573d6000803e3d6000fd5b505050505b61144d565b6001600160a01b038216600090815260866020526040902054156113a5576001600160a01b038216600090815260866020526040812054670de0b6b3a76400009061127a90846156d5565b61128491906156b5565b60685490915061129f906001600160a01b03168785846149c6565b604080516001600160a01b0385168152602081018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a910160405180910390a16001600160a01b0383166000908152607160209081526040808320805460ff1916905560869091528120819055606954606d919061132090600161569d565b8152602080820192909252604001600090812080546001810182559082529190200180546001600160a01b0319166001600160a01b03851617905561136581836156f4565b606f60006069546001611378919061569d565b8152602080820192909252604090810160009081206001600160a01b03881682529092529020555061144d565b6000606f600060695460016113ba919061569d565b8152602080820192909252604090810160009081206001600160a01b038088168352935220919091556068546113f391168684846149c6565b6001600160a01b038216600081815260716020908152604091829020805460ff19169055815192835282018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a910160405180910390a15b60855461145b90600161569d565b6085555081905061146b81615737565b915050610ffc565b5060695460408051918252602082018690527f2e692c8fcabe33ba22535323e79dcb54ef22dccdb8e4ebdd9f2a7ffb1a28856c910160405180910390a1505060665481146114d35760405162461bcd60e51b8152600401610bbb906155ed565b5050565b6114df614840565b60788190556040518181527fe7c2c09f66c8b970b4a99250f4d0844e1496b9d51d4760a17b0134ddd52023e190602001610c9e565b600160666000828254611527919061569d565b9091555050606654606854600160a01b900460ff166115585760405162461bcd60e51b8152600401610bbb90615470565b3360009081526071602052604090205460ff16156115b85760405162461bcd60e51b815260206004820152601c60248201527f5769746864726177616c20616c726561647920726571756573746564000000006044820152606401610bbb565b6069546000908152606f602090815260408083203384529091529020546116175760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610bbb565b606f6000606954600161162a919061569d565b815260208082019290925260409081016000908120338252909252902054156116655760405162461bcd60e51b8152600401610bbb90615555565b60345460ff16156116885760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156116ab5760405162461bcd60e51b8152600401610bbb9061550e565b6069546000908152606f60209081526040808320338452909152902054607f54111561170c576069546000908152606f60209081526040808320338452909152812054607f8054919290916117019084906156f4565b909155506117129050565b6000607f555b600160795461172191906156f4565b60795533600081815260716020908152604091829020805460ff1916600117905590519182527fe5892ff2a8b08efb903ffbba1f0514c1d3e22eea34dd5b89cf30aabce03dde5a910160405180910390a16066548114610d145760405162461bcd60e51b8152600401610bbb906155ed565b606d6020528160005260406000208181548110610b1f57600080fd5b6117b7614840565b60888190556040518181527fc117ccf765672707ebe3c1606037488c1e27dc1f42b5266e3d6b496db7d4209e90602001610c9e565b6117f4614840565b6001600160a01b03811661181a5760405162461bcd60e51b8152600401610bbb90615666565b607d80546001600160a01b0319166001600160a01b0383169081179091556040519081527fa65a5aa86bb6f8e75752296da3ebda45474c8a302fc640c3b62868793862a03390602001610c9e565b60016066600082825461187b919061569d565b909155505060665460345460ff16156118a65760405162461bcd60e51b8152600401610bbb906154e4565b60675461010090046001600160a01b031633146118d55760405162461bcd60e51b8152600401610bbb9061549e565b60845460ff16156118f85760405162461bcd60e51b8152600401610bbb9061550e565b606854600160a01b900460ff166119215760405162461bcd60e51b8152600401610bbb90615470565b600082116119715760405162461bcd60e51b815260206004820152601960248201527f43616e277420636f6d6d69742061207a65726f207472616465000000000000006044820152606401610bbb565b61197a826149a5565b60825490925060ff1661198d5781611998565b61199882600161569d565b915060006119a58461292b565b6001600160a01b03851660009081526087602052604081208290559091506119cc82614a20565b9050606954821415611b31576067546068546119fc916001600160a01b03918216918491610100900416876149c6565b608854606954600090815260706020526040902054670de0b6b3a764000091611a24916156d5565b611a2e91906156b5565b606954600090815260706020526040902054611a4a91906156f4565b6068546040516370a0823160e01b81526001600160a01b038481166004830152909116906370a082319060240160206040518083038186803b158015611a8f57600080fd5b505afa158015611aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac79190615396565b1015611b2c5760405162461bcd60e51b815260206004820152602e60248201527f416d6f756e74206578636565647320617661696c61626c65207574696c697a6160448201526d1d1a5bdb88199bdc881c9bdd5b9960921b6064820152608401610bbb565b611c78565b606954821115611c30576068546040516370a0823160e01b81526001600160a01b03838116600483015260009216906370a082319060240160206040518083038186803b158015611b8157600080fd5b505afa158015611b95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb99190615396565b9050848110611beb57606754606854611be6916001600160a01b03918216918591610100900416886149c6565b611c2a565b6000611bf782876156f4565b9050611c04818486614bff565b606754606854611c28916001600160a01b03918216918691610100900416896149c6565b505b50611c78565b81600114611c6f5760405162461bcd60e51b815260206004820152600c60248201526b125b9d985b1a59149bdd5b9960a21b6044820152606401610bbb565b611c7884614cf3565b5060008181526072602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038a1690811790915594845260738352818420948452939091529020805460ff191690911790556066548114611cf55760405162461bcd60e51b8152600401610bbb906155ed565b505050565b611d02614840565b6001600160a01b038116611d285760405162461bcd60e51b8152600401610bbb90615666565b607a80546001600160a01b0319166001600160a01b0383169081179091556040519081527faaf6f0738515c3cf390f1b3faec649d2dacb169d024089afc43bbe2fe66cd2d890602001610c9e565b611d7e614840565b606854600160a01b900460ff1615611de65760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e676520726f756e64206c656e677468206166746572206044820152641cdd185c9d60da1b6064820152608401610bbb565b606a8190556040518181527f1d1fb7111c3779798bd4aefb2daea07ee8257a13c7eaceba89b4b1ccd405050d90602001610c9e565b600054610100900460ff16611e365760005460ff1615611e3a565b303b155b611e9d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610bbb565b600054610100900460ff16158015611ebf576000805461ffff19166101011790555b611ecf61053a602084018461510d565b611ed761436b565b611ee7604083016020840161510d565b606780546001600160a01b039290921661010002610100600160a81b0319909216919091179055611f1e606083016040840161510d565b606880546001600160a01b0319166001600160a01b03929092169190911790556060820135606a55608082013560765560a082013560775560c0820135607855611f6f610100830160e08401615256565b6082805460ff19169115159190911790556068546001600160a01b031663095ea7b3611fa1604085016020860161510d565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526000196024820152604401602060405180830381600087803b158015611fea57600080fd5b505af1158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190615272565b50600160695580156114d3576000805461ff00191690555050565b6001546001600160a01b031633146120b55760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610bbb565b60005460015460408051620100009093046001600160a01b03908116845290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a1600180546000805462010000600160b01b0319166001600160a01b03831662010000021790556001600160a01b0319169055565b612142614840565b608980546001600160a01b0319166001600160a01b038416908117909155608a82905560408051918252602082018390527fa1a8623472ca4e2879372be60dfd1ff0675778e49f7379eedd98ca57cf36b21a910160405180910390a15050565b6121aa614840565b6001600160a01b0381166121d05760405162461bcd60e51b8152600401610bbb90615666565b607b80546001600160a01b0319166001600160a01b0383169081179091556040519081527f3c7faa500efbd341aedbf1ee7ebd52ea36d226dda76bc01dd39b43d46f55b8d390602001610c9e565b612226614840565b6001600160a01b03811661224c5760405162461bcd60e51b8152600401610bbb90615666565b60678054610100600160a81b0319166101006001600160a01b038481168202929092179283905560685460405163095ea7b360e01b81529190930482166004820152600019602482015291169063095ea7b390604401602060405180830381600087803b1580156122bc57600080fd5b505af11580156122d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f49190615272565b506040516001600160a01b03821681527f576297e5fcc8cd907ee80b240284865eb3d821bdc5232e6ee9e4d78a12531c0990602001610c9e565b600160666000828254612341919061569d565b909155505060665460345460ff161561236c5760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff161561238f5760405162461bcd60e51b8152600401610bbb9061550e565b6123976143c9565b6123e35760405162461bcd60e51b815260206004820152601960248201527f43616e277420636c6f73652063757272656e7420726f756e64000000000000006044820152606401610bbb565b6123eb61400f565b6069546000908152606c60205260408082205460685491516370a0823160e01b81526001600160a01b0391821660048201819052939291909116906370a082319060240160206040518083038186803b15801561244757600080fd5b505afa15801561245b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061247f9190615396565b60695460009081526070602052604090205490915081111561254757608a546069546000908152607060205260408120549091670de0b6b3a7640000916124c690856156f4565b6124d091906156d5565b6124da91906156b5565b6089546068549192506124fc916001600160a01b0390811691869116846149c6565b61250681836156f4565b608a5460408051918252602082018490529193507fb8379d05082aa2dd32963972d72cc2d46257811133341855b63bb2fddda6ca3e910160405180910390a1505b606954600090815260706020526040902054612577576069546000908152607460205260409020600190556125b8565b60695460009081526070602052604090205461259b670de0b6b3a7640000836156d5565b6125a591906156b5565b6069546000908152607460205260409020555b6084805460ff191660011790556069546040517fa224cce482b24082d1d3128437615f7f5ce87b97453a11114846ea442a100272916125fa9190815260200190565b60405180910390a150506066548114610d145760405162461bcd60e51b8152600401610bbb906155ed565b600160666000828254612638919061569d565b9091555050606654606854600160a01b900460ff166126695760405162461bcd60e51b8152600401610bbb90615470565b3360009081526071602052604090205460ff16156126c95760405162461bcd60e51b815260206004820152601c60248201527f5769746864726177616c20616c726561647920726571756573746564000000006044820152606401610bbb565b6069546000908152606f602090815260408083203384529091529020546127285760405162461bcd60e51b81526020600482015260136024820152724e6f7468696e6720746f20776974686472617760681b6044820152606401610bbb565b606f6000606954600161273b919061569d565b815260208082019290925260409081016000908120338252909252902054156127765760405162461bcd60e51b8152600401610bbb90615555565b60345460ff16156127995760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156127bc5760405162461bcd60e51b8152600401610bbb9061550e565b6127ce662386f26fc10000600a6156d5565b82101580156127ee57506127ea662386f26fc10000605a6156d5565b8211155b6128465760405162461bcd60e51b815260206004820152602360248201527f53686172652068617320746f206265206265747765656e2031302520616e642060448201526239302560e81b6064820152608401610bbb565b6069546000908152606f60209081526040808320338452909152812054670de0b6b3a7640000906128789085906156d5565b61288291906156b5565b905080607f5411156128ab5780607f60008282546128a091906156f4565b909155506128b19050565b6000607f555b336000818152607160209081526040808320805460ff19166001179055608682529182902086905590519182527fe5892ff2a8b08efb903ffbba1f0514c1d3e22eea34dd5b89cf30aabce03dde5a910160405180910390a15060665481146114d35760405162461bcd60e51b8152600401610bbb906155ed565b6001600160a01b03811660009081526087602052604090205480612b5d57816000805b826001600160a01b031663081ad4946040518163ffffffff1660e01b815260040160206040518083038186803b15801561298757600080fd5b505afa15801561299b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129bf9190615396565b811015612b59576040516302042e1d60e31b8152600481018290526001600160a01b0384169063102170e8906024016101006040518083038186803b158015612a0757600080fd5b505afa158015612a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3f9190615154565b505060408051639e3b34bf60e01b815281519799508997600097506001600160a01b0389169650639e3b34bf9550600480830195509293509190829003018186803b158015612a8d57600080fd5b505afa158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ac591906153fe565b509050606b54811115612b3f5782612b0357606a54606b54612ae790836156f4565b612af191906156b5565b612afc90600261569d565b9550612b44565b85606a54606b5483612b1591906156f4565b612b1f91906156b5565b612b2a90600261569d565b14612b3a57600195505050612b59565b612b44565b600195505b50508080612b5190615737565b91505061294e565b5050505b919050565b33600090815260716020526040902054819060ff1615612bd45760405162461bcd60e51b815260206004820152602760248201527f5769746864726177616c206973207265717565737465642c2063616e6e6f742060448201526619195c1bdcda5d60ca1b6064820152608401610bbb565b60765481607f54612be5919061569d565b1115612c3d5760405162461bcd60e51b815260206004820152602160248201527f4465706f73697420616d6f756e74206578636565647320414d4d204c502063616044820152600760fc1b6064820152608401610bbb565b6069546000908152606f60209081526040808320338452909152902054158015612c955750606f60006069546001612c75919061569d565b815260208082019290925260409081016000908120338252909252902054155b15612cf657607754811015612cf65760405162461bcd60e51b815260206004820152602160248201527f416d6f756e74206c657373207468616e206d696e4465706f736974416d6f756e6044820152601d60fa1b6064820152608401610bbb565b600160666000828254612d09919061569d565b909155505060665460345460ff1615612d345760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff1615612d575760405162461bcd60e51b8152600401610bbb9061550e565b60006069546001612d68919061569d565b90506000612d7582614a20565b606854909150612d90906001600160a01b03163383886149c6565b607a546001600160a01b0316331415612e085760405162461bcd60e51b815260206004820152603460248201527f43616e2774206465706f736974206469726563746c792061732064656661756c6044820152733a103634b8bab4b234ba3c90383937bb34b232b960611b6064820152608401610bbb565b6069546000908152606f60209081526040808320338452909152902054158015612e4957506000828152606f60209081526040808320338452909152902054155b15612ee25760785460795410612ea15760405162461bcd60e51b815260206004820152601b60248201527f4d617820616d6f756e74206f66207573657273207265616368656400000000006044820152606401610bbb565b6000828152606d602090815260408220805460018181018355918452919092200180546001600160a01b03191633179055607954612ede9161569d565b6079555b6000828152606f6020908152604080832033845290915281208054879290612f0b90849061569d565b909155505060008281526070602052604081208054879290612f2e90849061569d565b9250508190555084607f6000828254612f47919061569d565b9091555050607b546001600160a01b031615612fc257607b546040516302c7739b60e01b8152336004820152602481018790526001600160a01b03909116906302c7739b90604401600060405180830381600087803b158015612fa957600080fd5b505af1158015612fbd573d6000803e3d6000fd5b505050505b606954604080513381526020810188905280820192909252517f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca9181900360600190a150506066548114611cf55760405162461bcd60e51b8152600401610bbb906155ed565b60008080805b6069546000908152607260205260409020548110156131cf57606954600090815260726020526040902080548290811061307857634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490925060ff166131bd578192506000836001600160a01b03166337783bfa6040518163ffffffff1660e01b815260040160006040518083038186803b1580156130f157600080fd5b505afa158015613105573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261312d919081019061528e565b5090508080156131ab5750836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561317157600080fd5b505afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615272565b155b156131bb57600194505050505090565b505b806131c781615737565b91505061302e565b5060009250505090565b6001606660008282546131ec919061569d565b909155505060665460345460ff16156132175760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff161561323a5760405162461bcd60e51b8152600401610bbb9061550e565b6000821161325a5760405162461bcd60e51b8152600401610bbb906155ab565b6069546000908152606c60205260408120546001600160a01b03169080805b6069546000908152607260205260409020548110156135b0578583141561329f576135b0565b60695460009081526072602052604081208054839081106132d057634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490915060ff1661359d578092506000836001600160a01b03166337783bfa6040518163ffffffff1660e01b815260040160006040518083038186803b15801561334957600080fd5b505afa15801561335d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613385919081019061528e565b5090508080156134035750836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190615272565b155b1561346e5760675460405163ad385b9160e01b81526001600160a01b0384811660048301526101009092049091169063ad385b9190602401600060405180830381600087803b15801561345557600080fd5b505af1158015613469573d6000803e3d6000fd5b505050505b836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156134a757600080fd5b505afa1580156134bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134df9190615272565b806135565750836001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b15801561351e57600080fd5b505afa158015613532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135569190615272565b1561359b5760695460009081526083602090815260408083206001600160a01b03861684529091529020805460ff19166001908117909155613598908661569d565b94505b505b50806135a881615737565b915050613279565b5050505060665481146114d35760405162461bcd60e51b8152600401610bbb906155ed565b6135dd614840565b606854600160a01b900460ff16156136425760405162461bcd60e51b815260206004820152602260248201527f4c697175696469747920706f6f6c2068617320616c7265616479207374617274604482015261195960f21b6064820152608401610bbb565b600260005260706020527f60b45511bf7ff7962f4d95774002c49705feb8f9eb913220abee2cd301af1d1d546136ba5760405162461bcd60e51b815260206004820152601d60248201527f63616e206e6f7420737461727420776974682030206465706f736974730000006044820152606401610bbb565b42606b55600260698190556000906136d190614a20565b9050806001600160a01b0316637d3de7ce606b546136ef6002610b3b565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561372d57600080fd5b505af1158015613741573d6000803e3d6000fd5b50506068805460ff60a01b1916600160a01b17905550506040517f960682678fca98f3ed131eaf165e59544bcd738e948f0b3c64f58fa9e1c65e6090600090a150565b6000606c60006137938461292b565b81526020810191909152604001600020546001600160a01b031692915050565b6137bb614840565b6001600160a01b0381166138035760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610bbb565b600154600160a81b900460ff16156138535760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610bbb565b600080546001600160a01b038381166201000081810262010000600160b01b031990941693909317938490556001805460ff60a81b1916600160a81b1790556040805193909404909116825260208201527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9101610c9e565b60008281526075602081815260408084205460748352818520548686529390925283205490916138fb916156d5565b61390591906156b5565b9392505050565b60345460ff161561392f5760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156139525760405162461bcd60e51b8152600401610bbb9061550e565b60675461010090046001600160a01b031633146139815760405162461bcd60e51b8152600401610bbb9061549e565b600061398c8361292b565b9050600060018211156139a7576139a282614a20565b6139b4565b607a546001600160a01b03165b6067546068549192506139da916001600160a01b039081169161010090041683866149c6565b60008281526073602090815260408083206001600160a01b038816845290915290205460ff1615613a335760008281526083602090815260408083206001600160a01b03881684529091529020805460ff191660011790555b50505050565b6069546000908152606f602090815260408083206001600160a01b0385168452909152812054151580613ab057506000606f60006069546001613a7c919061569d565b81526020019081526020016000206000846001600160a01b03166001600160a01b0316815260200190815260200160002054115b8015610b6357506001600160a01b03821660009081526071602052604090205460ff161580610b635750506001600160a01b0316600090815260866020526040902054151590565b613b00614840565b60778190556040518181527f990717cc219e5348c1b88bb0ff530d804f0b6f54f3b03844a2bfbe4eb1e9c5d690602001610c9e565b606a54600090610b4c6002846156f4565b613b4e614840565b60768190556040518181527f8c43aa02599ac8f8bab4724621ceea5e7a06b07bbbfaf3b7bd0386cbe481ea3c90602001610c9e565b600160666000828254613b96919061569d565b909155505060665460345460ff1615613bc15760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16613c135760405162461bcd60e51b815260206004820152601a60248201527f526f756e6420636c6f73696e67206e6f742070726570617265640000000000006044820152606401610bbb565b6069546000908152606d602052604090205460855414613c755760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420616c6c2075736572732070726f6365737365642079657400000000006044820152606401610bbb565b6084805460ff191690556069546000908152606c6020908152604080832054606f8352818420607a546001600160a01b039081168652935292205491169015613d6f57606954600090815260746020908152604080832054606f8352818420607a546001600160a01b03168552909252822054670de0b6b3a764000091613cfb916156d5565b613d0591906156b5565b607a54606854919250613d27916001600160a01b0390811691859116846149c6565b607a54604080516001600160a01b039092168252602082018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a910160405180910390a1505b60695460021415613d9d57606954600090815260746020908152604080832054607590925290912055613e00565b606954600081815260746020526040812054670de0b6b3a7640000929091607591613dca906001906156f4565b815260200190815260200160002054613de391906156d5565b613ded91906156b5565b6069546000908152607560205260409020555b606960008154613e0f90615737565b909155506068546040516370a0823160e01b81526001600160a01b038381166004830152909116906370a082319060240160206040518083038186803b158015613e5857600080fd5b505afa158015613e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e909190615396565b60695460009081526070602052604081208054909190613eb190849061569d565b90915550506069546000818152606f60209081526040808320607a546001600160a01b031684528252808320549383526070909152902054613ef391906156f4565b607f55606954600090613f0590614a20565b6068546040516370a0823160e01b81526001600160a01b038086166004830152929350613fa092859285929116906370a082319060240160206040518083038186803b158015613f5457600080fd5b505afa158015613f68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f8c9190615396565b6068546001600160a01b03169291906149c6565b60006085556069547fc67dda8e11f1aa941c7e74466b1859a07a32f46aaf641d29b83be348424d93cd90613fd6906001906156f4565b607460006001606954613fe991906156f4565b8152602001908152602001600020546040516125fa929190918252602082015260400190565b60845460ff16156140325760405162461bcd60e51b8152600401610bbb9061550e565b6069546000908152606c60205260408120546001600160a01b03169080805b606954600090815260726020526040902054811015613a3357606954600090815260726020526040902080548290811061409b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490925060ff16614359578192506000836001600160a01b03166337783bfa6040518163ffffffff1660e01b815260040160006040518083038186803b15801561411457600080fd5b505afa158015614128573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614150919081019061528e565b5090508080156141ce5750836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561419457600080fd5b505afa1580156141a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141cc9190615272565b155b156142395760675460405163ad385b9160e01b81526001600160a01b0385811660048301526101009092049091169063ad385b9190602401600060405180830381600087803b15801561422057600080fd5b505af1158015614234573d6000803e3d6000fd5b505050505b836001600160a01b0316633356a35a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561427257600080fd5b505afa158015614286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142aa9190615272565b806143215750836001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b1580156142e957600080fd5b505afa1580156142fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143219190615272565b156143575760695460009081526083602090815260408083206001600160a01b03871684529091529020805460ff191660011790555b505b8061436381615737565b915050614051565b60675460ff16156143b45760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610bbb565b6067805460ff19166001908117909155606655565b606854600090600160a01b900460ff1615806143ee57506143eb606954610b3b565b42105b156143f95750600090565b6000805b60695460009081526072602052604090205481101561451757606954600090815260726020526040812080548390811061444757634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015460695483526083825260408084206001600160a01b039092168085529190925291205490915060ff1661450457809250826001600160a01b031663e990b0986040518163ffffffff1660e01b815260040160206040518083038186803b1580156144be57600080fd5b505afa1580156144d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144f69190615272565b614504576000935050505090565b508061450f81615737565b9150506143fd565b50600191505090565b600160666000828254614533919061569d565b909155505060665460345460ff161561455e5760405162461bcd60e51b8152600401610bbb906154e4565b614566614840565b60005b8281101561474b57600084848381811061459357634e487b7160e01b600052603260045260246000fd5b905060200201359050600181116145ec5760405162461bcd60e51b815260206004820152601e60248201527f43616e27742070756c6c2066726f6d2064656661756c7420726f756e647300006044820152606401610bbb565b606954811061464e5760405162461bcd60e51b815260206004820152602860248201527f43616e27742070756c6c2066726f6d2063757272656e74206f722066757475726044820152676520726f756e647360c01b6064820152608401610bbb565b6000818152606c60205260408082205460685491516370a0823160e01b81526001600160a01b0391821660048201819052939291909116906370a082319060240160206040518083038186803b1580156146a757600080fd5b505afa1580156146bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146df9190615396565b6068549091506146fa906001600160a01b03168333846149c6565b7f772d8b935fea383cb27d439d54ed82e6d7b3f56a51d5f2e1c06d59365cd75d6260695460405161472d91815260200190565b60405180910390a1505050808061474390615737565b915050614569565b506066548114611cf55760405162461bcd60e51b8152600401610bbb906155ed565b60675460009061010090046001600160a01b0316331461479f5760405162461bcd60e51b8152600401610bbb9061549e565b6001606660008282546147b2919061569d565b909155505060665460345460ff16156147dd5760405162461bcd60e51b8152600401610bbb906154e4565b60845460ff16156148005760405162461bcd60e51b8152600401610bbb9061550e565b600061480b8461292b565b905061481681614a20565b925050606654811461483a5760405162461bcd60e51b8152600401610bbb906155ed565b50919050565b6000546201000090046001600160a01b031633146148b85760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610bbb565b565b60345460ff166149035760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610bbb565b6034805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60345460ff16156149705760405162461bcd60e51b8152600401610bbb906154e4565b6034805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586149303390565b60825460009060ff16156149c257610b6364e8d4a51000836156b5565b5090565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052613a33908590614e20565b6000818152606c60205260409020546001600160a01b031680612b5d578160011415614a7b5750607a80546000838152606c6020526040902080546001600160a01b0319166001600160a01b03928316179055905416919050565b607d546001600160a01b0316614ad35760405162461bcd60e51b815260206004820152601d60248201527f526f756e6420706f6f6c206d6173746572636f7079206e6f74207365740000006044820152606401610bbb565b607d54600090614aeb906001600160a01b0316614ef2565b6068549091506001600160a01b038083169163d13f90b49130911686614b156105196001836156f4565b614b1e89610b3b565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015260448401919091526064830152608482015260a401600060405180830381600087803b158015614b7a57600080fd5b505af1158015614b8e573d6000803e3d6000fd5b5050506000848152606c602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915582518781529182015292935083927f24c1b21b902a85b5039d7d72427d9376657229eea77880ec9e62031dc950f6ba92500160405180910390a150919050565b607a546001600160a01b0316614c275760405162461bcd60e51b8152600401610bbb90615624565b607a54606854614c45916001600160a01b03918216911684866149c6565b6000818152606f60209081526040808320607a546001600160a01b0316845290915281208054859290614c7990849061569d565b909155505060008181526070602052604081208054859290614c9c90849061569d565b9091555050607a54604080516001600160a01b0390921682526020820185905281018290527f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca9060600160405180910390a1505050565b607a546001600160a01b0316614d1b5760405162461bcd60e51b8152600401610bbb90615624565b607a54606754606854614d45926001600160a01b03918216929082169161010090910416846149c6565b607a546001600160a01b031660009081527f6e075724c97aa8b42d86406682b25042490cf37e8d91270a79e54ad319c8b085602052604081208054839290614d8e90849061569d565b90915550506001600090815260706020527fb1a24bae1e5047fbb0cf526090cbec15c09a4036896111a8964a155b1c4771a18054839290614dd090849061569d565b9091555050607a54604080516001600160a01b039092168252602082018390526001908201527f73a19dd210f1a7f902193214c0ee91dd35ee5b4d920cba8d519eca65a7b488ca90606001610c9e565b6000614e75826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614f8a9092919063ffffffff16565b805190915015611cf55780806020019051810190614e939190615272565b611cf55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bbb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116612b5d5760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610bbb565b6060614f998484600085614fa1565b949350505050565b6060824710156150025760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610bbb565b843b6150505760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bbb565b600080866001600160a01b0316858760405161506c9190615421565b60006040518083038185875af1925050503d80600081146150a9576040519150601f19603f3d011682016040523d82523d6000602084013e6150ae565b606091505b50915091506150be8282866150c9565b979650505050505050565b606083156150d8575081613905565b8251156150e85782518084602001fd5b8160405162461bcd60e51b8152600401610bbb919061543d565b8051612b5d81615793565b60006020828403121561511e578081fd5b81356139058161577e565b6000806040838503121561513b578081fd5b82356151468161577e565b946020939093013593505050565b600080600080600080600080610100898b031215615170578384fd5b885161517b8161577e565b8098505060208901519650604089015195506060890151945060808901516151a281615793565b60a08a01519094506151b381615793565b60c08a01519093506151c481615793565b60e08a01519092506151d581615793565b809150509295985092959890939650565b600080602083850312156151f8578182fd5b823567ffffffffffffffff8082111561520f578384fd5b818501915085601f830112615222578384fd5b813581811115615230578485fd5b8660208260051b8501011115615244578485fd5b60209290920196919550909350505050565b600060208284031215615267578081fd5b813561390581615793565b600060208284031215615283578081fd5b815161390581615793565b600080604083850312156152a0578182fd5b82516152ab81615793565b8092505060208084015167ffffffffffffffff808211156152ca578384fd5b818601915086601f8301126152dd578384fd5b8151818111156152ef576152ef615768565b8060051b604051601f19603f8301168101818110858211171561531457615314615768565b604052828152858101935084860182860187018b1015615332578788fd5b8795505b8386101561535b5761534781615102565b855260019590950194938601938601615336565b508096505050505050509250929050565b6000610100828403121561483a578081fd5b60006020828403121561538f578081fd5b5035919050565b6000602082840312156153a7578081fd5b5051919050565b600080604083850312156153c0578182fd5b8235915060208301356153d28161577e565b809150509250929050565b600080604083850312156153ef578182fd5b50508035926020909101359150565b60008060408385031215615410578182fd5b505080516020909101519092909150565b6000825161543381846020870161570b565b9190910192915050565b602081526000825180602084015261545c81604085016020870161570b565b601f01601f19169190910160400192915050565b602080825260149082015273141bdbdb081a185cc81b9bdd081cdd185c9d195960621b604082015260600190565b60208082526026908201527f6f6e6c792074686520414d4d206d617920706572666f726d207468657365206d6040820152656574686f647360d01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526027908201527f4e6f7420616c6c6f77656420647572696e6720726f756e64436c6f73696e67506040820152661c995c185c995960ca1b606082015260800190565b60208082526036908201527f43616e277420776974686472617720617320796f7520616c72656164792064656040820152751c1bdcda5d195908199bdc881b995e1d081c9bdd5b9960521b606082015260800190565b60208082526022908201527f626174636853697a652068617320746f2062652067726561746572207468616e604082015261020360f41b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526022908201527f64656661756c74206c69717569646974792070726f7669646572206e6f742073604082015261195d60f21b606082015260800190565b6020808252601b908201527f43616e206e6f74207365742061207a65726f2061646472657373210000000000604082015260600190565b600082198211156156b0576156b0615752565b500190565b6000826156d057634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156156ef576156ef615752565b500290565b60008282101561570657615706615752565b500390565b60005b8381101561572657818101518382015260200161570e565b83811115613a335750506000910152565b600060001982141561574b5761574b615752565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d1457600080fd5b8015158114610d1457600080fdfea2646970667358221220120375353c99bca4c8e52985ed0a7882dc61743854949eed12750849aed22b1464736f6c63430008040033
🤖 Code Reader

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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.