0 txs
0 calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
ANNUAL_COVERAGE_TOKENS
viewfunction ANNUAL_COVERAGE_TOKENS() view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
BASE_REWARD
viewfunction BASE_REWARD() view returns (uint256)
bmiCoverStaking
viewfunction bmiCoverStaking() view returns (address)
claimingRegistry
viewfunction claimingRegistry() view returns (address)
claimVoting
viewfunction claimVoting() view returns (address)
contractType
viewfunction contractType() view returns (uint8)
convertBMIXToSTBL
viewfunction convertBMIXToSTBL(uint256 _amount) view returns (uint256)
convertSTBLToBMIX
viewfunction convertSTBLToBMIX(uint256 _amount) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
EPOCH_DURATION
viewfunction EPOCH_DURATION() view returns (uint256)
epochAmounts
viewfunction epochAmounts(uint256) view returns (uint256)
epochStartTime
viewfunction epochStartTime() view returns (uint256)
getAPY
viewfunction getAPY() view returns (uint256)
getAvailableBMIXWithdrawableAmount
viewfunction getAvailableBMIXWithdrawableAmount(address _userAddr) view returns (uint256)
getClaimApprovalAmount
viewfunction getClaimApprovalAmount(address user) view returns (uint256)
getEpoch
viewfunction getEpoch(uint256 time) view returns (uint256)
getNewCoverAndLiquidity
viewfunction getNewCoverAndLiquidity() view returns (uint256 newTotalCoverTokens, uint256 newTotalLiquidity)
getPolicyPrice
viewfunction getPolicyPrice(uint256 _epochsNumber, uint256 _coverTokens) view returns (uint256 totalSeconds, uint256 totalPrice)
getWithdrawalStatus
viewfunction getWithdrawalStatus(address _userAddr) view returns (uint8)
info
viewfunction info() view returns (string _symbol, address _insuredContract, uint8 _contractType, bool _whitelisted)
injector
viewfunction injector() view returns (address _injector)
insuranceContractAddress
viewfunction insuranceContractAddress() view returns (address)
lastDistributionEpoch
viewfunction lastDistributionEpoch() view returns (uint256)
lastPremiumDistributionAmount
viewfunction lastPremiumDistributionAmount() view returns (int256)
lastPremiumDistributionEpoch
viewfunction lastPremiumDistributionEpoch() view returns (uint256)
liquidityFromLM
viewfunction liquidityFromLM(address) view returns (uint256)
liquidityMining
viewfunction liquidityMining() view returns (address)
liquidityRegistry
viewfunction liquidityRegistry() view returns (address)
MAX_PREMIUM_DISTRIBUTION_EPOCHS
viewfunction MAX_PREMIUM_DISTRIBUTION_EPOCHS() view returns (uint256)
MAXIMUM_EPOCHS
viewfunction MAXIMUM_EPOCHS() view returns (uint256)
MAXIMUM_REWARD
viewfunction MAXIMUM_REWARD() view returns (uint256)
MINIMUM_REWARD
viewfunction MINIMUM_REWARD() view returns (uint256)
MINUMUM_COVERAGE
viewfunction MINUMUM_COVERAGE() view returns (uint256)
MODERATE_UTILIZATION_RATIO
viewfunction MODERATE_UTILIZATION_RATIO() view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
numberStats
viewfunction numberStats() view returns (uint256 _maxCapacities, uint256 _totalSTBLLiquidity, uint256 _stakedSTBL, uint256 _annualProfitYields, uint256 _annualInsuranceCost, uint256 _bmiXRatio)
policyBookAdmin
viewfunction policyBookAdmin() view returns (address)
policyBookFabricAddress
viewfunction policyBookFabricAddress() view returns (address)
policyBookRegistry
viewfunction policyBookRegistry() view returns (address)
policyHolders
viewfunction policyHolders(address) view returns (uint256 coverTokens, uint256 startEpochNumber, uint256 endEpochNumber, uint256 paid)
policyQuote
viewfunction policyQuote() view returns (address)
policyRegistry
viewfunction policyRegistry() view returns (address)
PREMIUM_DISTRIBUTION_EPOCH
viewfunction PREMIUM_DISTRIBUTION_EPOCH() view returns (uint256)
premiumDistributionDeltas
viewfunction premiumDistributionDeltas(uint256) view returns (int256)
priceFeed
viewfunction priceFeed() view returns (address)
PROTOCOL_PERCENTAGE
viewfunction PROTOCOL_PERCENTAGE() view returns (uint256)
READY_TO_WITHDRAW_PERIOD
viewfunction READY_TO_WITHDRAW_PERIOD() view returns (uint256)
reinsurancePoolAddress
viewfunction reinsurancePoolAddress() view returns (address)
rewardsGenerator
viewfunction rewardsGenerator() view returns (address)
RISKY_UTILIZATION_RATIO
viewfunction RISKY_UTILIZATION_RATIO() view returns (uint256)
secondsToEndCurrentEpoch
viewfunction secondsToEndCurrentEpoch() view returns (uint256)
stblDecimals
viewfunction stblDecimals() view returns (uint256)
stblToken
viewfunction stblToken() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalCoverTokens
viewfunction totalCoverTokens() view returns (uint256)
totalLiquidity
viewfunction totalLiquidity() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
userStats
viewfunction userStats(address _user) view returns (tuple)
VIRTUAL_EPOCHS
viewfunction VIRTUAL_EPOCHS() view returns (uint256)
whitelisted
viewfunction whitelisted() view returns (bool)
WITHDRAWAL_PERIOD
viewfunction WITHDRAWAL_PERIOD() view returns (uint256)
withdrawalsInfo
viewfunction withdrawalsInfo(address) view returns (uint256 withdrawalAmount, uint256 readyToWithdrawDate, bool withdrawalAllowed)
__PolicyBook_init
nonpayablefunction __PolicyBook_init(address _insuranceContract, uint8 _contractType, string _description, string _projectSymbol)
addLiquidity
nonpayablefunction addLiquidity(uint256 _liquidityAmount)
addLiquidityAndStake
nonpayablefunction addLiquidityAndStake(uint256 _liquidityAmount, uint256 _stakeSTBLAmount)
addLiquidityFor
nonpayablefunction addLiquidityFor(address _liquidityHolderAddr, uint256 _liquidityAmount)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
buyPolicy
nonpayablefunction buyPolicy(uint256 _epochsNumber, uint256 _coverTokens)
buyPolicyFor
nonpayablefunction buyPolicyFor(address _buyer, uint256 _epochsNumber, uint256 _coverTokens)
commitClaim
nonpayablefunction commitClaim(address claimer, uint256 claimAmount, uint256 claimEndTime, uint8 status)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
requestWithdrawal
nonpayablefunction requestWithdrawal(uint256 _tokensToWithdraw)
requestWithdrawalWithPermit
nonpayablefunction requestWithdrawalWithPermit(uint256 _tokensToWithdraw, uint8 _v, bytes32 _r, bytes32 _s)
setDependencies
nonpayablefunction setDependencies(address _contractsRegistry)
setInjector
nonpayablefunction setInjector(address _injector)
submitAppealAndInitializeVoting
nonpayablefunction submitAppealAndInitializeVoting(string evidenceURI)
submitClaimAndInitializeVoting
nonpayablefunction submitClaimAndInitializeVoting(string evidenceURI)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
unlockTokens
nonpayablefunction unlockTokens()
updateEpochsInfo
nonpayablefunction updateEpochsInfo()
whitelist
nonpayablefunction whitelist(bool _whitelisted)
withdrawLiquidity
nonpayablefunction withdrawLiquidity()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CoverageChanged
event CoverageChanged(uint256 _newTotalCoverTokens)
LiquidityAdded
event LiquidityAdded(address _liquidityHolder, uint256 _liquidityAmount, uint256 _newTotalLiquidity)
LiquidityWithdrawn
event LiquidityWithdrawn(address _liquidityHolder, uint256 _tokensToWithdraw, uint256 _newTotalLiquidity)
PolicyBought
event PolicyBought(address _policyHolder, uint256 _coverTokens, uint256 _price, uint256 _newTotalCoverTokens)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
WithdrawalRequested
event WithdrawalRequested(address _liquidityHolder, uint256 _tokensToWithdraw, uint256 _readyToWithdrawDate)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061592580620000216000396000f3fe608060405234801561001057600080fd5b50600436106104e35760003560e01c80637491687e1161028e578063b014bb9f11610167578063d8811d13116100d9578063f60ca64111610092578063f60ca641146109b6578063f60ff937146109be578063f968f493146109c6578063fb4d6b90146109ce578063ff4fbd5b146109d6578063ff81decd146109e9576104e3565b8063d8811d1314610965578063dd62ed3e14610978578063e7c266201461098b578063edaf2c6a14610993578063efa1f98a1461099b578063f04db154146109ae576104e3565b8063c65cd70d1161012b578063c65cd70d1461091f578063c69d41f114610927578063cb2ef6f71461092f578063d2cbf7ad14610937578063d45435c51461093f578063d505accf14610952576104e3565b8063b014bb9f146108c0578063bc0bc6ba146108c8578063bd5ed298146108db578063be325a4a146108fd578063c0f0b3c214610905576104e3565b806395d89b4111610200578063a67d1289116101c4578063a67d12891461087a578063a70b9f0c1461088d578063a821104314610895578063a862774f1461089d578063a9059cbb146108a5578063aaa1380d146108b8576104e3565b806395d89b41146108315780639e25e75b146108395780639ee679e8146108415780639f44f3c814610854578063a457c2d714610867576104e3565b806383daefb51161025257806383daefb5146107d357806385b2d535146107db5780638a65d874146107e35780638cb941cc14610803578063905776f714610816578063954e4d5414610829576104e3565b80637491687e146107725780637ea382c1146107925780637ecebe001461079a57806380df1ee5146107ad5780638389cb18146107c0576104e3565b8063370158ea116103c05780635c1a7ebe1161033257806368e51e9a116102f657806368e51e9a1461070657806370a082311461071957806370b68a2a1461072c5780637234751b1461074f578063741bef1a14610762578063743a91411461076a576104e3565b80635c1a7ebe146106bd5780635da2460d146106d05780636436d82a146106e357806365f61093146106eb57806366cec305146106f3576104e3565b80634596426f116103845780634596426f14610677578063461716101461068a578063483fb4bf146106925780634deebf6a1461069a57806351c6590a146106a257806353629747146106b5576104e3565b8063370158ea1461063457806338e8e6411461064c57806339509351146106545780633d9287fa14610667578063400b70d51461066f576104e3565b806318160ddd1161045957806322009af61161041d57806322009af6146105d357806323b872dd146105db5780632526ded0146105ee57806329891f69146105f6578063313ce567146106175780633644e5151461062c576104e3565b806318160ddd146105a05780631c4dd7d0146105a85780631dcd4974146105b05780631dec4ae9146105b85780631feb0e3c146105c0576104e3565b8063095ea7b3116104ab578063095ea7b31461054d5780630bf390b81461056d5780630c2488fb146105755780630f36c97e1461058857806314c179c01461059057806315770f9214610598576104e3565b8063010a04ba146104e8578063024392d6146104fd57806302cd29591461051b57806306fdde031461053057806307e2ad2f14610545575b600080fd5b6104fb6104f6366004614e97565b6109f1565b005b610505610b5a565b604051610512919061527a565b60405180910390f35b610523610b60565b6040516105129190615171565b610538610b6f565b6040516105129190615296565b610523610c05565b61056061055b366004614f2c565b610c14565b604051610512919061526f565b610505610c32565b6104fb610583366004614f8b565b610c39565b610505610f2e565b610523610f35565b610505610f44565b610505610f4a565b610523610f50565b610523610f5f565b610505610f6e565b6105056105ce36600461504f565b610f7e565b610505610f90565b6105606105e9366004614de7565b610f9f565b610505611027565b61060961060436600461507f565b611036565b6040516105129291906155f0565b61061f611163565b604051610512919061567e565b61050561116c565b61063c61117b565b60405161051294939291906152a9565b6105236111b6565b610560610662366004614f2c565b6111c5565b610560611213565b61052361121c565b61050561068536600461504f565b61122b565b61052361126b565b610505611290565b61050561129f565b6104fb6106b036600461504f565b6112a5565b6105056112b9565b6104fb6106cb36600461500f565b6112be565b6104fb6106de36600461507f565b611304565b610523611316565b610505611325565b610505610701366004614d77565b61137a565b6104fb6107143660046150a0565b61138c565b610505610727366004614d77565b6113ad565b61073f61073a366004614d77565b6113c8565b6040516105129493929190615616565b6104fb61075d366004614f57565b6113ef565b610523611439565b610505611448565b610785610780366004614d77565b611458565b6040516105129190615283565b6104fb6114e5565b6105056107a8366004614d77565b61173a565b6105056107bb366004614d77565b61175b565b6104fb6107ce366004614d77565b611808565b61052361213a565b610523612149565b6107f66107f1366004614d77565b612158565b60405161051291906155c5565b6104fb610811366004614d77565b6121ae565b6104fb61082436600461500f565b61224e565b61050561228d565b610538612292565b6105056122f3565b6104fb61084f36600461504f565b6122f8565b61050561086236600461504f565b61246d565b610560610875366004614f2c565b61249c565b61050561088836600461504f565b612504565b610505612516565b61050561251d565b61052361252a565b6105606108b3366004614f2c565b612539565b61050561254d565b61052361255d565b6105056108d636600461504f565b61256c565b6108ee6108e9366004614d77565b612593565b604051610512939291906155fe565b6105056125b7565b61090d6125be565b60405161051296959493929190615656565b6105236127f8565b610505612807565b61078561280d565b61050561281d565b61050561094d366004614d77565b612893565b6104fb610960366004614e27565b6128c6565b6104fb610973366004614fd7565b612a69565b610505610986366004614daf565b612ab9565b610505612ae4565b610523612af1565b6104fb6109a9366004614f2c565b612b00565b610505612b69565b610505612b6f565b610505612b75565b6104fb612b7b565b6104fb612c81565b6104fb6109e436600461507f565b612d2d565b610609612dd3565b600054610100900460ff1680610a0a5750610a0a612e52565b80610a18575060005460ff16155b610a535760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff16158015610a7e576000805460ff1961ff0019909116610100171660011790555b60608383604051602001610a93929190615143565b6040516020818303038152906040529050610aad81612e63565b610aee86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250859250612f39915050565b60d180546001600160a01b0319166001600160a01b038a161780825588919060ff60a01b1916600160a01b836003811115610b2557fe5b02179055504260cd55600160ce55610b3b612fee565b60cf55508015610b51576000805461ff00191690555b50505050505050565b60d05481565b60d5546001600160a01b031681565b60368054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bfb5780601f10610bd057610100808354040283529160200191610bfb565b820191906000526020600020905b815481529060010190602001808311610bde57829003601f168201915b5050505050905090565b60de546001600160a01b031681565b6000610c28610c21612ff7565b8484612ffb565b5060015b92915050565b620a8c0081565b60d8546001600160a01b0316610c4d612ff7565b6001600160a01b031614610c7c5760405162461bcd60e51b8152600401610c73906154a5565b60405180910390fd5b610c846130e7565b610c8c612c81565b6006816006811115610c9a57fe5b1415610db55760e154600090610cb09085613115565b60e181905560e054909150610cc59085613115565b60e081905550610cee85610cdb8660e754613172565b60d3546001600160a01b03169190613180565b7f377cc25f1a02f4cd19f49994f358cebfea83638921a24339283587389ffae1ae81604051610d1d919061527a565b60405180910390a16001600160a01b03808616600090815260e3602052604080822082815560018101839055600281018390556003019190915560d4549051633c69c6c160e11b81529116906378d38d8290610d7d908890600401615171565b600060405180830381600087803b158015610d9757600080fd5b505af1158015610dab573d6000803e3d6000fd5b5050505050610f20565b6004816006811115610dc357fe5b1415610e55576000610e0b610dd78461256c565b600101600260e36000896001600160a01b03166001600160a01b0316815260200190815260200160002060020154016131d2565b6001600160a01b038616600090815260e3602090815260408083205484845260e590925290912054919250610e4091906131e9565b600091825260e5602052604090912055610f20565b6001600160a01b038416600090815260e360205260408120600290810154610e7c916131e9565b90508060ce5411610ecc576001600160a01b038516600090815260e3602090815260408083205484845260e590925290912054610eb8916131e9565b600082815260e56020526040902055610f1e565b60e154600090610edc9086613115565b90508060e1819055507f377cc25f1a02f4cd19f49994f358cebfea83638921a24339283587389ffae1ae81604051610f14919061527a565b60405180910390a1505b505b610f28613243565b50505050565b6202a30081565b60d1546001600160a01b031681565b60e05481565b60355490565b60d4546001600160a01b031681565b60dd546001600160a01b031681565b6b0295be96e64066972000000081565b60e56020526000908152604090205481565b676765c793fa10079d601b1b81565b6000610fac848484613404565b61101c84610fb8612ff7565b6110178560405180606001604052806028815260200161580f602891396001600160a01b038a16600090815260346020526040812090610ff6612ff7565b6001600160a01b031681526020810191909152604001600020549190613561565b612ffb565b5060015b9392505050565b6aa56fa5b99019a5c800000081565b60008068056bc75e2d631000008310156110625760405162461bcd60e51b8152600401610c739061559c565b600084118015611073575060348411155b61108f5760405162461bcd60e51b8152600401610c7390615565565b60008061109a612dd3565b90925090506110c86110ba62093a806110b4896001613115565b906135f8565b6110c2611325565b906131e9565b60dc5460cc5460405162e29efd60e01b81529296506001600160a01b039091169162e29efd916111089188918a918891889160ff90911690600401615631565b60206040518083038186803b15801561112057600080fd5b505afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111589190615067565b925050509250929050565b60385460ff1690565b6000611176613651565b905090565b6060600080600061118a612292565b60d15460cc549195506001600160a01b038116945060ff600160a01b9091048116935016905090919293565b60da546001600160a01b031681565b6000610c286111d2612ff7565b8461101785603460006111e3612ff7565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906131e9565b60cc5460ff1681565b60dc546001600160a01b031681565b600080611236612dd3565b91506112629050676765c793fa10079d601b1b61125c6112558461368c565b86906135f8565b906136cb565b9150505b919050565b7fd6b8f2e074594ceb05d47c27386969754b6ad0c15e5eb8f691399cd0be980e765490565b6a7c13bc4b2c133c5600000081565b60e75481565b6112b66112b0612ff7565b82613732565b50565b603481565b61130082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506138dd915050565b5050565b61130061130f612ff7565b8383613b81565b60df546001600160a01b031681565b60008061134462093a8061125c60cd544261311590919063ffffffff16565b600101905061137461136160cd544261311590919063ffffffff16565b61136e8362093a806135f8565b90613115565b91505090565b60e46020526000908152604090205481565b6113a4611397612ff7565b30866000198787876128c6565b610f28846122f8565b6001600160a01b031660009081526033602052604090205490565b60e36020526000908152604090208054600182015460028301546003909301549192909184565b60de546001600160a01b0316611403612ff7565b6001600160a01b0316146114295760405162461bcd60e51b8152600401610c739061534d565b611434838383613b81565b505050565b60d2546001600160a01b031681565b6b019d971e4fe8401e7400000081565b6001600160a01b038116600090815260e2602052604081206001015480611483576000915050611266565b80421015611495576001915050611266565b6114a2816202a3006131e9565b42101580156114cd57506001600160a01b038316600090815260e2602052604090206002015460ff16155b156114dc576003915050611266565b50600292915050565b6114ed6130e7565b60026114fa610780612ff7565b600381111561150557fe5b146115225760405162461bcd60e51b8152600401610c739061546e565b61152a612c81565b60e054600060e28161153a612ff7565b6001600160a01b03166001600160a01b0316815260200190815260200160002060000154905060006115838261157e61086260e1548761311590919063ffffffff16565b613f2f565b905060006115908261122b565b90506115a961159d612ff7565b610cdb8360e754613172565b6115b33083613f3e565b6115bd8482613115565b93506115c98383613115565b9250826116755760e260006115dc612ff7565b6001600160a01b039081168252602082019290925260400160009081208181556001810191909155600201805460ff1916905560da541663eca51feb611620612ff7565b306040518363ffffffff1660e01b815260040161163e929190615185565b600060405180830381600087803b15801561165857600080fd5b505af115801561166c573d6000803e3d6000fd5b505050506116e5565b600160e26000611683612ff7565b6001600160a01b03166001600160a01b0316815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508260e260006116ca612ff7565b6001600160a01b031681526020810191909152604001600020555b60e08490557fb195a67e698c5700e4f48f7b7748dda3a206ee2767ef024b61a26d7b17b2d63a611713612ff7565b828660405161172493929190615204565b60405180910390a150505050611738613243565b565b6001600160a01b0381166000908152609960205260408120610c2c9061403a565b60d2546001600160a01b03828116600090815260e3602052604081205490929190911690638d754d5b9061179c906117949060646136cb565b60e754613172565b6040518263ffffffff1660e01b81526004016117b8919061527a565b60206040518083038186803b1580156117d057600080fd5b505afa1580156117e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c9190615067565b600061181261126b565b90506001600160a01b038116158061183257506001600160a01b03811633145b611883576040805162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a204e6f7420616e20696e6a6563746f72000000000000604482015290519081900360640190fd5b816001600160a01b0316639bc0c5d26040518163ffffffff1660e01b815260040160206040518083038186803b1580156118bc57600080fd5b505afa1580156118d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f49190614d93565b60d260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316639038a3ce6040518163ffffffff1660e01b815260040160206040518083038186803b15801561195357600080fd5b505afa158015611967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198b9190614d93565b60d360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663f0f8c04e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119ea57600080fd5b505afa1580156119fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a229190614d93565b60d560006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663fb6db8a86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8157600080fd5b505afa158015611a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab99190614d93565b60d660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663fae7baef6040518163ffffffff1660e01b815260040160206040518083038186803b158015611b1857600080fd5b505afa158015611b2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b509190614d93565b60d760006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663ae0a0f866040518163ffffffff1660e01b815260040160206040518083038186803b158015611baf57600080fd5b505afa158015611bc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be79190614d93565b60d860006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316630bc3f29d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611c4657600080fd5b505afa158015611c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7e9190614d93565b60d460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b03166334dd10546040518163ffffffff1660e01b815260040160206040518083038186803b158015611cdd57600080fd5b505afa158015611cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d159190614d93565b60db60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663db43ccb56040518163ffffffff1660e01b815260040160206040518083038186803b158015611d7457600080fd5b505afa158015611d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dac9190614d93565b60dc60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b03166339f9615f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0b57600080fd5b505afa158015611e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e439190614d93565b60d960006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316633279c2fa6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ea257600080fd5b505afa158015611eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eda9190614d93565b60da60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316631ef35fc96040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3957600080fd5b505afa158015611f4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f719190614d93565b60dd60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b031663dc9c563f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd057600080fd5b505afa158015611fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120089190614d93565b60de60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550816001600160a01b0316632bf0f8536040518163ffffffff1660e01b815260040160206040518083038186803b15801561206757600080fd5b505afa15801561207b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209f9190614d93565b60df80546001600160a01b0319166001600160a01b0392831617905560d3546040805163313ce56760e01b81529051919092169163313ce567916004808301926020929190829003018186803b1580156120f857600080fd5b505afa15801561210c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213091906150dc565b60ff1660e7555050565b60d3546001600160a01b031681565b60d7546001600160a01b031681565b612160614c67565b506001600160a01b0316600090815260e36020908152604091829020825160808101845281548152600182015492810192909252600281015492820192909252600390910154606082015290565b60006121b861126b565b90506001600160a01b03811615806121d857506001600160a01b03811633145b612229576040805162461bcd60e51b815260206004820152601a60248201527f446570656e64616e743a204e6f7420616e20696e6a6563746f72000000000000604482015290519081900360640190fd5b507fd6b8f2e074594ceb05d47c27386969754b6ad0c15e5eb8f691399cd0be980e7655565b61130082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506138dd915050565b605a81565b60378054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610bfb5780601f10610bd057610100808354040283529160200191610bfb565b600281565b6123006130e7565b600081116123205760405162461bcd60e51b8152600401610c7390615539565b600061232b8261122b565b9050600061233f61233a612ff7565b61403e565b9050818110156123615760405162461bcd60e51b8152600401610c7390615374565b612369612c81565b60e15461237690836131e9565b60e05410156123975760405162461bcd60e51b8152600401610c7390615410565b6123a86123a2612ff7565b8461412c565b60006123b742620a8c006131e9565b905060405180606001604052808581526020018281526020016000151581525060e260006123e3612ff7565b6001600160a01b0316815260208082019290925260409081016000208351815591830151600183015591909101516002909101805460ff19169115159190911790557f24b91f4f47caf44230a57777a9be744924e82bf666f2d5702faf97df35e60f9f61244e612ff7565b858360405161245f93929190615204565b60405180910390a150505050565b600080612478612dd3565b9150506112626124878261368c565b61125c85676765c793fa10079d601b1b6135f8565b6000610c286124a9612ff7565b84611017856040518060600160405280602581526020016158cb60259139603460006124d3612ff7565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190613561565b60e66020526000908152604090205481565b62093a8081565b68056bc75e2d6310000081565b60d9546001600160a01b031681565b6000610c28612546612ff7565b8484613404565b6b06765c793fa10079d000000081565b60d8546001600160a01b031681565b600061258a62093a8061125c60cd548561311590919063ffffffff16565b60010192915050565b60e26020526000908152604090208054600182015460029092015490919060ff1683565b6201518081565b60008060008060008060006125d1612dd3565b60d6546040516355e2c12360e01b81528383039a509198509192506001600160a01b03909116906355e2c1239061260c903090600401615171565b60206040518083038186803b15801561262457600080fd5b505afa158015612638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265c9190615067565b60d5546040516351ce4b1360e01b81529196506126eb916001600160a01b03909116906351ce4b1390612693903090600401615171565b60206040518083038186803b1580156126ab57600080fd5b505afa1580156126bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e39190615067565b6110c261281d565b93506000612702683635c9adc5dea0000089613f2f565b905068056bc75e2d6310000081106127db5760dc5460cc5460405162e29efd60e01b81526001600160a01b039092169162e29efd91612755916301e1338091869188918e9160ff90911690600401615631565b60206040518083038186803b15801561276d57600080fd5b505afa158015612781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a59190615067565b93506127d8600a61125c6a084595161401484a000000816127d18682683635c9adc5dea00000856135f8565b89906135f8565b93505b6127ec670de0b6b3a764000061122b565b92505050909192939495565b60d6546001600160a01b031681565b60ce5481565b60d154600160a01b900460ff1681565b60cf546000908161282c612fee565b60d0549091508282111561284a57612844838361424f565b50925090505b60018201600090815260e660205260409020540161288b612878670de0b6b3a76400006110c2610685610f4a565b61125c629896806110b48561016d6135f8565b935050505090565b60008060006128a0612dd3565b90925090506128be6108626128b58385613115565b61157e8761403e565b949350505050565b8342111561291b576040805162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015290519081900360640190fd5b6000609a54888888612950609960008e6001600160a01b03166001600160a01b0316815260200190815260200160002061403a565b8960405160200180878152602001866001600160a01b03168152602001856001600160a01b03168152602001848152602001838152602001828152602001965050505050505060405160208183030381529060405280519060200120905060006129b9826142a3565b905060006129c9828787876142ef565b9050896001600160a01b0316816001600160a01b031614612a31576040805162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015290519081900360640190fd5b6001600160a01b038a166000908152609960205260409020612a529061446d565b612a5d8a8a8a612ffb565b50505050505050505050565b60dd546001600160a01b0316612a7d612ff7565b6001600160a01b031614612aa35760405162461bcd60e51b8152600401610c7390615447565b60cc805460ff19168215151790556112b6613243565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b683635c9adc5dea0000081565b60db546001600160a01b031681565b60d7546001600160a01b0316612b14612ff7565b6001600160a01b03161480612b43575060df546001600160a01b0316612b38612ff7565b6001600160a01b0316145b612b5f5760405162461bcd60e51b8152600401610c7390615324565b6113008282613732565b60cf5481565b60cd5481565b60e15481565b600060e26000612b89612ff7565b6001600160a01b03168152602081019190915260400160002054905080612bc25760405162461bcd60e51b8152600401610c7390615539565b3063a9059cbb612bd0612ff7565b836040518363ffffffff1660e01b8152600401612bee9291906151eb565b602060405180830381600087803b158015612c0857600080fd5b505af1158015612c1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c409190614ff3565b5060e26000612c4d612ff7565b6001600160a01b03168152602081019190915260400160009081208181556001810191909155600201805460ff1916905550565b60ce546000612c9b612c924261256c565b60348401613f2f565b9050808210156113005760e154825b82811015612ce557600081815260e56020526040902054612ccc908390613115565b600082815260e560205260408120559150600101612caa565b5060ce82905560e18190556040517f377cc25f1a02f4cd19f49994f358cebfea83638921a24339283587389ffae1ae90612d2090839061527a565b60405180910390a1505050565b81811115612d4d5760405162461bcd60e51b8152600401610c73906153ab565b612d5e612d58612ff7565b83613732565b60d5546001600160a01b0316632fb5588f612d77612ff7565b612d808461246d565b6040518363ffffffff1660e01b8152600401612d9d9291906151eb565b600060405180830381600087803b158015612db757600080fd5b505af1158015612dcb573d6000803e3d6000fd5b505050505050565b60e05460e15460cf549091906000612de9612fee565b905081811115612e0257612dfd828261424f565b945050505b6000612e17612e104261256c565b6034613f2f565b60ce549091505b81811015612e4a57600081815260e56020526040902054612e40908790613115565b9550600101612e1e565b505050509091565b6000612e5d30614476565b15905090565b600054610100900460ff1680612e7c5750612e7c612e52565b80612e8a575060005460ff16155b612ec55760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff16158015612ef0576000805460ff1961ff0019909116610100171660011790555b612ef861447c565b612f1b82604051806040016040528060018152602001603160f81b81525061451d565b612f24826145dd565b8015611300576000805461ff00191690555050565b600054610100900460ff1680612f525750612f52612e52565b80612f60575060005460ff16155b612f9b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff16158015612fc6576000805460ff1961ff0019909116610100171660011790555b612fce61447c565b612fd883836146a3565b8015611434576000805461ff0019169055505050565b62015180420490565b3390565b6001600160a01b0383166130405760405162461bcd60e51b815260040180806020018281038252602481526020018061587d6024913960400191505060405180910390fd5b6001600160a01b0382166130855760405162461bcd60e51b815260040180806020018281038252602281526020018061570e6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60cf5460006130f4612fee565b90508181111561130057613108828261424f565b60e05560cf5560d0555050565b60008282111561316c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006110208360128461477b565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526114349084906147bd565b6000818310156131e25781611020565b5090919050565b600082820183811015611020576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60cc5460009060ff161561338e575060e05460e1546a7c13bc4b2c133c56000000919080158015906132755750600082115b1561338b57676765c793fa10079d601b1b925060006132988361125c84876135f8565b90506b019d971e4fe8401e74000000811015613310576133096a7c13bc4b2c133c560000006110c26b019d971e4fe8401e7400000061125c6132e5676765c793fa10079d601b1b85613115565b6110b46a084595161401484a00000061136e896a084595161401484a0000006131d2565b9350613389565b6b0295be96e64066972000000081111561338957613386676765c793fa10079d601b1b6110c261334c826b0295be96e640669720000000613115565b61125c613365866b0295be96e640669720000000613115565b6110b46b06765c793fa10079d0000000676765c793fa10079d601b1b613115565b93505b505b50505b60d6546001600160a01b0316634f66fd336133b38369021e19e0c9bab24000006136cb565b6040518263ffffffff1660e01b81526004016133cf919061527a565b600060405180830381600087803b1580156133e957600080fd5b505af11580156133fd573d6000803e3d6000fd5b5050505050565b6001600160a01b0383166134495760405162461bcd60e51b81526004018080602001828103825260258152602001806158586025913960400191505060405180910390fd5b6001600160a01b03821661348e5760405162461bcd60e51b81526004018080602001828103825260238152602001806156c96023913960400191505060405180910390fd5b613499838383611434565b6134d681604051806060016040528060268152602001615730602691396001600160a01b0386166000908152603360205260409020549190613561565b6001600160a01b03808516600090815260336020526040808220939093559084168152205461350590826131e9565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156135f05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135b557818101518382015260200161359d565b50505050905090810190601f1680156135e25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008261360757506000610c2c565b8282028284828161361457fe5b04146110205760405162461bcd60e51b81526004018080602001828103825260218152602001806157ee6021913960400191505060405180910390fd5b60006111767f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61367f61486e565b613687614874565b61487a565b600080613697610f4a565b9050806136b25750676765c793fa10079d601b1b9050611266565b6112628161125c85676765c793fa10079d601b1b6135f8565b6000808211613721576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161372a57fe5b049392505050565b61373a6130e7565b60006137488260e754613172565b90506000811161376a5760405162461bcd60e51b8152600401610c7390615502565b613772612c81565b60df546001600160a01b0316613786612ff7565b6001600160a01b0316146137ac5760d3546137ac906001600160a01b03168430846148dc565b60d7546001600160a01b03166137c0612ff7565b6001600160a01b0316141561380c576001600160a01b038316600090815260e460205260409020546137f290836131e9565b6001600160a01b038416600090815260e460205260409020555b61381e836138198461246d565b614936565b60e05460009061382e90846131e9565b60e081905560da546040516358e9a02560e11b81529192506001600160a01b03169063b1d3404a906138669087903090600401615185565b600060405180830381600087803b15801561388057600080fd5b505af1158015613894573d6000803e3d6000fd5b505050507fac1d76749e5447b7b16f5ab61447e1bd502f3bb4807af3b28e620d1700a6ee458484836040516138cb93929190615204565b60405180910390a15050611300613243565b600060e360006138eb612ff7565b6001600160a01b0316815260208101919091526040016000908120549150600260e382613916612ff7565b6001600160a01b03166001600160a01b03168152602001908152602001600020600201540190508261396f57600081815260e5602052604090205461395b9083613115565b600082815260e56020526040902055613abe565b60d9546000906001600160a01b0316635e57463461398b612ff7565b306040518363ffffffff1660e01b81526004016139a9929190615185565b60206040518083038186803b1580156139c157600080fd5b505afa1580156139d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f99190615067565b60d95460405163a1ee1c0160e01b8152919250600091613a9091613a87916001600160a01b039091169063a1ee1c0190613a3790879060040161527a565b60206040518083038186803b158015613a4f57600080fd5b505afa158015613a63573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190615067565b600101846131d2565b600081815260e56020526040902054909150613aac9085613115565b600091825260e5602052604090912055505b60d8546001600160a01b031663084f52bf613ad7612ff7565b308786613b27676765c793fa10079d601b1b61125c6aa56fa5b99019a5c800000060e36000613b04612ff7565b6001600160a01b03168152602081019190915260400160002060030154906135f8565b896040518763ffffffff1660e01b8152600401613b499695949392919061519f565b600060405180830381600087803b158015613b6357600080fd5b505af1158015613b77573d6000803e3d6000fd5b5050505050505050565b613b896130e7565b60d454604051634f60481f60e11b81526001600160a01b0390911690639ec0903e90613bbb9086903090600401615185565b60206040518083038186803b158015613bd357600080fd5b505afa158015613be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0b9190614ff3565b15613c285760405162461bcd60e51b8152600401610c73906152ed565b60d954604051622de9f960e21b81526001600160a01b039091169062b7a7e490613c589086903090600401615185565b60206040518083038186803b158015613c7057600080fd5b505afa158015613c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca89190614ff3565b613cc45760405162461bcd60e51b8152600401610c73906153e2565b613ccc612c81565b60e154600090613cdc90836131e9565b90508060e0541015613d005760405162461bcd60e51b8152600401610c73906154cb565b600080613d0d8585611036565b90925090506000613d38676765c793fa10079d601b1b61125c846aa56fa5b99019a5c80000006135f8565b90506000613d468383613115565b90506000613d534261256c565b90506000613d6c613d658a6001613115565b83906131e9565b9050600060028201905060405180608001604052808a81526020018481526020018381526020018781525060e360008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050613e0d8960e56000848152602001908152602001600020546131e990919063ffffffff16565b600082815260e5602052604090205560e188905560e75460db54613e54908d906001600160a01b0316613e408985613172565b60d3546001600160a01b03169291906148dc565b613e638c30613e408885613172565b613e79613e7389621275006131e9565b86614a28565b7fa3d12711d15974419cb4e52cfa3afeabb0f58a0d481bddd26772e113e7aac4f28c8b898c604051613eae9493929190615249565b60405180910390a160d454604051633213cc2360e21b81526001600160a01b039091169063c84f308c90613eec908f908e908c908e90600401615249565b600060405180830381600087803b158015613f0657600080fd5b505af1158015613f1a573d6000803e3d6000fd5b50505050505050505050505050611434613243565b60008183106131e25781611020565b6001600160a01b038216613f835760405162461bcd60e51b81526004018080602001828103825260218152602001806158376021913960400191505060405180910390fd5b613f8f82600083611434565b613fcc816040518060600160405280602281526020016156ec602291396001600160a01b0385166000908152603360205260409020549190613561565b6001600160a01b038316600090815260336020526040902055603554613ff29082613115565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b5490565b6001600160a01b038116600090815260e26020526040812054819061406a90610685906110c2866113ad565b905060d760009054906101000a90046001600160a01b03166001600160a01b0316630cbd7e846040518163ffffffff1660e01b815260040160206040518083038186803b1580156140ba57600080fd5b505afa1580156140ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f29190615067565b421015610c2c576001600160a01b038316600090815260e4602052604090205480821115614122578082036128be565b6000949350505050565b6001600160a01b038216600090815260e26020526040902054818111156141cc5760405163a9059cbb60e01b8152309063a9059cbb90614174908690868603906004016151eb565b602060405180830381600087803b15801561418e57600080fd5b505af11580156141a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c69190614ff3565b50611434565b81811015611434576040516323b872dd60e01b815230906323b872dd906141fd908690849086880390600401615225565b602060405180830381600087803b15801561421757600080fd5b505af115801561422b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f289190614ff3565b60d05460e05460009061426584605b8701613f2f565b9150600185015b82811161429b57600081815260e66020526040902054939093019261429182856131e9565b915060010161426c565b509250925092565b60006142ad613651565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156143505760405162461bcd60e51b81526004018080602001828103825260228152602001806157566022913960400191505060405180910390fd5b8360ff16601b148061436557508360ff16601c145b6143a05760405162461bcd60e51b81526004018080602001828103825260228152602001806157cc6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156143fc573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116614464576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b80546001019055565b3b151590565b600054610100900460ff16806144955750614495612e52565b806144a3575060005460ff16155b6144de5760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff16158015614509576000805460ff1961ff0019909116610100171660011790555b80156112b6576000805461ff001916905550565b600054610100900460ff16806145365750614536612e52565b80614544575060005460ff16155b61457f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff161580156145aa576000805460ff1961ff0019909116610100171660011790555b82516020808501919091208351918401919091206065919091556066558015611434576000805461ff0019169055505050565b600054610100900460ff16806145f657506145f6612e52565b80614604575060005460ff16155b61463f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff1615801561466a576000805460ff1961ff0019909116610100171660011790555b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9609a558015611300576000805461ff00191690555050565b600054610100900460ff16806146bc57506146bc612e52565b806146ca575060005460ff16155b6147055760405162461bcd60e51b815260040180806020018281038252602e81526020018061579e602e913960400191505060405180910390fd5b600054610100900460ff16158015614730576000805460ff1961ff0019909116610100171660011790555b8251614743906036906020860190614c8f565b508151614757906037906020850190614c8f565b506038805460ff191660121790558015611434576000805461ff0019169055505050565b60008183111561479b5761479484838503600a0a6136cb565b93506147b5565b818310156147b5576147b284848403600a0a6135f8565b93505b509192915050565b6060614812826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a929092919063ffffffff16565b8051909150156114345780806020019051602081101561483157600080fd5b50516114345760405162461bcd60e51b815260040180806020018281038252602a8152602001806158a1602a913960400191505060405180910390fd5b60655490565b60665490565b6000838383614887614aa1565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610f289085906147bd565b6001600160a01b038216614991576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61499d60008383611434565b6035546149aa90826131e9565b6035556001600160a01b0382166000908152603360205260409020546149d090826131e9565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000614a466001614a406201518061125c87846131e9565b906131d2565b90506000614a5483836136cb565b90506000614a60612fee565b6001818101600090815260e6602052604080822080548701905595909201018152929092208054919091039055505050565b60606128be8484600085614aa5565b4690565b606082471015614ae65760405162461bcd60e51b81526004018080602001828103825260268152602001806157786026913960400191505060405180910390fd5b614aef85614476565b614b40576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614b7f5780518252601f199092019160209182019101614b60565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614be1576040519150601f19603f3d011682016040523d82523d6000602084013e614be6565b606091505b5091509150614bf6828286614c01565b979650505050505050565b60608315614c10575081611020565b825115614c205782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156135b557818101518382015260200161359d565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614cc55760008555614d0b565b82601f10614cde57805160ff1916838001178555614d0b565b82800160010185558215614d0b579182015b82811115614d0b578251825591602001919060010190614cf0565b50614d17929150614d1b565b5090565b5b80821115614d175760008155600101614d1c565b60008083601f840112614d41578182fd5b50813567ffffffffffffffff811115614d58578182fd5b602083019150836020828501011115614d7057600080fd5b9250929050565b600060208284031215614d88578081fd5b813561102081615696565b600060208284031215614da4578081fd5b815161102081615696565b60008060408385031215614dc1578081fd5b8235614dcc81615696565b91506020830135614ddc81615696565b809150509250929050565b600080600060608486031215614dfb578081fd5b8335614e0681615696565b92506020840135614e1681615696565b929592945050506040919091013590565b600080600080600080600060e0888a031215614e41578283fd5b8735614e4c81615696565b96506020880135614e5c81615696565b955060408801359450606088013593506080880135614e7a816156b9565b9699959850939692959460a0840135945060c09093013592915050565b60008060008060008060808789031215614eaf578182fd5b8635614eba81615696565b9550602087013560048110614ecd578283fd5b9450604087013567ffffffffffffffff80821115614ee9578384fd5b614ef58a838b01614d30565b90965094506060890135915080821115614f0d578384fd5b50614f1a89828a01614d30565b979a9699509497509295939492505050565b60008060408385031215614f3e578182fd5b8235614f4981615696565b946020939093013593505050565b600080600060608486031215614f6b578283fd5b8335614f7681615696565b95602085013595506040909401359392505050565b60008060008060808587031215614fa0578384fd5b8435614fab81615696565b93506020850135925060408501359150606085013560078110614fcc578182fd5b939692955090935050565b600060208284031215614fe8578081fd5b8135611020816156ab565b600060208284031215615004578081fd5b8151611020816156ab565b60008060208385031215615021578182fd5b823567ffffffffffffffff811115615037578283fd5b61504385828601614d30565b90969095509350505050565b600060208284031215615060578081fd5b5035919050565b600060208284031215615078578081fd5b5051919050565b60008060408385031215615091578182fd5b50508035926020909101359150565b600080600080608085870312156150b5578182fd5b8435935060208501356150c7816156b9565b93969395505050506040820135916060013590565b6000602082840312156150ed578081fd5b8151611020816156b9565b60008151808452815b8181101561511d57602081850181015186830182015201615101565b8181111561512e5782602083870101525b50601f01601f19169290920160200192915050565b600062626d6960e81b825282846003840137506421b7bb32b960d91b91016003810191909152600801919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0387811682528616602082015260c0604082018190526000906151cb908301876150f8565b6060830195909552506080810192909252151560a0909101529392505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b901515815260200190565b90815260200190565b602081016152908361568c565b91905290565b60006020825261102060208301846150f8565b6000608082526152bc60808301876150f8565b6001600160a01b038616602084015290506152d68461568c565b836040830152821515606083015295945050505050565b6020808252601d908201527f50423a2054686520686f6c64657220616c726561647920657869737473000000604082015260600190565b6020808252600f908201526e14108e88139bdd08185b1b1bddd959608a1b604082015260600190565b6020808252600d908201526c28211d102737ba10309028212960991b604082015260600190565b6020808252601a908201527f50423a2057726f6e6720616e6e6f756e63656420616d6f756e74000000000000604082015260600190565b60208082526018908201527f50423a2057726f6e67207374616b696e6720616d6f756e740000000000000000604082015260600190565b60208082526014908201527350423a20436c61696d2069732070656e64696e6760601b604082015260600190565b6020808252601d908201527f50423a204e6f7420656e6f7567682066726565206c6971756964697479000000604082015260600190565b6020808252600d908201526c50423a204e6f7420612050424160981b604082015260600190565b6020808252601b908201527f50423a205769746864726177616c206973206e6f742072656164790000000000604082015260600190565b6020808252600c908201526b28211d102737ba10309021ab60a11b604082015260600190565b60208082526018908201527f50423a204e6f7420656e6f756768206c69717569646974790000000000000000604082015260600190565b6020808252601c908201527f50423a204c697175696469747920616d6f756e74206973207a65726f00000000604082015260600190565b60208082526012908201527150423a20416d6f756e74206973207a65726f60701b604082015260600190565b60208082526018908201527f50423a2057726f6e672065706f6368206475726174696f6e0000000000000000604082015260600190565b6020808252600f908201526e28211d102bb937b7339031b7bb32b960891b604082015260600190565b8151815260208083015190820152604080830151908201526060918201519181019190915260800190565b918252602082015260400190565b92835260208301919091521515604082015260600190565b93845260208401929092526040830152606082015260800190565b9485526020850193909352604084019190915260608301521515608082015260a00190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b60ff91909116815260200190565b600481106112b657fe5b6001600160a01b03811681146112b657600080fd5b80151581146112b657600080fd5b60ff811681146112b657600080fdfe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f7c9b8d8e939c576cf4ef9bea61518f10a409765f8ab2703596d6370f878b81f64736f6c63430007040033