ETH Price: $1,883.55 (+0.11%)
 

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

Parent Transaction Hash Block From To
View All Internal Transactions

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

Contract Name

SportsAMMV2RiskManager

Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled
Yes with 100 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"name":"BadRangeForK","type":"error"},{"inputs":[],"name":"CantParlayFutures","type":"error"},{"inputs":[],"name":"DividerOutOfRange","type":"error"},{"inputs":[],"name":"EmptyArrays","type":"error"},{"inputs":[],"name":"ExceededGameRisk","type":"error"},{"inputs":[],"name":"ExceededMarketPositionRisk","type":"error"},{"inputs":[],"name":"ExceededMaxAmount","type":"error"},{"inputs":[],"name":"ExceededMaxCombinations","type":"error"},{"inputs":[],"name":"ExceededMaxOdds","type":"error"},{"inputs":[],"name":"ExceededMaxSize","type":"error"},{"inputs":[],"name":"ExceededSGPRisk","type":"error"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidCap","type":"error"},{"inputs":[],"name":"InvalidCombination","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInput","type":"error"},{"inputs":[],"name":"InvalidOdds","type":"error"},{"inputs":[],"name":"InvalidPosition","type":"error"},{"inputs":[],"name":"LowBuyIn","type":"error"},{"inputs":[],"name":"MarketNotTrading","type":"error"},{"inputs":[],"name":"MismatchedInputs","type":"error"},{"inputs":[],"name":"MultiplierTooHigh","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"SlippageTooHigh","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"DefaultRoundHighQuoteThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isPaused","type":"bool"}],"name":"PauseChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_manager","type":"address"},{"indexed":false,"internalType":"address","name":"_resultManager","type":"address"},{"indexed":false,"internalType":"address","name":"_sportsAMM","type":"address"}],"name":"SetAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"gameId","type":"bytes32"},{"indexed":false,"internalType":"uint16","name":"typeId","type":"uint16"},{"indexed":false,"internalType":"uint24","name":"playerId","type":"uint24"},{"indexed":false,"internalType":"int24","name":"line","type":"int24"},{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"SetCapPerMarket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"SetCapPerSport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"typeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"SetCapPerSportAndType","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"cap","type":"uint256"}],"name":"SetCapPerSportChild","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cooldown","type":"uint256"}],"name":"SetCashoutCooldown","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"multiplier","type":"uint256"}],"name":"SetCashoutSafeBoxFeeMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_sportID","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetCombiningPerSportEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"defaultCap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"defaultRiskMultiplier","type":"uint256"}],"name":"SetDefaultCapAndDefaultRiskMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_divider","type":"uint256"}],"name":"SetDefaultLiveCapDivider","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dynamicLiquidityCutoffTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dynamicLiquidityCutoffDivider","type":"uint256"}],"name":"SetDynamicLiquidityParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_sportId","type":"uint16"},{"indexed":false,"internalType":"bool","name":"_isFuture","type":"bool"}],"name":"SetIsSportIdFuture","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_divider","type":"uint256"}],"name":"SetLiveCapDivider","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_typeId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetLiveTradingPerSportAndTypeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxCap","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxRiskMultiplier","type":"uint256"}],"name":"SetMaxCapAndMaxRiskMultiplier","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"gameId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"riskMultiplier","type":"uint256"}],"name":"SetRiskMultiplierPerGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sportId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskMultiplier","type":"uint256"}],"name":"SetRiskMultiplierPerSport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_divider","type":"uint256"}],"name":"SetSGPCapDivider","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_sportId","type":"uint16"},{"indexed":false,"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"SetSGPEnabledOnSport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minBuyInAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTicketSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxSupportedAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxSupportedOdds","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAllowedSystemCombinations","type":"uint256"}],"name":"TicketParamsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minimalTimeLeftToMaturity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"expiryDuration","type":"uint256"}],"name":"TimesUpdated","type":"event"},{"inputs":[],"name":"DEFAULT_CASHOUT_COOLDOWN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_CASHOUT_SAFEBOX_FEE_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_DYNAMIC_LIQUIDITY_CUTOFF_DIVIDER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData[]","name":"_marketTradeData","type":"tuple[]"},{"internalType":"bytes32[]","name":"_rootPerGame","type":"bytes32[]"}],"name":"batchVerifyMerkleTree","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_gameId","type":"bytes32"},{"internalType":"uint16","name":"_sportId","type":"uint16"},{"internalType":"uint16","name":"_typeId","type":"uint16"},{"internalType":"uint24","name":"_playerId","type":"uint24"},{"internalType":"int24","name":"_line","type":"int24"},{"internalType":"uint256","name":"_maturity","type":"uint256"},{"internalType":"bool","name":"_isLive","type":"bool"}],"name":"calculateCapToBeUsed","outputs":[{"internalType":"uint256","name":"cap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_gameId","type":"bytes32"},{"internalType":"uint16","name":"_sportId","type":"uint16"},{"internalType":"uint256","name":"_maturity","type":"uint256"}],"name":"calculateTotalRiskOnGame","outputs":[{"internalType":"uint256","name":"totalRisk","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"int256","name":"","type":"int256"}],"name":"capPerMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"capPerSport","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"capPerSportAndType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"capPerSportChild","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cashoutCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cashoutSafeBoxFeeMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData[]","name":"_tradeData","type":"tuple[]"},{"internalType":"uint256","name":"_buyInAmount","type":"uint256"},{"internalType":"uint256","name":"_payout","type":"uint256"},{"internalType":"bool","name":"_isLive","type":"bool"},{"internalType":"uint8","name":"_systemBetDenominator","type":"uint8"},{"internalType":"bool","name":"_isSGP","type":"bool"}],"name":"checkAndUpdateRisks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyInAmount","type":"uint256"},{"internalType":"uint256","name":"_totalQuote","type":"uint256"},{"internalType":"uint256","name":"_payout","type":"uint256"},{"internalType":"uint256","name":"_expectedPayout","type":"uint256"},{"internalType":"uint256","name":"_additionalSlippage","type":"uint256"},{"internalType":"uint256","name":"_ticketSize","type":"uint256"}],"name":"checkLimits","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData[]","name":"_tradeData","type":"tuple[]"},{"internalType":"uint256","name":"_buyInAmount","type":"uint256"},{"internalType":"bool","name":"_isLive","type":"bool"},{"internalType":"uint8","name":"_systemBetDenominator","type":"uint8"}],"name":"checkRisks","outputs":[{"internalType":"enum ISportsAMMV2RiskManager.RiskStatus","name":"riskStatus","type":"uint8"},{"internalType":"bool[]","name":"isMarketOutOfLiquidity","type":"bool[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"combiningPerSportEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultLiveCapDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultRiskMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultRoundHighQuoteThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dynamicLiquidityCutoffDividerPerSport","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dynamicLiquidityCutoffTimePerSport","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"expiryDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"n","type":"uint8"},{"internalType":"uint8","name":"k","type":"uint8"}],"name":"generateCombinations","outputs":[{"internalType":"uint8[][]","name":"","type":"uint8[][]"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCashoutCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCashoutSafeBoxFeeMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData[]","name":"_tradeData","type":"tuple[]"},{"internalType":"uint8","name":"_systemBetDenominator","type":"uint8"},{"internalType":"uint256","name":"_buyInAmount","type":"uint256"},{"internalType":"uint256","name":"_addedPayoutPercentage","type":"uint256"}],"name":"getMaxSystemBetPayout","outputs":[{"internalType":"uint256","name":"systemBetPayout","type":"uint256"},{"internalType":"uint256","name":"systemBetQuote","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_typeIds","type":"uint256[]"}],"name":"getRiskData","outputs":[{"components":[{"internalType":"uint256","name":"sportId","type":"uint256"},{"components":[{"internalType":"uint256","name":"capPerSport","type":"uint256"},{"internalType":"uint256","name":"capPerChild","type":"uint256"},{"components":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"internalType":"struct ISportsAMMV2RiskManager.TypeCap[]","name":"capPerType","type":"tuple[]"}],"internalType":"struct ISportsAMMV2RiskManager.CapData","name":"capData","type":"tuple"},{"internalType":"uint256","name":"riskMultiplierPerSport","type":"uint256"},{"components":[{"internalType":"uint256","name":"cutoffTimePerSport","type":"uint256"},{"internalType":"uint256","name":"cutoffDividerPerSport","type":"uint256"}],"internalType":"struct ISportsAMMV2RiskManager.DynamicLiquidityData","name":"dynamicLiquidityData","type":"tuple"}],"internalType":"struct ISportsAMMV2RiskManager.RiskData[]","name":"riskData","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData[]","name":"trades","type":"tuple[]"}],"name":"getSGPCombinationRisk","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData[]","name":"trades","type":"tuple[]"}],"name":"getSGPHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initNonReentrant","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"contract ISportsAMMV2Manager","name":"_manager","type":"address"},{"internalType":"contract ISportsAMMV2ResultManager","name":"_resultManager","type":"address"},{"internalType":"uint256","name":"_defaultCap","type":"uint256"},{"internalType":"uint256","name":"_defaultRiskMultiplier","type":"uint256"},{"internalType":"uint256","name":"_maxCap","type":"uint256"},{"internalType":"uint256","name":"_maxRiskMultiplier","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"isSportIdFuture","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastPauseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"liveCapDividerPerSport","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"liveTradingPerSportAndTypeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"contract ISportsAMMV2Manager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAllowedSystemCombinations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxRiskMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupportedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupportedOdds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTicketSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBuyInAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimalTimeLeftToMaturity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"resultManager","outputs":[{"internalType":"contract ISportsAMMV2ResultManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"riskMultiplierPerGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"riskMultiplierPerSport","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"riskPerMarketTypeAndPosition","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"},{"internalType":"address","name":"_resultManager","type":"address"},{"internalType":"address","name":"_sportsAMM","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_typeIds","type":"uint256[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBatchLiveTradingPerSportAndTypeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_capsPerSport","type":"uint256[]"},{"internalType":"uint256[]","name":"_sportIdsForChild","type":"uint256[]"},{"internalType":"uint256[]","name":"_capsPerSportChild","type":"uint256[]"},{"internalType":"uint256[]","name":"_sportIdsForType","type":"uint256[]"},{"internalType":"uint256[]","name":"_typeIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_capsPerSportAndType","type":"uint256[]"}],"name":"setCaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_gameIds","type":"bytes32[]"},{"internalType":"uint16[]","name":"_typeIds","type":"uint16[]"},{"internalType":"uint24[]","name":"_playerIds","type":"uint24[]"},{"internalType":"int24[]","name":"_lines","type":"int24[]"},{"internalType":"uint256[]","name":"_capsPerMarket","type":"uint256[]"}],"name":"setCapsPerMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_capsPerSport","type":"uint256[]"}],"name":"setCapsPerSport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_typeIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_capsPerType","type":"uint256[]"}],"name":"setCapsPerSportAndType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_capsPerSportChild","type":"uint256[]"}],"name":"setCapsPerSportChild","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cooldown","type":"uint256"}],"name":"setCashoutCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"setCashoutSafeBoxFeeMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sportID","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setCombiningPerSportEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_defaultCap","type":"uint256"},{"internalType":"uint256","name":"_defaultRiskMultiplier","type":"uint256"}],"name":"setDefaultCapAndDefaultRiskMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_divider","type":"uint256"}],"name":"setDefaultLiveCapDivider","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setDefaultRoundHighQuoteThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sportId","type":"uint256"},{"internalType":"uint256","name":"_dynamicLiquidityCutoffTime","type":"uint256"},{"internalType":"uint256","name":"_dynamicLiquidityCutoffDivider","type":"uint256"}],"name":"setDynamicLiquidityParamsPerSport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_sportId","type":"uint16"},{"internalType":"bool","name":"_isFuture","type":"bool"}],"name":"setIsSportIdFuture","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sportId","type":"uint256"},{"internalType":"uint256","name":"_divider","type":"uint256"}],"name":"setLiveCapDivider","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sportId","type":"uint256"},{"internalType":"uint256","name":"_typeId","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setLiveTradingPerSportAndTypeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxCap","type":"uint256"},{"internalType":"uint256","name":"_maxRiskMultiplier","type":"uint256"}],"name":"setMaxCapAndMaxRiskMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_gameIds","type":"bytes32[]"},{"internalType":"uint256[]","name":"_riskMultipliersPerGame","type":"uint256[]"}],"name":"setRiskMultipliersPerGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_sportIds","type":"uint256[]"},{"internalType":"uint256[]","name":"_riskMultipliersPerSport","type":"uint256[]"}],"name":"setRiskMultipliersPerSport","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_divider","type":"uint256"}],"name":"setSGPCapDivider","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16[]","name":"_sportIds","type":"uint16[]"},{"internalType":"bool","name":"_isEnabled","type":"bool"}],"name":"setSGPEnabledOnSportIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBuyInAmount","type":"uint256"},{"internalType":"uint256","name":"_maxTicketSize","type":"uint256"},{"internalType":"uint256","name":"_maxSupportedAmount","type":"uint256"},{"internalType":"uint256","name":"_maxSupportedOdds","type":"uint256"},{"internalType":"uint256","name":"_maxAllowedSystemCombinations","type":"uint256"}],"name":"setTicketParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimalTimeLeftToMaturity","type":"uint256"},{"internalType":"uint256","name":"_expiryDuration","type":"uint256"}],"name":"setTimes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sgpCapDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"sgpOnSportIdEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"sgpRiskPerCombination","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"sgpSpentOnGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"spentOnGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sportsAMM","outputs":[{"internalType":"contract ISportsAMMV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"proxyAddress","type":"address"}],"name":"transferOwnershipAtInit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"uint16","name":"sportId","type":"uint16"},{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint8","name":"status","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"},{"internalType":"uint24","name":"playerId","type":"uint24"},{"internalType":"uint256[]","name":"odds","type":"uint256[]"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint8","name":"position","type":"uint8"},{"components":[{"internalType":"uint16","name":"typeId","type":"uint16"},{"internalType":"uint8","name":"position","type":"uint8"},{"internalType":"int24","name":"line","type":"int24"}],"internalType":"struct ISportsAMMV2.CombinedPosition[][]","name":"combinedPositions","type":"tuple[][]"}],"internalType":"struct ISportsAMMV2.TradeData","name":"_marketTradeData","type":"tuple"},{"internalType":"bytes32","name":"_rootPerGame","type":"bytes32"}],"name":"verifyMerkleTree","outputs":[],"stateMutability":"pure","type":"function"}]
608060405234801561001057600080fd5b50615d9f80620000216000396000f3fe608060405234801561001057600080fd5b50600436106104d85760003560e01c80638ff9d5cf11610283578063c6334f9f1161015c578063e365da78116100ce578063ebc7977211610092578063ebc7977214610baf578063ed29593014610bb7578063ee3d15fa14610bca578063f9c2262214610bdd578063f9ebd4c814610bf0578063ff527ee314610bf957600080fd5b8063e365da7814610b40578063e625afc614610b60578063e88698bf14610b73578063ea8b414014610b7c578063eafea26514610b9c57600080fd5b8063d5bdface11610120578063d5bdface14610ad5578063d8ea6f7514610ae8578063dc55793614610afb578063dddf183514610b0e578063df8974d014610b2e578063e202221314610b3757600080fd5b8063c6334f9f14610a3e578063c758d1f514610a47578063c992528814610a5a578063ca9ef2e614610a6d578063ce440b9314610aa757600080fd5b8063a9dfd887116101f5578063c064649e116101b9578063c064649e146109c9578063c2a16a98146109dc578063c3108a03146109ef578063c360aded146109f7578063c3b83f5f14610a18578063c5d89be814610a2b57600080fd5b8063a9dfd88714610988578063aa0f0bb01461099b578063b3ee1424146109a4578063b7d33278146109ad578063b80cd435146109c057600080fd5b806399182a821161024757806399182a821461092a578063a01045611461093d578063a33a154e14610946578063a5f32b1e1461094f578063a90888fc14610962578063a9772e781461097557600080fd5b80638ff9d5cf146108c157806391b4ded9146108d457806391db39db146108dd57806393de77921461090057806395aa9d641461092257600080fd5b8063481c6a75116103b55780635e0d66b0116103275780637647be22116102eb5780637647be221461085857806379ba5097146108605780637a0918cf146108685780637daed3291461087b5780638bb78dbd1461088e5780638da5cb5b146108ae57600080fd5b80635e0d66b0146107f6578063603157861461080957806362185d9f1461082957806367c241241461083c578063689df56e1461084f57600080fd5b806353a47bb71161037957806353a47bb71461077d57806354c054511461079057806359dc8257146107a35780635c975abb146107b65780635cab25d9146107c35780635d6a738c146107d657600080fd5b8063481c6a7514610712578063489685b4146107425780634af9ffae146107625780634dfbc89c1461076b5780635037dc991461077457600080fd5b80632367b6ae1161044e5780633305a15d116104125780633305a15d14610693578063363bf964146106b35780633f282a8d146106c6578063404f5788146106d557806341dcd5fe14610700578063422f96bf1461070957600080fd5b80632367b6ae146106005780632a8321b2146106135780632b4656c8146106335780632b7288ae1461064657806331483e0f1461065957600080fd5b80631401f934116104a05780631401f9341461058b5780631627540c146105ab57806316c38b3c146105be5780631ad483b5146105d157806322434836146105e457806323548b8b146105f757600080fd5b8063035478d2146104dd57806305954ad4146105155780630a2cc72c146105435780630d1a2f891461055857806313af403514610578575b600080fd5b6105006104eb3660046148e2565b60226020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6105356105233660046148fd565b60176020526000908152604090205481565b60405190815260200161050c565b61055661055136600461496f565b610c21565b005b6105356105663660046148fd565b600f6020526000908152604090205481565b6105566105863660046149da565b610cd3565b61059e610599366004614a08565b610def565b60405161050c9190614a3b565b6105566105b93660046149da565b611192565b6105566105cc366004614ac8565b6111e8565b6105566105df366004614ae5565b61125a565b6105566105f2366004614b11565b611368565b61053560105481565b61055661060e366004614ea2565b6113b8565b6105356106213660046148fd565b60256020526000908152604090205481565b610556610641366004614ee6565b6113c6565b610556610654366004614f54565b611535565b610535610667366004614fdb565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b6105356106a13660046148fd565b60236020526000908152604090205481565b6105566106c136600461500d565b611658565b610535671bc16d674ec8000081565b6105356106e3366004614b11565b600b60209081526000928352604080842090915290825290205481565b61053560195481565b610535601a5481565b60055461072a9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161050c565b61075561075036600461504d565b611741565b60405161050c91906150b0565b61053561012c81565b61053560115481565b61053560245481565b60015461072a906001600160a01b031681565b61055661079e366004615226565b611979565b6105356107b13660046152ac565b611c68565b6003546105009060ff1681565b6105566107d1366004615328565b611c87565b6105356107e43660046148fd565b60096020526000908152604090205481565b61055661080436600461504d565b611c9f565b6105356108173660046148fd565b60126020526000908152604090205481565b61055661083736600461504d565b611da1565b61055661084a3660046148fd565b611f61565b61053560085481565b61053561206b565b610556612084565b610556610876366004615356565b61215c565b610556610889366004614b11565b61225b565b61053561089c3660046148fd565b600a6020526000908152604090205481565b60005461072a906001600160a01b031681565b60065461072a906001600160a01b031681565b61053560025481565b6105006108eb3660046148fd565b60156020526000908152604090205460ff1681565b61050061090e3660046148e2565b602080526000908152604090205460ff1681565b6105356122d2565b61053561093836600461538d565b6122ea565b61053560265481565b610535601f5481565b61055661095d3660046153c2565b612300565b610535610970366004615445565b6123bc565b61055661098336600461559f565b6125b4565b610556610996366004615670565b612879565b610535600d5481565b610535601d5481565b6105566109bb36600461578a565b612a04565b61053560275481565b6105566109d7366004614b11565b612a5e565b6105566109ea3660046157af565b612b7b565b610535600481565b610a0a610a053660046157f2565b612c5e565b60405161050c929190615871565b610556610a263660046149da565b612ec4565b610556610a393660046158d1565b612fb4565b61053560185481565b610556610a553660046148fd565b61302e565b60075461072a906001600160a01b031681565b610535610a7b366004614fdb565b601660209081526000948552604080862082529385528385208152918452828420909152825290205481565b610500610ab5366004614b11565b601460209081526000928352604080842090915290825290205460ff1681565b610556610ae3366004614b11565b613138565b610556610af63660046148fd565b6131b1565b610556610b0936600461504d565b6131ee565b610535610b1c3660046148fd565b601e6020526000908152604090205481565b610535601c5481565b61053560215481565b610535610b4e3660046148fd565b60136020526000908152604090205481565b610556610b6e36600461504d565b6133ae565b610535601b5481565b610535610b8a3660046148fd565b600e6020526000908152604090205481565b610535610baa366004615445565b6134a3565b6105566134c5565b610556610bc53660046148fd565b613523565b610556610bd83660046148fd565b613588565b610556610beb366004615907565b6135f0565b61053560285481565b610c0c610c07366004615942565b613667565b6040805192835260208301919091520161050c565b610c2961389b565b60005b82811015610ccd576000848483818110610c4857610c4861599e565b9050602002016020810190610c5d91906148e2565b61ffff8116600081815260226020908152604091829020805460ff19168815159081179091558251938452908301529192507f6df8945bb4c412ec4a960d2d0c8d268565213a3ef867bd9c00ed2c104932513f910160405180910390a15080610cc5816159ca565b915050610c2c565b50505050565b6001600160a01b038116610d2a5760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064015b60405180910390fd5b600154600160a01b900460ff1615610d965760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610d21565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b0383166001600160a01b0319909116178155604051600080516020615d4a83398151915291610de49184906159e3565b60405180910390a150565b606060018260ff16111580610e0a57508260ff168260ff1610155b15610e2857604051632a6c01d760e21b815260040160405180910390fd5b600160005b8360ff168160ff161015610e7c57610e468160016159fd565b60ff16610e538287615a16565b610e609060ff1684615a2f565b610e6a9190615a46565b9150610e7581615a68565b9050610e2d565b506000816001600160401b03811115610e9757610e97614b33565b604051908082528060200260200182016040528015610eca57816020015b6060815260200190600190039081610eb55790505b50905060008460ff166001600160401b03811115610eea57610eea614b33565b604051908082528060200260200182016040528015610f13578160200160208202803683370190505b50905060005b8560ff168160ff161015610f5f5780828260ff1681518110610f3d57610f3d61599e565b60ff90921660209283029190910190910152610f5881615a68565b9050610f19565b5060005b60008660ff166001600160401b03811115610f8057610f80614b33565b604051908082528060200260200182016040528015610fa9578160200160208202803683370190505b50905060005b8760ff168160ff16101561101157838160ff1681518110610fd257610fd261599e565b6020026020010151828260ff1681518110610fef57610fef61599e565b60ff9092166020928302919091019091015261100a81615a68565b9050610faf565b50808483815181106110255761102561599e565b6020026020010181905250818061103b906159ca565b925060019050875b60ff81161561117057611057600182615a16565b611061908a615a16565b61106b908b615a16565b60ff168561107a600184615a16565b60ff168151811061108d5761108d61599e565b602002602001015160ff16101561115e57846110aa600183615a16565b60ff16815181106110bd576110bd61599e565b6020026020010180518091906110d290615a68565b60ff16905250805b8960ff168160ff16101561115457856110f4600183615a16565b60ff16815181106111075761110761599e565b6020026020010151600161111b91906159fd565b868260ff16815181106111305761113061599e565b60ff909216602092830291909101909101528061114c81615a68565b9150506110da565b5060009150611170565b8061116881615a87565b915050611043565b50801561117e575050611185565b5050610f63565b5090925050505b92915050565b61119a61389b565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610de4565b6111f061389b565b60035460ff16151581151514611257576003805460ff191682151590811790915560ff161561121e57426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610de4565b50565b60005433906001600160a01b03168114806112e8575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906112a7908490600190600401615aa4565b602060405180830381865afa1580156112c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e89190615ad1565b6113045760405162461bcd60e51b8152600401610d2190615aee565b6000848152601260209081526040808320869055601382529182902084905581518681529081018590529081018390527f73231c1da1a7341edd4af21892fc5e1c1f340ae5726ee3e20714c146c968558a906060015b60405180910390a150505050565b61137061389b565b601c829055601d81905560408051838152602081018390527f8f8d0d2155084c34c7e189b664aa128aebfd57e564d2d01c82a148d3da3a3bbc91015b60405180910390a15050565b6113c2828261390f565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561140b5750825b90506000826001600160401b031660011480156114275750303b155b905081158015611435575080155b156114535760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561147d57845460ff60401b1916600160401b1785555b6114868c610cd3565b61148e6134c5565b60058054610100600160a81b0319166101006001600160a01b038e81169190910291909117909155600680546001600160a01b031916918c169190911790556008899055600d88905560108790556011869055831561152757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b60005433906001600160a01b03168114806115c3575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611582908490600190600401615aa4565b602060405180830381865afa15801561159f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c39190615ad1565b6115df5760405162461bcd60e51b8152600401610d2190615aee565b60005b8451811015611651576116418582815181106116005761160061599e565b602002602001015185838151811061161a5761161a61599e565b60200260200101518584815181106116345761163461599e565b602002602001015161396d565b61164a816159ca565b90506115e2565b5050505050565b61166061389b565b6001600160a01b038316158061167d57506001600160a01b038216155b8061168f57506001600160a01b038116155b156116ad5760405163e6c4247b60e01b815260040160405180910390fd5b60058054610100600160a81b0319166101006001600160a01b0386811691820292909217909255600680546001600160a01b03199081168684169081179092556007805490911692851692831790556040805193845260208401919091528201527fbbfb274df95bebde0669697bf0d15986b4ad73e11c495ae4e2d08d1bc5c90bad906060015b60405180910390a1505050565b606082516001600160401b0381111561175c5761175c614b33565b60405190808252806020026020018201604052801561179557816020015b611782614867565b81526020019060019003908161177a5790505b50905060005b83518110156119725760008482815181106117b8576117b861599e565b60200260200101519050600084516001600160401b038111156117dd576117dd614b33565b60405190808252806020026020018201604052801561182257816020015b60408051808201909152600080825260208201528152602001906001900390816117fb5790505b50905060005b85518110156118b95760008682815181106118455761184561599e565b602002602001015190506040518060400160405280828152602001600b600087815260200190815260200160002060008481526020019081526020016000205481525083838151811061189a5761189a61599e565b60200260200101819052505080806118b1906159ca565b915050611828565b506040805160608082018352600085815260096020908152848220548452868252600a8152848220548185015283850186905284518086018652878352601282528583205481528783526013825285832054818301528551608081018752888152808301869052888452600e9092529185902054948101949094529083018190528651919290918790879081106119525761195261599e565b6020026020010181905250505050508061196b906159ca565b905061179b565b5092915050565b60075433906001600160a01b031681146119c65760405162461bcd60e51b815260206004820152600e60248201526d13db9b1e505353505b1b1bddd95960921b6044820152606401610d21565b865160005b81811015611c445760008982815181106119e7576119e761599e565b6020908102919091018101518082015161ffff16600090815291805260409091205490915060ff168015611a1c575060018a51115b15611a3a5760405163f37139c760e01b815260040160405180910390fd5b60e0810151610120820151815160ff821610611a695760405163673f032f60e11b815260040160405180910390fd5b611a7283613a13565b611a8f57604051633a67d48160e01b815260040160405180910390fd5b6000828260ff1681518110611aa657611aa661599e565b6020026020010151600014611af557828260ff1681518110611aca57611aca61599e565b60200260200101518c670de0b6b3a7640000611ae69190615a2f565b611af09190615a46565b611af8565b60005b90508b811115611c2f576000611b0e8d83615b15565b90508c915060018a60ff161115611b9e57611b31670de0b6b3a764000088615a2f565b60ff8b16611b47670de0b6b3a764000084615a2f565b611b519190615a2f565b611b5b9190615a46565b9050611b6f670de0b6b3a764000088615a2f565b8a60ff16670de0b6b3a76400008f611b879190615a2f565b611b919190615a2f565b611b9b9190615a46565b91505b611ba985828d613b1a565b15611bc757604051635ddb506960e01b815260040160405180910390fd5b611bd18582613b9d565b15611bef57604051632d173bb760e11b815260040160405180910390fd5b88158015611c035750611c038e8688613be6565b15611c215760405163991d7d0b60e01b815260040160405180910390fd5b611c2d8582848e613cce565b505b5050505080611c3d906159ca565b90506119cb565b508215611c5e57611c5e88611c598989615b15565b613e3e565b5050505050505050565b6000611c798888888888888861402d565b90505b979650505050505050565b611c8f61389b565b611c9a838383614304565b505050565b60005433906001600160a01b0316811480611d2d575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611cec908490600190600401615aa4565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190615ad1565b611d495760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd57611d91848281518110611d6a57611d6a61599e565b6020026020010151848381518110611d8457611d8461599e565b6020026020010151614369565b611d9a816159ca565b9050611d4c565b60005433906001600160a01b0316811480611e2f575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611dee908490600190600401615aa4565b602060405180830381865afa158015611e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2f9190615ad1565b611e4b5760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd57601154838281518110611e6c57611e6c61599e565b60200260200101511115611e9357604051638f651fb760e01b815260040160405180910390fd5b828181518110611ea557611ea561599e565b6020026020010151600f6000868481518110611ec357611ec361599e565b60200260200101518152602001908152602001600020819055507fad3938ddda68b0c35a94769b9bfe09359d462174ac669a50c54f6913ffee2387848281518110611f1057611f1061599e565b6020026020010151848381518110611f2a57611f2a61599e565b6020026020010151604051611f49929190918252602082015260400190565b60405180910390a1611f5a816159ca565b9050611e4e565b60005433906001600160a01b0316811480611fef575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611fae908490600190600401615aa4565b602060405180830381865afa158015611fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fef9190615ad1565b61200b5760405162461bcd60e51b8152600401610d2190615aee565b8115806120185750600a82115b15612036576040516315fe1d1760e31b815260040160405180910390fd5b60248290556040518281527f0c239364e4f5adc356c13510be0c9eb7d5cf361baf8315222cd91233a10c599d906020016113ac565b6000806027541161207d575061012c90565b5060275490565b6001546001600160a01b031633146120fc5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610d21565b600054600154604051600080516020615d4a8339815191529261212d926001600160a01b03918216929116906159e3565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60005433906001600160a01b03168114806121ea575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906121a9908490600190600401615aa4565b602060405180830381865afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190615ad1565b6122065760405162461bcd60e51b8152600401610d2190615aee565b61ffff831660008181526020808052604091829020805460ff19168615159081179091558251938452908301527fb51232e4b8914c35311ac17f4d60b83e968f42365fe9f84d7e79f678971f88bf9101611734565b61226361389b565b601054821180612274575060115481115b156122925760405163b4fa3fb360e01b815260040160405180910390fd5b6008829055600d81905560408051838152602081018390527f66f5882a9629034cfbaab9f0e58425ef198945ed475f313968d861fc699c03c091016113ac565b600080602654116122e35750600490565b5060265490565b60006122f78484846143d4565b50949350505050565b61230861389b565b831580612313575081155b156123315760405163a600c81d60e01b815260040160405180910390fd5b60005b848110156123b45760008686838181106123505761235061599e565b90506020020135905060005b8481101561239f5760008686838181106123785761237861599e565b90506020020135905061238c838287614304565b5080612397816159ca565b91505061235c565b505080806123ac906159ca565b915050612334565b505050505050565b60006123c782614409565b600082516001600160401b038111156123e2576123e2614b33565b60405190808252806020026020018201604052801561240b578160200160208202803683370190505b509050600083516001600160401b0381111561242957612429614b33565b604051908082528060200260200182016040528015612452578160200160208202803683370190505b509050600084516001600160401b0381111561247057612470614b33565b604051908082528060200260200182016040528015612499578160200160208202803683370190505b50905060005b855181101561257e578581815181106124ba576124ba61599e565b6020026020010151600001518482815181106124d8576124d861599e565b6020026020010181815250508581815181106124f6576124f661599e565b6020026020010151604001518382815181106125145761251461599e565b602002602001019061ffff16908161ffff168152505085818151811061253c5761253c61599e565b602002602001015160c0015182828151811061255a5761255a61599e565b62ffffff90921660209283029190910190910152612577816159ca565b905061249f565b5082828260405160200161259493929190615b68565b604051602081830303815290604052805190602001209350505050919050565b60005433906001600160a01b0316811480612642575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590612601908490600190600401615aa4565b602060405180830381865afa15801561261e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126429190615ad1565b61265e5760405162461bcd60e51b8152600401610d2190615aee565b60005b86518110156128705760105483828151811061267f5761267f61599e565b602002602001015111156126a65760405163195bab4d60e31b815260040160405180910390fd5b8281815181106126b8576126b861599e565b6020026020010151600c60008984815181106126d6576126d661599e565b6020026020010151815260200190815260200160002060008884815181106127005761270061599e565b602002602001015161ffff168152602001908152602001600020600087848151811061272e5761272e61599e565b602002602001015162ffffff168152602001908152602001600020600086848151811061275d5761275d61599e565b602002602001015160020b8152602001908152602001600020819055507fc14b7699de20e98a6336e1020b227f531f06ec5cc9d0f7ba40e51827524fb64a8782815181106127ad576127ad61599e565b60200260200101518783815181106127c7576127c761599e565b60200260200101518784815181106127e1576127e161599e565b60200260200101518785815181106127fb576127fb61599e565b60200260200101518786815181106128155761281561599e565b602002602001015160405161285895949392919094855261ffff93909316602085015262ffffff91909116604084015260020b6060830152608082015260a00190565b60405180910390a1612869816159ca565b9050612661565b50505050505050565b60005433906001600160a01b0316811480612907575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906128c6908490600190600401615aa4565b602060405180830381865afa1580156128e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129079190615ad1565b6129235760405162461bcd60e51b8152600401610d2190615aee565b60005b885181101561296e5761295e8982815181106129445761294461599e565b6020026020010151898381518110611d8457611d8461599e565b612967816159ca565b9050612926565b5060005b86518110156129c7576129b78782815181106129905761299061599e565b60200260200101518783815181106129aa576129aa61599e565b602002602001015161450e565b6129c0816159ca565b9050612972565b5060005b84518110156129f9576129e98582815181106116005761160061599e565b6129f2816159ca565b90506129cb565b505050505050505050565b612a0c61389b565b600082815260156020908152604091829020805460ff19168415159081179091558251858152918201527fd6607d95dba4bba9cc6488f5d59c8c13fd3393bb32e524cbfebe05e87796e77491016113ac565b60005433906001600160a01b0316811480612aec575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590612aab908490600190600401615aa4565b602060405180830381865afa158015612ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aec9190615ad1565b612b085760405162461bcd60e51b8152600401610d2190615aee565b811580612b155750600a82115b15612b33576040516315fe1d1760e31b815260040160405180910390fd5b6000838152601e602090815260409182902084905581518581529081018490527fc8ec738370e588095f95e158fd2cd81a0a2ce198cf844dfba650f0719abd4a949101611734565b601854861015612b9e57604051633c6ed54960e11b815260040160405180910390fd5b601b54851015612bc157604051630e10601360e31b815260040160405180910390fd5b601a54612bce8786615b15565b1115612bed5760405163245eadfb60e11b815260040160405180910390fd5b612bff82670de0b6b3a7640000615bfa565b84612c1285670de0b6b3a7640000615a2f565b612c1c9190615a46565b1115612c3b5760405163428637bb60e11b815260040160405180910390fd5b6019548111156123b4576040516350180cdd60e11b815260040160405180910390fd5b8351600090606090806001600160401b03811115612c7e57612c7e614b33565b604051908082528060200260200182016040528015612ca7578160200160208202803683370190505b5091506000600160ff861611815b83811015612eb75760008a8281518110612cd157612cd161599e565b6020908102919091018101518082015161ffff16600090815291805260409091205490915060ff168015612d055750600185115b93508060e0015181610120015160ff1681518110612d2557612d2561599e565b602002602001015160001480612d685750670de0b6b3a76400008160e0015182610120015160ff1681518110612d5d57612d5d61599e565b602002602001015110155b15612d865760405163fdfffca760e01b815260040160405180910390fd5b60008160e0015182610120015160ff1681518110612da657612da661599e565b60200260200101518b670de0b6b3a7640000612dc29190615a2f565b612dcc9190615a46565b90506000612dda8c83615b15565b90508415612e2157612df4670de0b6b3a764000088615a2f565b60ff8b16612e0a670de0b6b3a764000084615a2f565b612e149190615a2f565b612e1e9190615a46565b90505b8580612e335750612e338d8486613be6565b15612e415760029850612ea3565b612e4c83828d613b1a565b80612e5c5750612e5c8382613b9d565b15612ea3576001888581518110612e7557612e7561599e565b911515602092830291909101909101526000896002811115612e9957612e9961585b565b03612ea357600198505b50505080612eb0906159ca565b9050612cb5565b5050505094509492505050565b612ecc61389b565b6001600160a01b038116612f145760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610d21565b600154600160a81b900460ff1615612f645760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610d21565b600080546001600160a01b0383166001600160a01b031990911681179091556001805460ff60a81b1916600160a81b179055604051600080516020615d4a83398151915291610de49184906159e3565b8051825114612fd657604051630469224f60e41b815260040160405180910390fd5b60005b8251811015611c9a5761301e838281518110612ff757612ff761599e565b60200260200101518383815181106130115761301161599e565b602002602001015161390f565b613027816159ca565b9050612fd9565b60005433906001600160a01b03168114806130bc575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c3959061307b908490600190600401615aa4565b602060405180830381865afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190615ad1565b6130d85760405162461bcd60e51b8152600401610d2190615aee565b8115806130e55750600a82115b15613103576040516315fe1d1760e31b815260040160405180910390fd5b601f8290556040518281527f71ada83bfd8e30b300b57f2f9d90cc70c7d3b027cd3e38967d588ec4378ecf62906020016113ac565b61314061389b565b600854821115806131535750600d548111155b156131715760405163b4fa3fb360e01b815260040160405180910390fd5b6010829055601181905560408051838152602081018390527f3ef96d50e94656fa01fa9c9a131bc026d07ed3bb6c53daff5695c3a4a2bad54691016113ac565b6131b961389b565b60278190556040518181527f2aed621c6a68410536f043b174237977468d968075c27301fe6cedddaf59afdd90602001610de4565b60005433906001600160a01b031681148061327c575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c3959061323b908490600190600401615aa4565b602060405180830381865afa158015613258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327c9190615ad1565b6132985760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd576011548382815181106132b9576132b961599e565b602002602001015111156132e057604051638f651fb760e01b815260040160405180910390fd5b8281815181106132f2576132f261599e565b6020026020010151600e60008684815181106133105761331061599e565b60200260200101518152602001908152602001600020819055507fbc374ebda39a7586f4916c1911f82c2b045a44439acc485b4097428bf24ab9f984828151811061335d5761335d61599e565b60200260200101518483815181106133775761337761599e565b6020026020010151604051613396929190918252602082015260400190565b60405180910390a16133a7816159ca565b905061329b565b60005433906001600160a01b031681148061343c575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906133fb908490600190600401615aa4565b602060405180830381865afa158015613418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343c9190615ad1565b6134585760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd576134938482815181106134795761347961599e565b60200260200101518483815181106129aa576129aa61599e565b61349c816159ca565b905061345b565b6000806134af836123bc565b6000908152602560205260409020549392505050565b60055460ff161561350e5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610d21565b6005805460ff19166001908117909155600455565b61352b61389b565b670de0b6b3a7640000811061355357604051630e10601360e31b815260040160405180910390fd5b60288190556040518181527ff3005845300e277fa1a0c8e4d71c09c1a421abb1c6812160d09141a1528d05f090602001610de4565b61359061389b565b80158061359d5750600a81115b156135bb5760405163b4fa3fb360e01b815260040160405180910390fd5b60268190556040518181527faf1ad9a324dfc9ba37b0b5b08ac0f96d21ea55ca3d07a007277c826be5d4594490602001610de4565b6135f861389b565b60188590556019849055601a839055601b8290556021819055604080518681526020810186905290810184905260608101839052608081018290527f6cde94c5ae9fdbda396942be459bab30f8a54e9fc195bca3ab452ab19d4e04069060a00160405180910390a15050505050565b6000806000613677875187610def565b8051602154919250908111156136a057604051633c357c8360e11b815260040160405180910390fd5b6000670de0b6b3a7640000826136b6828a615a2f565b6136c09190615a46565b6136ca9190615a46565b905060005b8281101561386f5760008482815181106136eb576136eb61599e565b60200260200101519050600080600090505b82518160ff161015613826576000838260ff16815181106137205761372061599e565b6020026020010151905060008e8260ff16815181106137415761374161599e565b602002602001015160e001518f8360ff16815181106137625761376261599e565b6020026020010151610120015160ff16815181106137825761378261599e565b60200260200101519050670de0b6b3a7640000818d6137a19190615a2f565b6137ab9190615a46565b6137bd8d670de0b6b3a7640000615bfa565b6137c79190615b15565b6137d9670de0b6b3a764000083615a2f565b6137e39190615a46565b9050831561380d57670de0b6b3a76400006137fe8286615a2f565b6138089190615a46565b61380f565b805b93505050808061381e90615a68565b9150506136fd565b50801561385c57600081613842670de0b6b3a764000087615a2f565b61384c9190615a46565b9050613858818a615bfa565b9850505b505080613868906159ca565b90506136cf565b508461388388670de0b6b3a7640000615a2f565b61388d9190615a46565b935050505094509492505050565b6000546001600160a01b0316331461390d5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610d21565b565b600061391a836145a4565b905061392c83610100015183836146a4565b611c9a5760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81b9bdd081d985b1a5960721b6044820152606401610d21565b60008381526009602052604081205461398857600854613998565b6000848152600960205260409020545b9050808211156139bb5760405163195bab4d60e31b815260040160405180910390fd5b6000848152600b6020908152604080832086845282529182902084905581518681529081018590529081018390527f38bba85d238b3778cdb675a039211d90996b1dc4b6c6301971bdbd43fbfe88649060600161135a565b600080826060015190506000600660009054906101000a90046001600160a01b03166001600160a01b031663397f7823856000015186604001518760c001518860a001518961014001518a610120015160ff1681518110613a7657613a7661599e565b60200260200101516040518663ffffffff1660e01b8152600401613a9e959493929190615c0d565b602060405180830381865afa158015613abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adf9190615ad1565b9050836080015160ff166000148015613af6575080155b15613b1357428210613b1357601c54613b0f4284615b15565b1192505b5050919050565b8251604084015160c0850151602086015160a08701516060880151600095949392613b4b928692869186918b61402d565b600084815260166020908152604080832061ffff87168452825280832062ffffff8616845282528083206101208c015160ff168452909152902054613b91908890615c9c565b13979650505050505050565b600080836000015190506000613bbc82866020015187606001516143d4565b506000838152601760205260409020549091508190613bdc908690615bfa565b1195945050505050565b600080613bf4836001615bfa565b90505b8451811015613cc6576000858281518110613c1457613c1461599e565b6020026020010151905080600001518560000151148015613c445750806020015161ffff16856020015161ffff16145b15613cb55760208086015161ffff1660009081526015909152604090205460ff161580613c8257508060c0015162ffffff168560c0015162ffffff16145b80613c94575060c085015162ffffff16155b80613ca6575060c081015162ffffff16155b15613cb5576001925050613cc6565b50613cbf816159ca565b9050613bf7565b509392505050565b8351604085015160c086015161012087015160e08801515160208111600087613cf75782613d20565b82613d038560036159fd565b60ff1611613d1e57613d168460036159fd565b60ff16613d20565b825b905060005b81811015613e0d57600088815260166020908152604080832061ffff8b168452825280832062ffffff8a168452825280832084845290915290205460ff86168203613dac57613d748c82615c9c565b60008a815260166020908152604080832061ffff8d168452825280832062ffffff8c1684528252808320868452909152902055613dfc565b831580613db95750600081135b15613dfc57613dc88b82615cc4565b60008a815260166020908152604080832061ffff8d168452825280832062ffffff8c16845282528083208684529091529020555b50613e06816159ca565b9050613d25565b50600087815260176020526040812080548c9290613e2c908490615bfa565b90915550505050505050505050505050565b60008060245411613e50576002613e54565b6024545b905060001960005b8451811015613fb2576000858281518110613e7957613e7961599e565b60200260200101516000015190506000805b83811015613ed05782888281518110613ea657613ea661599e565b60200260200101516000015103613ec05760019150613ed0565b613ec9816159ca565b9050613e8b565b508015613ede575050613fa2565b600080613f26848a8781518110613ef757613ef761599e565b6020026020010151602001518b8881518110613f1557613f1561599e565b6020026020010151606001516143d4565b9092509050613f358783615a46565b600085815260236020526040902054613f4f908a90615bfa565b1115613f6e576040516313fb3c2560e21b815260040160405180910390fd5b600084815260236020526040812080548a9290613f8c908490615bfa565b909155505085811015613f9d578095505b505050505b613fab816159ca565b9050613e5c565b506000613fbe856123bc565b9050613fca8383615a46565b600082815260256020526040902054613fe4908690615bfa565b1115614003576040516313fb3c2560e21b815260040160405180910390fd5b60008181526025602052604081208054869290614021908490615bfa565b90915550505050505050565b600042831115611c7c576000888152600c6020908152604080832061ffff8a168452825280832062ffffff891684528252808320600288900b84529091529020546140a2576000888152600c6020908152604080832061ffff8a168452825280832083805282528083209091529020546140da565b6000888152600c6020908152604080832061ffff8a168452825280832062ffffff891684528252808320600288900b84529091529020545b9050806000036141ce5761ffff87166000908152600960205260409020548061410557600854614107565b805b915081905061ffff8716156141cc5761ffff8089166000908152600b60209081526040808320938b168352928152828220548c8352600c82528383208380528252838320825283832090915291902054801561418f5781614169600283615a46565b1080614173575081155b61417d5781614188565b614188600282615a46565b93506141c9565b819350836000036141c95761ffff8a166000908152600a6020526040902054806141c3576141be600285615a46565b6141c5565b805b9450505b50505b505b81156142275761ffff87166000908152601e6020526040902054614205576000601f54116141fd57600161421a565b601f5461421a565b61ffff87166000908152601e60205260409020545b6142249082615a46565b90505b61ffff871660009081526012602052604090205480156142f857600061424d4286615b15565b61ffff8a166000908152601360205260408120549192509061427757671bc16d674ec8000061428c565b61ffff8a166000908152601360205260409020545b61429e670de0b6b3a764000086615a2f565b6142a89190615a46565b90508282106142b9578093506142f5565b60006142c58286615b15565b905083816142d38583615b15565b6142dd9190615a2f565b6142e79190615a46565b6142f19083615bfa565b9450505b50505b50979650505050505050565b6000838152601460209081526040808320858452825291829020805460ff19168415159081179091558251868152918201859052918101919091527ffdd6a752e1596b39b7dc599993db99ce8fcf9f740e9beb9fcd057228e19fc8db90606001611734565b60105481111561438c5760405163195bab4d60e31b815260040160405180910390fd5b60008281526009602090815260409182902083905581518481529081018390527fdd336d23e5a148c17f76389d3ac4d0ab595ec1bc30e226f1d6ee3cd7714dd6f891016113ac565b6000806143e98585600080600088600061402d565b90506143f585856146ba565b6143ff9082615a2f565b9150935093915050565b805160005b614419600183615b15565b811015611c9a57600061442d826001615bfa565b90505b828110156144fd57600061447685848151811061444f5761444f61599e565b60200260200101518684815181106144695761446961599e565b60200260200101516146fc565b13156144eb5783818151811061448e5761448e61599e565b60200260200101518483815181106144a8576144a861599e565b60200260200101518584815181106144c2576144c261599e565b602002602001018684815181106144db576144db61599e565b6020026020010182905282905250505b806144f5816159ca565b915050614430565b50614507816159ca565b905061440e565b60008281526009602052604081205461452957600854614539565b6000838152600960205260409020545b90508082111561455c5760405163195bab4d60e31b815260040160405180910390fd5b6000838152600a602090815260409182902084905581518581529081018490527ffbd9918f75c3522536de3aee36688a9c85119cfd97fab820e6c2a4bf5b08f4699101611734565b61014081015151600090815b818110156146335783610140015181815181106145cf576145cf61599e565b6020026020010151516000146146235760405162461bcd60e51b815260206004820152601960248201527810dbdb589a5b9959081b585c9ad95d1cc8191a5cd8589b1959603a1b6044820152606401610d21565b61462c816159ca565b90506145b0565b508260000151836020015161ffff16846040015161ffff168560600151866080015160ff168760a0015160020b8860c0015162ffffff168960e00151604051602001614686989796959493929190615ce4565b60405160208183030381529060405280519060200120915050919050565b6000826146b185846147f0565b14949350505050565b6000828152600f60205260408120549081900361118c5761ffff82166000908152600e6020526040902054806146f257600d546146f4565b805b949350505050565b805182516000911115614712575060001961118c565b8151835111156147245750600161118c565b816040015161ffff16836040015161ffff161015614745575060001961118c565b816040015161ffff16836040015161ffff1611156147655750600161118c565b8160c0015162ffffff168360c0015162ffffff161015614788575060001961118c565b8160c0015162ffffff168360c0015162ffffff1611156147aa5750600161118c565b8160a0015160020b8360a0015160020b12156147c9575060001961118c565b8160a0015160020b8360a0015160020b13156147e75750600161118c565b50600092915050565b600081815b8451811015613cc657614821828683815181106148145761481461599e565b6020026020010151614835565b91508061482d816159ca565b9150506147f5565b6000818310614851576000828152602084905260409020614860565b60008381526020839052604090205b9392505050565b60405180608001604052806000815260200161489d60405180606001604052806000815260200160008152602001606081525090565b8152602001600081526020016148c6604051806040016040528060008152602001600081525090565b905290565b803561ffff811681146148dd57600080fd5b919050565b6000602082840312156148f457600080fd5b614860826148cb565b60006020828403121561490f57600080fd5b5035919050565b60008083601f84011261492857600080fd5b5081356001600160401b0381111561493f57600080fd5b6020830191508360208260051b850101111561495a57600080fd5b9250929050565b801515811461125757600080fd5b60008060006040848603121561498457600080fd5b83356001600160401b0381111561499a57600080fd5b6149a686828701614916565b90945092505060208401356149ba81614961565b809150509250925092565b6001600160a01b038116811461125757600080fd5b6000602082840312156149ec57600080fd5b81356146f2816149c5565b803560ff811681146148dd57600080fd5b60008060408385031215614a1b57600080fd5b614a24836149f7565b9150614a32602084016149f7565b90509250929050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015614aba57888603603f19018552825180518088529088019088880190845b81811015614aa457835160ff168352928a0192918a0191600101614a85565b5090975050509386019391860191600101614a63565b509398975050505050505050565b600060208284031215614ada57600080fd5b81356146f281614961565b600080600060608486031215614afa57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215614b2457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b6b57614b6b614b33565b60405290565b60405161016081016001600160401b0381118282101715614b6b57614b6b614b33565b604051601f8201601f191681016001600160401b0381118282101715614bbc57614bbc614b33565b604052919050565b8035600281900b81146148dd57600080fd5b803562ffffff811681146148dd57600080fd5b60006001600160401b03821115614c0257614c02614b33565b5060051b60200190565b600082601f830112614c1d57600080fd5b81356020614c32614c2d83614be9565b614b94565b82815260059290921b84018101918181019086841115614c5157600080fd5b8286015b84811015614c6c5780358352918301918301614c55565b509695505050505050565b600082601f830112614c8857600080fd5b81356020614c98614c2d83614be9565b82815260059290921b84018101918181019086841115614cb757600080fd5b8286015b84811015614c6c5780356001600160401b03811115614cda5760008081fd5b8701603f81018913614cec5760008081fd5b848101356040614cfe614c2d83614be9565b8281526060928302840182019288820191908d851115614d1e5760008081fd5b948301945b84861015614d7b5780868f031215614d3b5760008081fd5b614d43614b49565b614d4c876148cb565b8152614d598b88016149f7565b8b820152614d68858801614bc4565b8186015283529485019491890191614d23565b50875250505092840192508301614cbb565b60006101608284031215614da057600080fd5b614da8614b71565b905081358152614dba602083016148cb565b6020820152614dcb604083016148cb565b604082015260608201356060820152614de6608083016149f7565b6080820152614df760a08301614bc4565b60a0820152614e0860c08301614bd6565b60c082015260e08201356001600160401b0380821115614e2757600080fd5b614e3385838601614c0c565b60e084015261010091508184013581811115614e4e57600080fd5b614e5a86828701614c0c565b83850152506101209150614e6f8285016149f7565b8284015261014091508184013581811115614e8957600080fd5b614e9586828701614c77565b8385015250505092915050565b60008060408385031215614eb557600080fd5b82356001600160401b03811115614ecb57600080fd5b614ed785828601614d8d565b95602094909401359450505050565b600080600080600080600060e0888a031215614f0157600080fd5b8735614f0c816149c5565b96506020880135614f1c816149c5565b95506040880135614f2c816149c5565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b600080600060608486031215614f6957600080fd5b83356001600160401b0380821115614f8057600080fd5b614f8c87838801614c0c565b94506020860135915080821115614fa257600080fd5b614fae87838801614c0c565b93506040860135915080821115614fc457600080fd5b50614fd186828701614c0c565b9150509250925092565b60008060008060808587031215614ff157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561502257600080fd5b833561502d816149c5565b9250602084013561503d816149c5565b915060408401356149ba816149c5565b6000806040838503121561506057600080fd5b82356001600160401b038082111561507757600080fd5b61508386838701614c0c565b9350602085013591508082111561509957600080fd5b506150a685828601614c0c565b9150509250929050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561519857898403603f190186528251805185528881015160a08a8701819052815190870152808a015160c0870152880151606060e0870181905281516101008801819052918b019185906101208901905b8083101561515e5761514a82865180518252602090810151910152565b938d019360019290920191908c019061512d565b50848c0151898d01529382015193615182838a018680518252602090810151910152565b998c0199975050509389019350506001016150d8565b50919998505050505050505050565b600082601f8301126151b857600080fd5b813560206151c8614c2d83614be9565b82815260059290921b840181019181810190868411156151e757600080fd5b8286015b84811015614c6c5780356001600160401b0381111561520a5760008081fd5b6152188986838b0101614d8d565b8452509183019183016151eb565b60008060008060008060c0878903121561523f57600080fd5b86356001600160401b0381111561525557600080fd5b61526189828a016151a7565b9650506020870135945060408701359350606087013561528081614961565b925061528e608088016149f7565b915060a087013561529e81614961565b809150509295509295509295565b600080600080600080600060e0888a0312156152c757600080fd5b873596506152d7602089016148cb565b95506152e5604089016148cb565b94506152f360608901614bd6565b935061530160808901614bc4565b925060a0880135915060c088013561531881614961565b8091505092959891949750929550565b60008060006060848603121561533d57600080fd5b833592506020840135915060408401356149ba81614961565b6000806040838503121561536957600080fd5b615372836148cb565b9150602083013561538281614961565b809150509250929050565b6000806000606084860312156153a257600080fd5b833592506153b2602085016148cb565b9150604084013590509250925092565b6000806000806000606086880312156153da57600080fd5b85356001600160401b03808211156153f157600080fd5b6153fd89838a01614916565b9097509550602088013591508082111561541657600080fd5b5061542388828901614916565b909450925050604086013561543781614961565b809150509295509295909350565b60006020828403121561545757600080fd5b81356001600160401b0381111561546d57600080fd5b6146f4848285016151a7565b600082601f83011261548a57600080fd5b8135602061549a614c2d83614be9565b82815260059290921b840181019181810190868411156154b957600080fd5b8286015b84811015614c6c576154ce816148cb565b83529183019183016154bd565b600082601f8301126154ec57600080fd5b813560206154fc614c2d83614be9565b82815260059290921b8401810191818101908684111561551b57600080fd5b8286015b84811015614c6c5761553081614bd6565b835291830191830161551f565b600082601f83011261554e57600080fd5b8135602061555e614c2d83614be9565b82815260059290921b8401810191818101908684111561557d57600080fd5b8286015b84811015614c6c5761559281614bc4565b8352918301918301615581565b600080600080600060a086880312156155b757600080fd5b85356001600160401b03808211156155ce57600080fd5b6155da89838a01614c0c565b965060208801359150808211156155f057600080fd5b6155fc89838a01615479565b9550604088013591508082111561561257600080fd5b61561e89838a016154db565b9450606088013591508082111561563457600080fd5b61564089838a0161553d565b9350608088013591508082111561565657600080fd5b5061566388828901614c0c565b9150509295509295909350565b600080600080600080600060e0888a03121561568b57600080fd5b87356001600160401b03808211156156a257600080fd5b6156ae8b838c01614c0c565b985060208a01359150808211156156c457600080fd5b6156d08b838c01614c0c565b975060408a01359150808211156156e657600080fd5b6156f28b838c01614c0c565b965060608a013591508082111561570857600080fd5b6157148b838c01614c0c565b955060808a013591508082111561572a57600080fd5b6157368b838c01614c0c565b945060a08a013591508082111561574c57600080fd5b6157588b838c01614c0c565b935060c08a013591508082111561576e57600080fd5b5061577b8a828b01614c0c565b91505092959891949750929550565b6000806040838503121561579d57600080fd5b82359150602083013561538281614961565b60008060008060008060c087890312156157c857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806000806080858703121561580857600080fd5b84356001600160401b0381111561581e57600080fd5b61582a878288016151a7565b94505060208501359250604085013561584281614961565b9150615850606086016149f7565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b600060408201600385106158875761588761585b565b8483526020604081850152818551808452606086019150828701935060005b818110156158c45784511515835293830193918301916001016158a6565b5090979650505050505050565b600080604083850312156158e457600080fd5b82356001600160401b03808211156158fb57600080fd5b615083868387016151a7565b600080600080600060a0868803121561591f57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806000806080858703121561595857600080fd5b84356001600160401b0381111561596e57600080fd5b61597a878288016151a7565b945050615989602086016149f7565b93969395505050506040820135916060013590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016159dc576159dc6159b4565b5060010190565b6001600160a01b0392831681529116602082015260400190565b60ff818116838216019081111561118c5761118c6159b4565b60ff828116828216039081111561118c5761118c6159b4565b808202811582820484141761118c5761118c6159b4565b600082615a6357634e487b7160e01b600052601260045260246000fd5b500490565b600060ff821660ff8103615a7e57615a7e6159b4565b60010192915050565b600060ff821680615a9a57615a9a6159b4565b6000190192915050565b6001600160a01b03831681526040810160048310615ac457615ac461585b565b8260208301529392505050565b600060208284031215615ae357600080fd5b81516146f281614961565b6020808252600d908201526c24b73b30b634b229b2b73232b960991b604082015260600190565b8181038181111561118c5761118c6159b4565b600081518084526020808501945080840160005b83811015615b5d57815162ffffff1687529582019590820190600101615b3c565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b82811015615ba157815184529284019290840190600101615b85565b5050508381038285015285518082528683019183019060005b81811015615bda57835161ffff1683529284019291840191600101615bba565b50508481036040860152615bee8187615b28565b98975050505050505050565b8082018082111561118c5761118c6159b4565b600060a08201878352602061ffff80891682860152604062ffffff8916818701526060600289810b8289015260a0608089015285895180885260c08a019150868b01975060005b81811015615c885788518051881684528881015160ff1689850152860151840b868401529787019791840191600101615c54565b50909e9d5050505050505050505050505050565b8082018281126000831280158216821582161715615cbc57615cbc6159b4565b505092915050565b8181036000831280158383131683831282161715611972576119726159b4565b8881526000602089818401528860408401528760608401528660808401528560a08401528460c084015260e08301845182860160005b82811015615d3657815184529284019290840190600101615d1a565b50919d9c5050505050505050505050505056feb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159ca26469706673582212201a714f78f00f178b4b1acf5dbcf2dbfd6d8d4b5ec3f2b2dcd70de524bdd26f5164736f6c63430008140033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106104d85760003560e01c80638ff9d5cf11610283578063c6334f9f1161015c578063e365da78116100ce578063ebc7977211610092578063ebc7977214610baf578063ed29593014610bb7578063ee3d15fa14610bca578063f9c2262214610bdd578063f9ebd4c814610bf0578063ff527ee314610bf957600080fd5b8063e365da7814610b40578063e625afc614610b60578063e88698bf14610b73578063ea8b414014610b7c578063eafea26514610b9c57600080fd5b8063d5bdface11610120578063d5bdface14610ad5578063d8ea6f7514610ae8578063dc55793614610afb578063dddf183514610b0e578063df8974d014610b2e578063e202221314610b3757600080fd5b8063c6334f9f14610a3e578063c758d1f514610a47578063c992528814610a5a578063ca9ef2e614610a6d578063ce440b9314610aa757600080fd5b8063a9dfd887116101f5578063c064649e116101b9578063c064649e146109c9578063c2a16a98146109dc578063c3108a03146109ef578063c360aded146109f7578063c3b83f5f14610a18578063c5d89be814610a2b57600080fd5b8063a9dfd88714610988578063aa0f0bb01461099b578063b3ee1424146109a4578063b7d33278146109ad578063b80cd435146109c057600080fd5b806399182a821161024757806399182a821461092a578063a01045611461093d578063a33a154e14610946578063a5f32b1e1461094f578063a90888fc14610962578063a9772e781461097557600080fd5b80638ff9d5cf146108c157806391b4ded9146108d457806391db39db146108dd57806393de77921461090057806395aa9d641461092257600080fd5b8063481c6a75116103b55780635e0d66b0116103275780637647be22116102eb5780637647be221461085857806379ba5097146108605780637a0918cf146108685780637daed3291461087b5780638bb78dbd1461088e5780638da5cb5b146108ae57600080fd5b80635e0d66b0146107f6578063603157861461080957806362185d9f1461082957806367c241241461083c578063689df56e1461084f57600080fd5b806353a47bb71161037957806353a47bb71461077d57806354c054511461079057806359dc8257146107a35780635c975abb146107b65780635cab25d9146107c35780635d6a738c146107d657600080fd5b8063481c6a7514610712578063489685b4146107425780634af9ffae146107625780634dfbc89c1461076b5780635037dc991461077457600080fd5b80632367b6ae1161044e5780633305a15d116104125780633305a15d14610693578063363bf964146106b35780633f282a8d146106c6578063404f5788146106d557806341dcd5fe14610700578063422f96bf1461070957600080fd5b80632367b6ae146106005780632a8321b2146106135780632b4656c8146106335780632b7288ae1461064657806331483e0f1461065957600080fd5b80631401f934116104a05780631401f9341461058b5780631627540c146105ab57806316c38b3c146105be5780631ad483b5146105d157806322434836146105e457806323548b8b146105f757600080fd5b8063035478d2146104dd57806305954ad4146105155780630a2cc72c146105435780630d1a2f891461055857806313af403514610578575b600080fd5b6105006104eb3660046148e2565b60226020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6105356105233660046148fd565b60176020526000908152604090205481565b60405190815260200161050c565b61055661055136600461496f565b610c21565b005b6105356105663660046148fd565b600f6020526000908152604090205481565b6105566105863660046149da565b610cd3565b61059e610599366004614a08565b610def565b60405161050c9190614a3b565b6105566105b93660046149da565b611192565b6105566105cc366004614ac8565b6111e8565b6105566105df366004614ae5565b61125a565b6105566105f2366004614b11565b611368565b61053560105481565b61055661060e366004614ea2565b6113b8565b6105356106213660046148fd565b60256020526000908152604090205481565b610556610641366004614ee6565b6113c6565b610556610654366004614f54565b611535565b610535610667366004614fdb565b600c60209081526000948552604080862082529385528385208152918452828420909152825290205481565b6105356106a13660046148fd565b60236020526000908152604090205481565b6105566106c136600461500d565b611658565b610535671bc16d674ec8000081565b6105356106e3366004614b11565b600b60209081526000928352604080842090915290825290205481565b61053560195481565b610535601a5481565b60055461072a9061010090046001600160a01b031681565b6040516001600160a01b03909116815260200161050c565b61075561075036600461504d565b611741565b60405161050c91906150b0565b61053561012c81565b61053560115481565b61053560245481565b60015461072a906001600160a01b031681565b61055661079e366004615226565b611979565b6105356107b13660046152ac565b611c68565b6003546105009060ff1681565b6105566107d1366004615328565b611c87565b6105356107e43660046148fd565b60096020526000908152604090205481565b61055661080436600461504d565b611c9f565b6105356108173660046148fd565b60126020526000908152604090205481565b61055661083736600461504d565b611da1565b61055661084a3660046148fd565b611f61565b61053560085481565b61053561206b565b610556612084565b610556610876366004615356565b61215c565b610556610889366004614b11565b61225b565b61053561089c3660046148fd565b600a6020526000908152604090205481565b60005461072a906001600160a01b031681565b60065461072a906001600160a01b031681565b61053560025481565b6105006108eb3660046148fd565b60156020526000908152604090205460ff1681565b61050061090e3660046148e2565b602080526000908152604090205460ff1681565b6105356122d2565b61053561093836600461538d565b6122ea565b61053560265481565b610535601f5481565b61055661095d3660046153c2565b612300565b610535610970366004615445565b6123bc565b61055661098336600461559f565b6125b4565b610556610996366004615670565b612879565b610535600d5481565b610535601d5481565b6105566109bb36600461578a565b612a04565b61053560275481565b6105566109d7366004614b11565b612a5e565b6105566109ea3660046157af565b612b7b565b610535600481565b610a0a610a053660046157f2565b612c5e565b60405161050c929190615871565b610556610a263660046149da565b612ec4565b610556610a393660046158d1565b612fb4565b61053560185481565b610556610a553660046148fd565b61302e565b60075461072a906001600160a01b031681565b610535610a7b366004614fdb565b601660209081526000948552604080862082529385528385208152918452828420909152825290205481565b610500610ab5366004614b11565b601460209081526000928352604080842090915290825290205460ff1681565b610556610ae3366004614b11565b613138565b610556610af63660046148fd565b6131b1565b610556610b0936600461504d565b6131ee565b610535610b1c3660046148fd565b601e6020526000908152604090205481565b610535601c5481565b61053560215481565b610535610b4e3660046148fd565b60136020526000908152604090205481565b610556610b6e36600461504d565b6133ae565b610535601b5481565b610535610b8a3660046148fd565b600e6020526000908152604090205481565b610535610baa366004615445565b6134a3565b6105566134c5565b610556610bc53660046148fd565b613523565b610556610bd83660046148fd565b613588565b610556610beb366004615907565b6135f0565b61053560285481565b610c0c610c07366004615942565b613667565b6040805192835260208301919091520161050c565b610c2961389b565b60005b82811015610ccd576000848483818110610c4857610c4861599e565b9050602002016020810190610c5d91906148e2565b61ffff8116600081815260226020908152604091829020805460ff19168815159081179091558251938452908301529192507f6df8945bb4c412ec4a960d2d0c8d268565213a3ef867bd9c00ed2c104932513f910160405180910390a15080610cc5816159ca565b915050610c2c565b50505050565b6001600160a01b038116610d2a5760405162461bcd60e51b815260206004820152601960248201527804f776e657220616464726573732063616e6e6f74206265203603c1b60448201526064015b60405180910390fd5b600154600160a01b900460ff1615610d965760405162461bcd60e51b815260206004820152602960248201527f416c726561647920696e697469616c697a65642c20757365206e6f6d696e617460448201526832a732bba7bbb732b960b91b6064820152608401610d21565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b0383166001600160a01b0319909116178155604051600080516020615d4a83398151915291610de49184906159e3565b60405180910390a150565b606060018260ff16111580610e0a57508260ff168260ff1610155b15610e2857604051632a6c01d760e21b815260040160405180910390fd5b600160005b8360ff168160ff161015610e7c57610e468160016159fd565b60ff16610e538287615a16565b610e609060ff1684615a2f565b610e6a9190615a46565b9150610e7581615a68565b9050610e2d565b506000816001600160401b03811115610e9757610e97614b33565b604051908082528060200260200182016040528015610eca57816020015b6060815260200190600190039081610eb55790505b50905060008460ff166001600160401b03811115610eea57610eea614b33565b604051908082528060200260200182016040528015610f13578160200160208202803683370190505b50905060005b8560ff168160ff161015610f5f5780828260ff1681518110610f3d57610f3d61599e565b60ff90921660209283029190910190910152610f5881615a68565b9050610f19565b5060005b60008660ff166001600160401b03811115610f8057610f80614b33565b604051908082528060200260200182016040528015610fa9578160200160208202803683370190505b50905060005b8760ff168160ff16101561101157838160ff1681518110610fd257610fd261599e565b6020026020010151828260ff1681518110610fef57610fef61599e565b60ff9092166020928302919091019091015261100a81615a68565b9050610faf565b50808483815181106110255761102561599e565b6020026020010181905250818061103b906159ca565b925060019050875b60ff81161561117057611057600182615a16565b611061908a615a16565b61106b908b615a16565b60ff168561107a600184615a16565b60ff168151811061108d5761108d61599e565b602002602001015160ff16101561115e57846110aa600183615a16565b60ff16815181106110bd576110bd61599e565b6020026020010180518091906110d290615a68565b60ff16905250805b8960ff168160ff16101561115457856110f4600183615a16565b60ff16815181106111075761110761599e565b6020026020010151600161111b91906159fd565b868260ff16815181106111305761113061599e565b60ff909216602092830291909101909101528061114c81615a68565b9150506110da565b5060009150611170565b8061116881615a87565b915050611043565b50801561117e575050611185565b5050610f63565b5090925050505b92915050565b61119a61389b565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290602001610de4565b6111f061389b565b60035460ff16151581151514611257576003805460ff191682151590811790915560ff161561121e57426002555b60035460405160ff909116151581527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec590602001610de4565b50565b60005433906001600160a01b03168114806112e8575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906112a7908490600190600401615aa4565b602060405180830381865afa1580156112c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e89190615ad1565b6113045760405162461bcd60e51b8152600401610d2190615aee565b6000848152601260209081526040808320869055601382529182902084905581518681529081018590529081018390527f73231c1da1a7341edd4af21892fc5e1c1f340ae5726ee3e20714c146c968558a906060015b60405180910390a150505050565b61137061389b565b601c829055601d81905560408051838152602081018390527f8f8d0d2155084c34c7e189b664aa128aebfd57e564d2d01c82a148d3da3a3bbc91015b60405180910390a15050565b6113c2828261390f565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561140b5750825b90506000826001600160401b031660011480156114275750303b155b905081158015611435575080155b156114535760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561147d57845460ff60401b1916600160401b1785555b6114868c610cd3565b61148e6134c5565b60058054610100600160a81b0319166101006001600160a01b038e81169190910291909117909155600680546001600160a01b031916918c169190911790556008899055600d88905560108790556011869055831561152757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b60005433906001600160a01b03168114806115c3575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611582908490600190600401615aa4565b602060405180830381865afa15801561159f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c39190615ad1565b6115df5760405162461bcd60e51b8152600401610d2190615aee565b60005b8451811015611651576116418582815181106116005761160061599e565b602002602001015185838151811061161a5761161a61599e565b60200260200101518584815181106116345761163461599e565b602002602001015161396d565b61164a816159ca565b90506115e2565b5050505050565b61166061389b565b6001600160a01b038316158061167d57506001600160a01b038216155b8061168f57506001600160a01b038116155b156116ad5760405163e6c4247b60e01b815260040160405180910390fd5b60058054610100600160a81b0319166101006001600160a01b0386811691820292909217909255600680546001600160a01b03199081168684169081179092556007805490911692851692831790556040805193845260208401919091528201527fbbfb274df95bebde0669697bf0d15986b4ad73e11c495ae4e2d08d1bc5c90bad906060015b60405180910390a1505050565b606082516001600160401b0381111561175c5761175c614b33565b60405190808252806020026020018201604052801561179557816020015b611782614867565b81526020019060019003908161177a5790505b50905060005b83518110156119725760008482815181106117b8576117b861599e565b60200260200101519050600084516001600160401b038111156117dd576117dd614b33565b60405190808252806020026020018201604052801561182257816020015b60408051808201909152600080825260208201528152602001906001900390816117fb5790505b50905060005b85518110156118b95760008682815181106118455761184561599e565b602002602001015190506040518060400160405280828152602001600b600087815260200190815260200160002060008481526020019081526020016000205481525083838151811061189a5761189a61599e565b60200260200101819052505080806118b1906159ca565b915050611828565b506040805160608082018352600085815260096020908152848220548452868252600a8152848220548185015283850186905284518086018652878352601282528583205481528783526013825285832054818301528551608081018752888152808301869052888452600e9092529185902054948101949094529083018190528651919290918790879081106119525761195261599e565b6020026020010181905250505050508061196b906159ca565b905061179b565b5092915050565b60075433906001600160a01b031681146119c65760405162461bcd60e51b815260206004820152600e60248201526d13db9b1e505353505b1b1bddd95960921b6044820152606401610d21565b865160005b81811015611c445760008982815181106119e7576119e761599e565b6020908102919091018101518082015161ffff16600090815291805260409091205490915060ff168015611a1c575060018a51115b15611a3a5760405163f37139c760e01b815260040160405180910390fd5b60e0810151610120820151815160ff821610611a695760405163673f032f60e11b815260040160405180910390fd5b611a7283613a13565b611a8f57604051633a67d48160e01b815260040160405180910390fd5b6000828260ff1681518110611aa657611aa661599e565b6020026020010151600014611af557828260ff1681518110611aca57611aca61599e565b60200260200101518c670de0b6b3a7640000611ae69190615a2f565b611af09190615a46565b611af8565b60005b90508b811115611c2f576000611b0e8d83615b15565b90508c915060018a60ff161115611b9e57611b31670de0b6b3a764000088615a2f565b60ff8b16611b47670de0b6b3a764000084615a2f565b611b519190615a2f565b611b5b9190615a46565b9050611b6f670de0b6b3a764000088615a2f565b8a60ff16670de0b6b3a76400008f611b879190615a2f565b611b919190615a2f565b611b9b9190615a46565b91505b611ba985828d613b1a565b15611bc757604051635ddb506960e01b815260040160405180910390fd5b611bd18582613b9d565b15611bef57604051632d173bb760e11b815260040160405180910390fd5b88158015611c035750611c038e8688613be6565b15611c215760405163991d7d0b60e01b815260040160405180910390fd5b611c2d8582848e613cce565b505b5050505080611c3d906159ca565b90506119cb565b508215611c5e57611c5e88611c598989615b15565b613e3e565b5050505050505050565b6000611c798888888888888861402d565b90505b979650505050505050565b611c8f61389b565b611c9a838383614304565b505050565b60005433906001600160a01b0316811480611d2d575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611cec908490600190600401615aa4565b602060405180830381865afa158015611d09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2d9190615ad1565b611d495760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd57611d91848281518110611d6a57611d6a61599e565b6020026020010151848381518110611d8457611d8461599e565b6020026020010151614369565b611d9a816159ca565b9050611d4c565b60005433906001600160a01b0316811480611e2f575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611dee908490600190600401615aa4565b602060405180830381865afa158015611e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2f9190615ad1565b611e4b5760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd57601154838281518110611e6c57611e6c61599e565b60200260200101511115611e9357604051638f651fb760e01b815260040160405180910390fd5b828181518110611ea557611ea561599e565b6020026020010151600f6000868481518110611ec357611ec361599e565b60200260200101518152602001908152602001600020819055507fad3938ddda68b0c35a94769b9bfe09359d462174ac669a50c54f6913ffee2387848281518110611f1057611f1061599e565b6020026020010151848381518110611f2a57611f2a61599e565b6020026020010151604051611f49929190918252602082015260400190565b60405180910390a1611f5a816159ca565b9050611e4e565b60005433906001600160a01b0316811480611fef575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590611fae908490600190600401615aa4565b602060405180830381865afa158015611fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fef9190615ad1565b61200b5760405162461bcd60e51b8152600401610d2190615aee565b8115806120185750600a82115b15612036576040516315fe1d1760e31b815260040160405180910390fd5b60248290556040518281527f0c239364e4f5adc356c13510be0c9eb7d5cf361baf8315222cd91233a10c599d906020016113ac565b6000806027541161207d575061012c90565b5060275490565b6001546001600160a01b031633146120fc5760405162461bcd60e51b815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527402063616e20616363657074206f776e65727368697605c1b6064820152608401610d21565b600054600154604051600080516020615d4a8339815191529261212d926001600160a01b03918216929116906159e3565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60005433906001600160a01b03168114806121ea575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906121a9908490600190600401615aa4565b602060405180830381865afa1580156121c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ea9190615ad1565b6122065760405162461bcd60e51b8152600401610d2190615aee565b61ffff831660008181526020808052604091829020805460ff19168615159081179091558251938452908301527fb51232e4b8914c35311ac17f4d60b83e968f42365fe9f84d7e79f678971f88bf9101611734565b61226361389b565b601054821180612274575060115481115b156122925760405163b4fa3fb360e01b815260040160405180910390fd5b6008829055600d81905560408051838152602081018390527f66f5882a9629034cfbaab9f0e58425ef198945ed475f313968d861fc699c03c091016113ac565b600080602654116122e35750600490565b5060265490565b60006122f78484846143d4565b50949350505050565b61230861389b565b831580612313575081155b156123315760405163a600c81d60e01b815260040160405180910390fd5b60005b848110156123b45760008686838181106123505761235061599e565b90506020020135905060005b8481101561239f5760008686838181106123785761237861599e565b90506020020135905061238c838287614304565b5080612397816159ca565b91505061235c565b505080806123ac906159ca565b915050612334565b505050505050565b60006123c782614409565b600082516001600160401b038111156123e2576123e2614b33565b60405190808252806020026020018201604052801561240b578160200160208202803683370190505b509050600083516001600160401b0381111561242957612429614b33565b604051908082528060200260200182016040528015612452578160200160208202803683370190505b509050600084516001600160401b0381111561247057612470614b33565b604051908082528060200260200182016040528015612499578160200160208202803683370190505b50905060005b855181101561257e578581815181106124ba576124ba61599e565b6020026020010151600001518482815181106124d8576124d861599e565b6020026020010181815250508581815181106124f6576124f661599e565b6020026020010151604001518382815181106125145761251461599e565b602002602001019061ffff16908161ffff168152505085818151811061253c5761253c61599e565b602002602001015160c0015182828151811061255a5761255a61599e565b62ffffff90921660209283029190910190910152612577816159ca565b905061249f565b5082828260405160200161259493929190615b68565b604051602081830303815290604052805190602001209350505050919050565b60005433906001600160a01b0316811480612642575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590612601908490600190600401615aa4565b602060405180830381865afa15801561261e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126429190615ad1565b61265e5760405162461bcd60e51b8152600401610d2190615aee565b60005b86518110156128705760105483828151811061267f5761267f61599e565b602002602001015111156126a65760405163195bab4d60e31b815260040160405180910390fd5b8281815181106126b8576126b861599e565b6020026020010151600c60008984815181106126d6576126d661599e565b6020026020010151815260200190815260200160002060008884815181106127005761270061599e565b602002602001015161ffff168152602001908152602001600020600087848151811061272e5761272e61599e565b602002602001015162ffffff168152602001908152602001600020600086848151811061275d5761275d61599e565b602002602001015160020b8152602001908152602001600020819055507fc14b7699de20e98a6336e1020b227f531f06ec5cc9d0f7ba40e51827524fb64a8782815181106127ad576127ad61599e565b60200260200101518783815181106127c7576127c761599e565b60200260200101518784815181106127e1576127e161599e565b60200260200101518785815181106127fb576127fb61599e565b60200260200101518786815181106128155761281561599e565b602002602001015160405161285895949392919094855261ffff93909316602085015262ffffff91909116604084015260020b6060830152608082015260a00190565b60405180910390a1612869816159ca565b9050612661565b50505050505050565b60005433906001600160a01b0316811480612907575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906128c6908490600190600401615aa4565b602060405180830381865afa1580156128e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129079190615ad1565b6129235760405162461bcd60e51b8152600401610d2190615aee565b60005b885181101561296e5761295e8982815181106129445761294461599e565b6020026020010151898381518110611d8457611d8461599e565b612967816159ca565b9050612926565b5060005b86518110156129c7576129b78782815181106129905761299061599e565b60200260200101518783815181106129aa576129aa61599e565b602002602001015161450e565b6129c0816159ca565b9050612972565b5060005b84518110156129f9576129e98582815181106116005761160061599e565b6129f2816159ca565b90506129cb565b505050505050505050565b612a0c61389b565b600082815260156020908152604091829020805460ff19168415159081179091558251858152918201527fd6607d95dba4bba9cc6488f5d59c8c13fd3393bb32e524cbfebe05e87796e77491016113ac565b60005433906001600160a01b0316811480612aec575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c39590612aab908490600190600401615aa4565b602060405180830381865afa158015612ac8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aec9190615ad1565b612b085760405162461bcd60e51b8152600401610d2190615aee565b811580612b155750600a82115b15612b33576040516315fe1d1760e31b815260040160405180910390fd5b6000838152601e602090815260409182902084905581518581529081018490527fc8ec738370e588095f95e158fd2cd81a0a2ce198cf844dfba650f0719abd4a949101611734565b601854861015612b9e57604051633c6ed54960e11b815260040160405180910390fd5b601b54851015612bc157604051630e10601360e31b815260040160405180910390fd5b601a54612bce8786615b15565b1115612bed5760405163245eadfb60e11b815260040160405180910390fd5b612bff82670de0b6b3a7640000615bfa565b84612c1285670de0b6b3a7640000615a2f565b612c1c9190615a46565b1115612c3b5760405163428637bb60e11b815260040160405180910390fd5b6019548111156123b4576040516350180cdd60e11b815260040160405180910390fd5b8351600090606090806001600160401b03811115612c7e57612c7e614b33565b604051908082528060200260200182016040528015612ca7578160200160208202803683370190505b5091506000600160ff861611815b83811015612eb75760008a8281518110612cd157612cd161599e565b6020908102919091018101518082015161ffff16600090815291805260409091205490915060ff168015612d055750600185115b93508060e0015181610120015160ff1681518110612d2557612d2561599e565b602002602001015160001480612d685750670de0b6b3a76400008160e0015182610120015160ff1681518110612d5d57612d5d61599e565b602002602001015110155b15612d865760405163fdfffca760e01b815260040160405180910390fd5b60008160e0015182610120015160ff1681518110612da657612da661599e565b60200260200101518b670de0b6b3a7640000612dc29190615a2f565b612dcc9190615a46565b90506000612dda8c83615b15565b90508415612e2157612df4670de0b6b3a764000088615a2f565b60ff8b16612e0a670de0b6b3a764000084615a2f565b612e149190615a2f565b612e1e9190615a46565b90505b8580612e335750612e338d8486613be6565b15612e415760029850612ea3565b612e4c83828d613b1a565b80612e5c5750612e5c8382613b9d565b15612ea3576001888581518110612e7557612e7561599e565b911515602092830291909101909101526000896002811115612e9957612e9961585b565b03612ea357600198505b50505080612eb0906159ca565b9050612cb5565b5050505094509492505050565b612ecc61389b565b6001600160a01b038116612f145760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610d21565b600154600160a81b900460ff1615612f645760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481d1c985b9cd9995c9c9959606a1b6044820152606401610d21565b600080546001600160a01b0383166001600160a01b031990911681179091556001805460ff60a81b1916600160a81b179055604051600080516020615d4a83398151915291610de49184906159e3565b8051825114612fd657604051630469224f60e41b815260040160405180910390fd5b60005b8251811015611c9a5761301e838281518110612ff757612ff761599e565b60200260200101518383815181106130115761301161599e565b602002602001015161390f565b613027816159ca565b9050612fd9565b60005433906001600160a01b03168114806130bc575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c3959061307b908490600190600401615aa4565b602060405180830381865afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190615ad1565b6130d85760405162461bcd60e51b8152600401610d2190615aee565b8115806130e55750600a82115b15613103576040516315fe1d1760e31b815260040160405180910390fd5b601f8290556040518281527f71ada83bfd8e30b300b57f2f9d90cc70c7d3b027cd3e38967d588ec4378ecf62906020016113ac565b61314061389b565b600854821115806131535750600d548111155b156131715760405163b4fa3fb360e01b815260040160405180910390fd5b6010829055601181905560408051838152602081018390527f3ef96d50e94656fa01fa9c9a131bc026d07ed3bb6c53daff5695c3a4a2bad54691016113ac565b6131b961389b565b60278190556040518181527f2aed621c6a68410536f043b174237977468d968075c27301fe6cedddaf59afdd90602001610de4565b60005433906001600160a01b031681148061327c575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c3959061323b908490600190600401615aa4565b602060405180830381865afa158015613258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327c9190615ad1565b6132985760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd576011548382815181106132b9576132b961599e565b602002602001015111156132e057604051638f651fb760e01b815260040160405180910390fd5b8281815181106132f2576132f261599e565b6020026020010151600e60008684815181106133105761331061599e565b60200260200101518152602001908152602001600020819055507fbc374ebda39a7586f4916c1911f82c2b045a44439acc485b4097428bf24ab9f984828151811061335d5761335d61599e565b60200260200101518483815181106133775761337761599e565b6020026020010151604051613396929190918252602082015260400190565b60405180910390a16133a7816159ca565b905061329b565b60005433906001600160a01b031681148061343c575060055460405163e760c39560e01b81526101009091046001600160a01b03169063e760c395906133fb908490600190600401615aa4565b602060405180830381865afa158015613418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343c9190615ad1565b6134585760405162461bcd60e51b8152600401610d2190615aee565b60005b8351811015610ccd576134938482815181106134795761347961599e565b60200260200101518483815181106129aa576129aa61599e565b61349c816159ca565b905061345b565b6000806134af836123bc565b6000908152602560205260409020549392505050565b60055460ff161561350e5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606401610d21565b6005805460ff19166001908117909155600455565b61352b61389b565b670de0b6b3a7640000811061355357604051630e10601360e31b815260040160405180910390fd5b60288190556040518181527ff3005845300e277fa1a0c8e4d71c09c1a421abb1c6812160d09141a1528d05f090602001610de4565b61359061389b565b80158061359d5750600a81115b156135bb5760405163b4fa3fb360e01b815260040160405180910390fd5b60268190556040518181527faf1ad9a324dfc9ba37b0b5b08ac0f96d21ea55ca3d07a007277c826be5d4594490602001610de4565b6135f861389b565b60188590556019849055601a839055601b8290556021819055604080518681526020810186905290810184905260608101839052608081018290527f6cde94c5ae9fdbda396942be459bab30f8a54e9fc195bca3ab452ab19d4e04069060a00160405180910390a15050505050565b6000806000613677875187610def565b8051602154919250908111156136a057604051633c357c8360e11b815260040160405180910390fd5b6000670de0b6b3a7640000826136b6828a615a2f565b6136c09190615a46565b6136ca9190615a46565b905060005b8281101561386f5760008482815181106136eb576136eb61599e565b60200260200101519050600080600090505b82518160ff161015613826576000838260ff16815181106137205761372061599e565b6020026020010151905060008e8260ff16815181106137415761374161599e565b602002602001015160e001518f8360ff16815181106137625761376261599e565b6020026020010151610120015160ff16815181106137825761378261599e565b60200260200101519050670de0b6b3a7640000818d6137a19190615a2f565b6137ab9190615a46565b6137bd8d670de0b6b3a7640000615bfa565b6137c79190615b15565b6137d9670de0b6b3a764000083615a2f565b6137e39190615a46565b9050831561380d57670de0b6b3a76400006137fe8286615a2f565b6138089190615a46565b61380f565b805b93505050808061381e90615a68565b9150506136fd565b50801561385c57600081613842670de0b6b3a764000087615a2f565b61384c9190615a46565b9050613858818a615bfa565b9850505b505080613868906159ca565b90506136cf565b508461388388670de0b6b3a7640000615a2f565b61388d9190615a46565b935050505094509492505050565b6000546001600160a01b0316331461390d5760405162461bcd60e51b815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201526e37b936903a3434b99030b1ba34b7b760891b6064820152608401610d21565b565b600061391a836145a4565b905061392c83610100015183836146a4565b611c9a5760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81b9bdd081d985b1a5960721b6044820152606401610d21565b60008381526009602052604081205461398857600854613998565b6000848152600960205260409020545b9050808211156139bb5760405163195bab4d60e31b815260040160405180910390fd5b6000848152600b6020908152604080832086845282529182902084905581518681529081018590529081018390527f38bba85d238b3778cdb675a039211d90996b1dc4b6c6301971bdbd43fbfe88649060600161135a565b600080826060015190506000600660009054906101000a90046001600160a01b03166001600160a01b031663397f7823856000015186604001518760c001518860a001518961014001518a610120015160ff1681518110613a7657613a7661599e565b60200260200101516040518663ffffffff1660e01b8152600401613a9e959493929190615c0d565b602060405180830381865afa158015613abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adf9190615ad1565b9050836080015160ff166000148015613af6575080155b15613b1357428210613b1357601c54613b0f4284615b15565b1192505b5050919050565b8251604084015160c0850151602086015160a08701516060880151600095949392613b4b928692869186918b61402d565b600084815260166020908152604080832061ffff87168452825280832062ffffff8616845282528083206101208c015160ff168452909152902054613b91908890615c9c565b13979650505050505050565b600080836000015190506000613bbc82866020015187606001516143d4565b506000838152601760205260409020549091508190613bdc908690615bfa565b1195945050505050565b600080613bf4836001615bfa565b90505b8451811015613cc6576000858281518110613c1457613c1461599e565b6020026020010151905080600001518560000151148015613c445750806020015161ffff16856020015161ffff16145b15613cb55760208086015161ffff1660009081526015909152604090205460ff161580613c8257508060c0015162ffffff168560c0015162ffffff16145b80613c94575060c085015162ffffff16155b80613ca6575060c081015162ffffff16155b15613cb5576001925050613cc6565b50613cbf816159ca565b9050613bf7565b509392505050565b8351604085015160c086015161012087015160e08801515160208111600087613cf75782613d20565b82613d038560036159fd565b60ff1611613d1e57613d168460036159fd565b60ff16613d20565b825b905060005b81811015613e0d57600088815260166020908152604080832061ffff8b168452825280832062ffffff8a168452825280832084845290915290205460ff86168203613dac57613d748c82615c9c565b60008a815260166020908152604080832061ffff8d168452825280832062ffffff8c1684528252808320868452909152902055613dfc565b831580613db95750600081135b15613dfc57613dc88b82615cc4565b60008a815260166020908152604080832061ffff8d168452825280832062ffffff8c16845282528083208684529091529020555b50613e06816159ca565b9050613d25565b50600087815260176020526040812080548c9290613e2c908490615bfa565b90915550505050505050505050505050565b60008060245411613e50576002613e54565b6024545b905060001960005b8451811015613fb2576000858281518110613e7957613e7961599e565b60200260200101516000015190506000805b83811015613ed05782888281518110613ea657613ea661599e565b60200260200101516000015103613ec05760019150613ed0565b613ec9816159ca565b9050613e8b565b508015613ede575050613fa2565b600080613f26848a8781518110613ef757613ef761599e565b6020026020010151602001518b8881518110613f1557613f1561599e565b6020026020010151606001516143d4565b9092509050613f358783615a46565b600085815260236020526040902054613f4f908a90615bfa565b1115613f6e576040516313fb3c2560e21b815260040160405180910390fd5b600084815260236020526040812080548a9290613f8c908490615bfa565b909155505085811015613f9d578095505b505050505b613fab816159ca565b9050613e5c565b506000613fbe856123bc565b9050613fca8383615a46565b600082815260256020526040902054613fe4908690615bfa565b1115614003576040516313fb3c2560e21b815260040160405180910390fd5b60008181526025602052604081208054869290614021908490615bfa565b90915550505050505050565b600042831115611c7c576000888152600c6020908152604080832061ffff8a168452825280832062ffffff891684528252808320600288900b84529091529020546140a2576000888152600c6020908152604080832061ffff8a168452825280832083805282528083209091529020546140da565b6000888152600c6020908152604080832061ffff8a168452825280832062ffffff891684528252808320600288900b84529091529020545b9050806000036141ce5761ffff87166000908152600960205260409020548061410557600854614107565b805b915081905061ffff8716156141cc5761ffff8089166000908152600b60209081526040808320938b168352928152828220548c8352600c82528383208380528252838320825283832090915291902054801561418f5781614169600283615a46565b1080614173575081155b61417d5781614188565b614188600282615a46565b93506141c9565b819350836000036141c95761ffff8a166000908152600a6020526040902054806141c3576141be600285615a46565b6141c5565b805b9450505b50505b505b81156142275761ffff87166000908152601e6020526040902054614205576000601f54116141fd57600161421a565b601f5461421a565b61ffff87166000908152601e60205260409020545b6142249082615a46565b90505b61ffff871660009081526012602052604090205480156142f857600061424d4286615b15565b61ffff8a166000908152601360205260408120549192509061427757671bc16d674ec8000061428c565b61ffff8a166000908152601360205260409020545b61429e670de0b6b3a764000086615a2f565b6142a89190615a46565b90508282106142b9578093506142f5565b60006142c58286615b15565b905083816142d38583615b15565b6142dd9190615a2f565b6142e79190615a46565b6142f19083615bfa565b9450505b50505b50979650505050505050565b6000838152601460209081526040808320858452825291829020805460ff19168415159081179091558251868152918201859052918101919091527ffdd6a752e1596b39b7dc599993db99ce8fcf9f740e9beb9fcd057228e19fc8db90606001611734565b60105481111561438c5760405163195bab4d60e31b815260040160405180910390fd5b60008281526009602090815260409182902083905581518481529081018390527fdd336d23e5a148c17f76389d3ac4d0ab595ec1bc30e226f1d6ee3cd7714dd6f891016113ac565b6000806143e98585600080600088600061402d565b90506143f585856146ba565b6143ff9082615a2f565b9150935093915050565b805160005b614419600183615b15565b811015611c9a57600061442d826001615bfa565b90505b828110156144fd57600061447685848151811061444f5761444f61599e565b60200260200101518684815181106144695761446961599e565b60200260200101516146fc565b13156144eb5783818151811061448e5761448e61599e565b60200260200101518483815181106144a8576144a861599e565b60200260200101518584815181106144c2576144c261599e565b602002602001018684815181106144db576144db61599e565b6020026020010182905282905250505b806144f5816159ca565b915050614430565b50614507816159ca565b905061440e565b60008281526009602052604081205461452957600854614539565b6000838152600960205260409020545b90508082111561455c5760405163195bab4d60e31b815260040160405180910390fd5b6000838152600a602090815260409182902084905581518581529081018490527ffbd9918f75c3522536de3aee36688a9c85119cfd97fab820e6c2a4bf5b08f4699101611734565b61014081015151600090815b818110156146335783610140015181815181106145cf576145cf61599e565b6020026020010151516000146146235760405162461bcd60e51b815260206004820152601960248201527810dbdb589a5b9959081b585c9ad95d1cc8191a5cd8589b1959603a1b6044820152606401610d21565b61462c816159ca565b90506145b0565b508260000151836020015161ffff16846040015161ffff168560600151866080015160ff168760a0015160020b8860c0015162ffffff168960e00151604051602001614686989796959493929190615ce4565b60405160208183030381529060405280519060200120915050919050565b6000826146b185846147f0565b14949350505050565b6000828152600f60205260408120549081900361118c5761ffff82166000908152600e6020526040902054806146f257600d546146f4565b805b949350505050565b805182516000911115614712575060001961118c565b8151835111156147245750600161118c565b816040015161ffff16836040015161ffff161015614745575060001961118c565b816040015161ffff16836040015161ffff1611156147655750600161118c565b8160c0015162ffffff168360c0015162ffffff161015614788575060001961118c565b8160c0015162ffffff168360c0015162ffffff1611156147aa5750600161118c565b8160a0015160020b8360a0015160020b12156147c9575060001961118c565b8160a0015160020b8360a0015160020b13156147e75750600161118c565b50600092915050565b600081815b8451811015613cc657614821828683815181106148145761481461599e565b6020026020010151614835565b91508061482d816159ca565b9150506147f5565b6000818310614851576000828152602084905260409020614860565b60008381526020839052604090205b9392505050565b60405180608001604052806000815260200161489d60405180606001604052806000815260200160008152602001606081525090565b8152602001600081526020016148c6604051806040016040528060008152602001600081525090565b905290565b803561ffff811681146148dd57600080fd5b919050565b6000602082840312156148f457600080fd5b614860826148cb565b60006020828403121561490f57600080fd5b5035919050565b60008083601f84011261492857600080fd5b5081356001600160401b0381111561493f57600080fd5b6020830191508360208260051b850101111561495a57600080fd5b9250929050565b801515811461125757600080fd5b60008060006040848603121561498457600080fd5b83356001600160401b0381111561499a57600080fd5b6149a686828701614916565b90945092505060208401356149ba81614961565b809150509250925092565b6001600160a01b038116811461125757600080fd5b6000602082840312156149ec57600080fd5b81356146f2816149c5565b803560ff811681146148dd57600080fd5b60008060408385031215614a1b57600080fd5b614a24836149f7565b9150614a32602084016149f7565b90509250929050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b83811015614aba57888603603f19018552825180518088529088019088880190845b81811015614aa457835160ff168352928a0192918a0191600101614a85565b5090975050509386019391860191600101614a63565b509398975050505050505050565b600060208284031215614ada57600080fd5b81356146f281614961565b600080600060608486031215614afa57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215614b2457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715614b6b57614b6b614b33565b60405290565b60405161016081016001600160401b0381118282101715614b6b57614b6b614b33565b604051601f8201601f191681016001600160401b0381118282101715614bbc57614bbc614b33565b604052919050565b8035600281900b81146148dd57600080fd5b803562ffffff811681146148dd57600080fd5b60006001600160401b03821115614c0257614c02614b33565b5060051b60200190565b600082601f830112614c1d57600080fd5b81356020614c32614c2d83614be9565b614b94565b82815260059290921b84018101918181019086841115614c5157600080fd5b8286015b84811015614c6c5780358352918301918301614c55565b509695505050505050565b600082601f830112614c8857600080fd5b81356020614c98614c2d83614be9565b82815260059290921b84018101918181019086841115614cb757600080fd5b8286015b84811015614c6c5780356001600160401b03811115614cda5760008081fd5b8701603f81018913614cec5760008081fd5b848101356040614cfe614c2d83614be9565b8281526060928302840182019288820191908d851115614d1e5760008081fd5b948301945b84861015614d7b5780868f031215614d3b5760008081fd5b614d43614b49565b614d4c876148cb565b8152614d598b88016149f7565b8b820152614d68858801614bc4565b8186015283529485019491890191614d23565b50875250505092840192508301614cbb565b60006101608284031215614da057600080fd5b614da8614b71565b905081358152614dba602083016148cb565b6020820152614dcb604083016148cb565b604082015260608201356060820152614de6608083016149f7565b6080820152614df760a08301614bc4565b60a0820152614e0860c08301614bd6565b60c082015260e08201356001600160401b0380821115614e2757600080fd5b614e3385838601614c0c565b60e084015261010091508184013581811115614e4e57600080fd5b614e5a86828701614c0c565b83850152506101209150614e6f8285016149f7565b8284015261014091508184013581811115614e8957600080fd5b614e9586828701614c77565b8385015250505092915050565b60008060408385031215614eb557600080fd5b82356001600160401b03811115614ecb57600080fd5b614ed785828601614d8d565b95602094909401359450505050565b600080600080600080600060e0888a031215614f0157600080fd5b8735614f0c816149c5565b96506020880135614f1c816149c5565b95506040880135614f2c816149c5565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b600080600060608486031215614f6957600080fd5b83356001600160401b0380821115614f8057600080fd5b614f8c87838801614c0c565b94506020860135915080821115614fa257600080fd5b614fae87838801614c0c565b93506040860135915080821115614fc457600080fd5b50614fd186828701614c0c565b9150509250925092565b60008060008060808587031215614ff157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561502257600080fd5b833561502d816149c5565b9250602084013561503d816149c5565b915060408401356149ba816149c5565b6000806040838503121561506057600080fd5b82356001600160401b038082111561507757600080fd5b61508386838701614c0c565b9350602085013591508082111561509957600080fd5b506150a685828601614c0c565b9150509250929050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561519857898403603f190186528251805185528881015160a08a8701819052815190870152808a015160c0870152880151606060e0870181905281516101008801819052918b019185906101208901905b8083101561515e5761514a82865180518252602090810151910152565b938d019360019290920191908c019061512d565b50848c0151898d01529382015193615182838a018680518252602090810151910152565b998c0199975050509389019350506001016150d8565b50919998505050505050505050565b600082601f8301126151b857600080fd5b813560206151c8614c2d83614be9565b82815260059290921b840181019181810190868411156151e757600080fd5b8286015b84811015614c6c5780356001600160401b0381111561520a5760008081fd5b6152188986838b0101614d8d565b8452509183019183016151eb565b60008060008060008060c0878903121561523f57600080fd5b86356001600160401b0381111561525557600080fd5b61526189828a016151a7565b9650506020870135945060408701359350606087013561528081614961565b925061528e608088016149f7565b915060a087013561529e81614961565b809150509295509295509295565b600080600080600080600060e0888a0312156152c757600080fd5b873596506152d7602089016148cb565b95506152e5604089016148cb565b94506152f360608901614bd6565b935061530160808901614bc4565b925060a0880135915060c088013561531881614961565b8091505092959891949750929550565b60008060006060848603121561533d57600080fd5b833592506020840135915060408401356149ba81614961565b6000806040838503121561536957600080fd5b615372836148cb565b9150602083013561538281614961565b809150509250929050565b6000806000606084860312156153a257600080fd5b833592506153b2602085016148cb565b9150604084013590509250925092565b6000806000806000606086880312156153da57600080fd5b85356001600160401b03808211156153f157600080fd5b6153fd89838a01614916565b9097509550602088013591508082111561541657600080fd5b5061542388828901614916565b909450925050604086013561543781614961565b809150509295509295909350565b60006020828403121561545757600080fd5b81356001600160401b0381111561546d57600080fd5b6146f4848285016151a7565b600082601f83011261548a57600080fd5b8135602061549a614c2d83614be9565b82815260059290921b840181019181810190868411156154b957600080fd5b8286015b84811015614c6c576154ce816148cb565b83529183019183016154bd565b600082601f8301126154ec57600080fd5b813560206154fc614c2d83614be9565b82815260059290921b8401810191818101908684111561551b57600080fd5b8286015b84811015614c6c5761553081614bd6565b835291830191830161551f565b600082601f83011261554e57600080fd5b8135602061555e614c2d83614be9565b82815260059290921b8401810191818101908684111561557d57600080fd5b8286015b84811015614c6c5761559281614bc4565b8352918301918301615581565b600080600080600060a086880312156155b757600080fd5b85356001600160401b03808211156155ce57600080fd5b6155da89838a01614c0c565b965060208801359150808211156155f057600080fd5b6155fc89838a01615479565b9550604088013591508082111561561257600080fd5b61561e89838a016154db565b9450606088013591508082111561563457600080fd5b61564089838a0161553d565b9350608088013591508082111561565657600080fd5b5061566388828901614c0c565b9150509295509295909350565b600080600080600080600060e0888a03121561568b57600080fd5b87356001600160401b03808211156156a257600080fd5b6156ae8b838c01614c0c565b985060208a01359150808211156156c457600080fd5b6156d08b838c01614c0c565b975060408a01359150808211156156e657600080fd5b6156f28b838c01614c0c565b965060608a013591508082111561570857600080fd5b6157148b838c01614c0c565b955060808a013591508082111561572a57600080fd5b6157368b838c01614c0c565b945060a08a013591508082111561574c57600080fd5b6157588b838c01614c0c565b935060c08a013591508082111561576e57600080fd5b5061577b8a828b01614c0c565b91505092959891949750929550565b6000806040838503121561579d57600080fd5b82359150602083013561538281614961565b60008060008060008060c087890312156157c857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806000806080858703121561580857600080fd5b84356001600160401b0381111561581e57600080fd5b61582a878288016151a7565b94505060208501359250604085013561584281614961565b9150615850606086016149f7565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b600060408201600385106158875761588761585b565b8483526020604081850152818551808452606086019150828701935060005b818110156158c45784511515835293830193918301916001016158a6565b5090979650505050505050565b600080604083850312156158e457600080fd5b82356001600160401b03808211156158fb57600080fd5b615083868387016151a7565b600080600080600060a0868803121561591f57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806000806080858703121561595857600080fd5b84356001600160401b0381111561596e57600080fd5b61597a878288016151a7565b945050615989602086016149f7565b93969395505050506040820135916060013590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016159dc576159dc6159b4565b5060010190565b6001600160a01b0392831681529116602082015260400190565b60ff818116838216019081111561118c5761118c6159b4565b60ff828116828216039081111561118c5761118c6159b4565b808202811582820484141761118c5761118c6159b4565b600082615a6357634e487b7160e01b600052601260045260246000fd5b500490565b600060ff821660ff8103615a7e57615a7e6159b4565b60010192915050565b600060ff821680615a9a57615a9a6159b4565b6000190192915050565b6001600160a01b03831681526040810160048310615ac457615ac461585b565b8260208301529392505050565b600060208284031215615ae357600080fd5b81516146f281614961565b6020808252600d908201526c24b73b30b634b229b2b73232b960991b604082015260600190565b8181038181111561118c5761118c6159b4565b600081518084526020808501945080840160005b83811015615b5d57815162ffffff1687529582019590820190600101615b3c565b509495945050505050565b606080825284519082018190526000906020906080840190828801845b82811015615ba157815184529284019290840190600101615b85565b5050508381038285015285518082528683019183019060005b81811015615bda57835161ffff1683529284019291840191600101615bba565b50508481036040860152615bee8187615b28565b98975050505050505050565b8082018082111561118c5761118c6159b4565b600060a08201878352602061ffff80891682860152604062ffffff8916818701526060600289810b8289015260a0608089015285895180885260c08a019150868b01975060005b81811015615c885788518051881684528881015160ff1689850152860151840b868401529787019791840191600101615c54565b50909e9d5050505050505050505050505050565b8082018281126000831280158216821582161715615cbc57615cbc6159b4565b505092915050565b8181036000831280158383131683831282161715611972576119726159b4565b8881526000602089818401528860408401528760608401528660808401528560a08401528460c084015260e08301845182860160005b82811015615d3657815184529284019290840190600101615d1a565b50919d9c5050505050505050505050505056feb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159ca26469706673582212201a714f78f00f178b4b1acf5dbcf2dbfd6d8d4b5ec3f2b2dcd70de524bdd26f5164736f6c63430008140033
🤖 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.