0 txs
2.1k calls
constructor
constructor()
functions
esHMX
viewfunction esHMX() view returns (address)
getUnlockAmount
purefunction getUnlockAmount(uint256 amount, uint256 duration, uint256 totalVestingDuration) pure returns (uint256)
getUnlockAmount
viewfunction getUnlockAmount(uint256 amount, uint256 duration) view returns (uint256)
getVestingPosition
viewfunction getVestingPosition(address user, uint256 _limit, uint256 _offset) view returns (tuple[] itemList)
hmx
viewfunction hmx() view returns (address)
hmxStaking
viewfunction hmxStaking() view returns (address)
isPaused
viewfunction isPaused() view returns (bool)
itemLastIndex
viewfunction itemLastIndex(address) view returns (uint256)
items
viewfunction items(address, uint256) view returns (address owner, bool hasClaimed, bool hasAborted, uint256 amount, uint256 startTime, uint256 endTime, uint256 lastClaimTime, uint256 totalUnlockedAmount)
maxDuration
viewfunction maxDuration() view returns (uint256)
migrateFromVester
viewfunction migrateFromVester() view returns (address)
migrator
viewfunction migrator() view returns (address)
owner
viewfunction owner() view returns (address)
totalVestingEsHmxByUser
viewfunction totalVestingEsHmxByUser(address user) view returns (uint256 amount)
unusedEsHmxDestination
viewfunction unusedEsHmxDestination() view returns (address)
vestedEsHmxDestination
viewfunction vestedEsHmxDestination() view returns (address)
abort
nonpayablefunction abort(uint256 itemIndex)
batchAbort
nonpayablefunction batchAbort(uint256[] itemIndexes)
claim
nonpayablefunction claim(uint256 itemIndex)
claim
nonpayablefunction claim(uint256[] itemIndexes)
initialize
nonpayablefunction initialize(address esHMXAddress, address hmxAddress, address vestedEsHmxDestinationAddress, address unusedEsHmxDestinationAddress)
migratePosition
nonpayablefunction migratePosition(address account, uint256 amount, uint256 remaingingDuration)
migrateToNewVester
nonpayablefunction migrateToNewVester(address newVester, address deskExchanger, address[] users)
moveStake
nonpayablefunction moveStake(address from, address to, uint256 itemIndex)
renounceOwnership
nonpayablefunction renounceOwnership()
setHMXStaking
nonpayablefunction setHMXStaking(address _hmxStaking)
setIsPaused
nonpayablefunction setIsPaused(bool _isPaused)
setMaxDuration
nonpayablefunction setMaxDuration(uint256 _maxDuration)
setMigrateFromVester
nonpayablefunction setMigrateFromVester(address _migrateFromVester)
setMigrator
nonpayablefunction setMigrator(address _migrator)
setUnusedEsHmxDestinationAddress
nonpayablefunction setUnusedEsHmxDestinationAddress(address newUnusedEsHmxDestinationAddress)
setVestedEsHmxDestinationAddress
nonpayablefunction setVestedEsHmxDestinationAddress(address newVestedEsHmxDestinationAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
vestFor
nonpayablefunction vestFor(address account, uint256 amount, uint256 duration)
events
Initialized
event Initialized(uint8 version)
LogAbort
event LogAbort(address indexed owner, uint256 indexed itemIndex, uint256 returnAmount)
LogClaim
event LogClaim(address indexed owner, uint256 indexed itemIndex, uint256 vestedAmount, uint256 unusedAmount)
LogMoveStake
event LogMoveStake(address indexed from, address indexed to, uint256 indexed itemIndex)
LogSetHMXStaking
event LogSetHMXStaking(address indexed oldAddress, address indexed newAddress)
LogSetIsPaused
event LogSetIsPaused(bool _isPaused)
LogSetMaxDuration
event LogSetMaxDuration(uint256 maxDuration)
LogSetMigrateFromVester
event LogSetMigrateFromVester(address indexed newMigrateFromVester)
LogSetMigrator
event LogSetMigrator(address indexed newMigrator)
LogSetUnusedEsHmxDestination
event LogSetUnusedEsHmxDestination(address indexed oldAddress, address indexed newAddress)
LogSetVestedEsHmxDestination
event LogSetVestedEsHmxDestination(address indexed oldAddress, address indexed newAddress)
LogUpdateTotalVestingEsHmx
event LogUpdateTotalVestingEsHmx(address indexed user, uint256 amount)
LogVest
event LogVest(address indexed owner, uint256 indexed itemIndex, uint256 amount, uint256 startTime, uint256 endTime, uint256 penaltyAmount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
IVester_Aborted
error IVester_Aborted()
IVester_BadArgument
error IVester_BadArgument()
IVester_Claimed
error IVester_Claimed()
IVester_ExceedMaxDuration
error IVester_ExceedMaxDuration()
IVester_HasCompleted
error IVester_HasCompleted()
IVester_HMXStakingNotSet
error IVester_HMXStakingNotSet()
IVester_InvalidAddress
error IVester_InvalidAddress()
IVester_MigrateFromVesterNotSet
error IVester_MigrateFromVesterNotSet()
IVester_NotEnoughDPStaked
error IVester_NotEnoughDPStaked()
IVester_NotPaused
error IVester_NotPaused()
IVester_Paused
error IVester_Paused()
IVester_PositionNotFound
error IVester_PositionNotFound()
IVester_Unauthorized
error IVester_Unauthorized()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612faa80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c8063072209441461019b578063131e8124146101ce578063141da063146101f957806323cf311814610219578063240976bf1461022e578063251441a91461024157806329b37e3e146102545780632eee318b14610267578063379607f51461027a5780633901e9001461028d57806353a696c2146102a05780635479fd09146102b35780635c80a435146102c65780635ce544b01461037a5780636aa263641461038d5780636ba4c138146103a05780636db5c8fd146103b3578063715018a6146103bc5780637796f770146103c45780637cd07e47146103d75780638289847b146103ea57806382d8ea00146103fd5780638da5cb5b146104105780639bb5fb0814610418578063b187bd261461042b578063b5e17b1b14610448578063bb26a1661461045b578063c9e104101461046e578063ce61da2714610481578063cf0f34c4146104a1578063db868b2d146104b4578063e50701f4146104c7578063f2fde38b146104da578063f8c8765e146104ed575b600080fd5b6101bb6101a9366004612913565b609c6020526000908152604090205481565b6040519081526020015b60405180910390f35b6099546101e1906001600160a01b031681565b6040516001600160a01b0390911681526020016101c5565b61020c610207366004612930565b610500565b6040516101c59190612965565b61022c610227366004612913565b6106c3565b005b61022c61023c366004612a0d565b610715565b61022c61024f366004612a2a565b610765565b61022c610262366004612913565b610bd8565b61022c610275366004612ad4565b610c3c565b61022c610288366004612b99565b610d04565b6101bb61029b366004612bb2565b610d23565b60a1546101e1906001600160a01b031681565b6098546101e1906001600160a01b031681565b61032f6102d4366004612bd4565b609b6020908152600092835260408084209091529082529020805460018201546002830154600384015460048501546005909501546001600160a01b0385169560ff600160a01b8704811696600160a81b9004169493929188565b604080516001600160a01b0390991689529615156020890152941515958701959095526060860192909252608085015260a084015260c083019190915260e0820152610100016101c5565b61022c610388366004612c00565b610d90565b61022c61039b366004612930565b610dde565b61022c6103ae366004612c00565b611072565b6101bb60a05481565b61022c6110bc565b6101bb6103d2366004612c85565b6110d0565b60a2546101e1906001600160a01b031681565b61022c6103f8366004612913565b6110ef565b61022c61040b366004612930565b611141565b6101e1611511565b6097546101e1906001600160a01b031681565b609f546104389060ff1681565b60405190151581526020016101c5565b609d546101e1906001600160a01b031681565b609a546101e1906001600160a01b031681565b61022c61047c366004612913565b611520565b6101bb61048f366004612913565b609e6020526000908152604090205481565b61022c6104af366004612b99565b611584565b61022c6104c2366004612913565b6115c1565b61022c6104d5366004612b99565b61169c565b61022c6104e8366004612913565b6116b0565b61022c6104fb366004612cb1565b61172b565b6001600160a01b0383166000908152609c602052604081205460609183906105288683612d23565b90508282111561053a575050506106bc565b828111156105455750815b61054f8282612d36565b6001600160401b0381111561056657610566612a6b565b6040519080825280602002602001820160405280156105ec57816020015b6105d960405180610100016040528060006001600160a01b0316815260200160001515815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152602001906001900390816105845790505b509350815b818110156106b7576001600160a01b038089166000908152609b602090815260408083208584528252918290208251610100810184528154948516815260ff600160a01b86048116151593820193909352600160a81b9094049091161515918301919091526001810154606083015260028101546080830152600381015460a0830152600481015460c08301526005015460e082015280866106938985612d36565b815181106106a3576106a3612d49565b6020908102919091010152506001016105f1565b505050505b9392505050565b6106cb611977565b60a280546001600160a01b0319166001600160a01b0383169081179091556040517f5665eb7552ed2bf9b8f5ead20aa03e2380d742d5273489ba1337b9ee47f340be90600090a250565b61071d611977565b609f805460ff19168215159081179091556040519081527f8f89f47cebd69d82d74a9e44c9f5483920bd8c7e20bf53aea405ea58d68ba44b906020015b60405180910390a150565b61076d611977565b816001600160a01b0316836001600160a01b03160361079f5760405163d5d4c97b60e01b815260040160405180910390fd5b6001600160a01b03831615806107bc57506001600160a01b038216155b156107da5760405163d5d4c97b60e01b815260040160405180910390fd5b6001600160a01b0383166000908152609b60209081526040808320848452909152812060018101549091036108225760405163f8473add60e01b815260040160405180910390fd5b8054600160a01b900460ff161561084c57604051633380bcb760e01b815260040160405180910390fd5b8054600160a81b900460ff16156108765760405163e4c1808360e01b815260040160405180910390fd5b806003015442111561089b57604051633ba3bf5960e11b815260040160405180910390fd5b805460ff60a81b1916600160a81b17815560028101546000906108be9042612d36565b90506000826002015483600301546108d69190612d36565b905060006108e9846001015484846110d0565b905060008185600501546108fd9190612d36565b90506301e13380831115610939576001600160a01b0388166000908152609e602052604081208054839290610933908490612d36565b90915550505b85886001600160a01b0316600080516020612f358339815191528360405161096391815260200190565b60405180910390a36000604051806101000160405280896001600160a01b0316815260200160001515815260200160001515815260200187600101548152602001876002015481526020018760030154815260200187600401548152602001876005015481525090506000609c60008a6001600160a01b03166001600160a01b0316815260200190815260200160002054905081609b60008b6001600160a01b03166001600160a01b03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160000160146101000a81548160ff02191690831515021790555060408201518160000160156101000a81548160ff021916908315150217905550606082015181600101556080820151816002015560a0820151816003015560c0820151816004015560e08201518160050155905050609c60008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815480929190610b0590612d5f565b91905055506301e13380851115610b44576001600160a01b0389166000908152609e602052604081208054859290610b3e908490612d23565b90915550505b8082600001516001600160a01b0316600080516020612f55833981519152896001015485608001518660a001516000604051610b839493929190612d78565b60405180910390a387896001600160a01b03168b6001600160a01b03167f11f8877fdec37577921d8bf36ca71ea534c8901eada496d759bce84bba46e2de60405160405180910390a450505050505050505050565b610be0611977565b609a546040516001600160a01b038084169216907f1ec0b00012695dfffc7d9458d5b6644319388992e6b27593d4103198646b434690600090a3609a80546001600160a01b0319166001600160a01b0392909216919091179055565b60a2546001600160a01b03163314610c675760405163371efd8760e21b815260040160405180910390fd5b609f5460ff16610c8a57604051632c23e02760e21b815260040160405180910390fd5b60005b8151811015610cfe576000828281518110610caa57610caa612d49565b6020908102919091018101516001600160a01b0381166000908152609c9092526040822054909250905b81811015610cf057610ce8838289896119d6565b600101610cd4565b508260010192505050610c8d565b50505050565b610d0c611d50565b610d163382611da9565b610d206001606555565b50565b60a05460009015610d725760a054670de0b6b3a764000090610d458486612d93565b610d5790670de0b6b3a7640000612d93565b610d619190612daa565b610d6b9190612daa565b9050610d8a565b670de0b6b3a76400006301e13380610d458486612d93565b92915050565b610d98611d50565b805160005b81811015610dd257610dca33848381518110610dbb57610dbb612d49565b6020026020010151600161207b565b600101610d9d565b5050610d206001606555565b60a1546001600160a01b0316610e0757604051633fcddaab60e01b815260040160405180910390fd5b60a1546001600160a01b03163314610e325760405163371efd8760e21b815260040160405180910390fd5b6001600160a01b0383161580610e5057506001600160a01b03831630145b15610e6e5760405163d5d4c97b60e01b815260040160405180910390fd5b81600003610e8f5760405163c56e6d9760e01b815260040160405180910390fd5b60006301e1338060a0541115610ea8575060a054610eaf565b506301e133805b6000610ebb8483610d23565b90506000604051806101000160405280876001600160a01b031681526020016000151581526020016000151581526020018681526020014281526020018542610f049190612d23565b81524260208083019190915260409182018590526001600160a01b03808a166000818152609c8085528582208054609b87528784208185528752878420895181548b8a01519a8c01511515600160a81b0260ff60a81b199b1515600160a01b026001600160a81b031990921692909916919091171798909816959095178755606088015160018801556080880151600288015560a0880151600388015560c0880151600488015560e088015160059097019690965591815292528254939450929190610fcf83612d5f565b91905055506301e1338084111561100e576001600160a01b0387166000908152609e602052604081208054889290611008908490612d23565b90915550505b609754611026906001600160a01b0316333089612346565b8082600001516001600160a01b0316600080516020612f558339815191528885608001518660a0015160006040516110619493929190612d78565b60405180910390a350505050505050565b61107a611d50565b60005b81518110156110b1576110a93383838151811061109c5761109c612d49565b6020026020010151611da9565b60010161107d565b50610d206001606555565b6110c4611977565b6110ce600061239e565b565b6000816110dd8486612d93565b6110e79190612daa565b949350505050565b6110f7611977565b60a180546001600160a01b0319166001600160a01b0383169081179091556040517ff3776816d2e2db39c2e0cbb9bc6672a6bf28d6021fddbec404db522615fd89cf90600090a250565b611149611d50565b609f5460ff168015611174575061115e611511565b6001600160a01b0316336001600160a01b031614155b801561118b575060a2546001600160a01b03163314155b156111a957604051630c25a43960e41b815260040160405180910390fd5b6001600160a01b03831615806111c757506001600160a01b03831630145b156111e55760405163d5d4c97b60e01b815260040160405180910390fd5b816000036112065760405163c56e6d9760e01b815260040160405180910390fd5b6301e1338060a054111561121d575060a054611224565b506301e133805b60006112308383610d23565b90506000604051806101000160405280866001600160a01b0316815260200160001515815260200160001515815260200185815260200142815260200184426112799190612d23565b81524260208083019190915260409182018590526001600160a01b038089166000818152609c8085528582208054609b87528784208185528752878420895181548b8a01519a8c01511515600160a81b0260ff60a81b199b1515600160a01b026001600160a81b031990921692909916919091171798909816959095178755606088015160018801556080880151600288015560a0880151600388015560c0880151600488015560e08801516005909701969096559181529252825493945092919061134483612d5f565b91905055506301e13380841115611383576001600160a01b0386166000908152609e60205260408120805487929061137d908490612d23565b90915550505b6301e133808411801561148657506001600160a01b038087166000908152609e6020908152604080832054609d5482516393eb049d60e01b8152925191951693631f1a675d9385936393eb049d93600480830194919283900301908290875af11580156113f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114189190612dcc565b896040518363ffffffff1660e01b8152600401611436929190612de9565b6020604051808303816000875af1158015611455573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114799190612e03565b611484906004612d93565b105b156114a457604051630a9c48b760e21b815260040160405180910390fd5b6097546114bc906001600160a01b0316333088612346565b8082600001516001600160a01b0316600080516020612f558339815191528785608001518660a0015160006040516114f79493929190612d78565b60405180910390a350505061150c6001606555565b505050565b6033546001600160a01b031690565b611528611977565b6099546040516001600160a01b038084169216907f8a2ae7e0d6e1a1b69603c9a3ecf800265c068b85c0db697e710032d70334193490600090a3609980546001600160a01b0319166001600160a01b0392909216919091179055565b61158c611977565b60a08190556040518181527f477c2176f40f2276db64077cf83cad93d58cf31cd85b535f1a402e7067523c319060200161075a565b6115c9611977565b609d546040516001600160a01b038084169216907f905015becda94903b5502a2e76438b72579c224d0a12f7c58c46ed3d0fadeed990600090a3609d80546001600160a01b0319166001600160a01b038316908117909155604080516393eb049d60e01b815290516393eb049d9160048082019260209290919082900301816000875af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116829190612dcc565b50609754610d20906001600160a01b0316826000196123f0565b6116a4611d50565b610d163382600161207b565b6116b8611977565b6001600160a01b0381166117225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b610d208161239e565b600054610100900460ff161580801561174b5750600054600160ff909116105b8061176c575061175a306124f3565b15801561176c575060005460ff166001145b6117cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611719565b6000805460ff1916600117905580156117f2576000805461ff0019166101001790555b6117fa612502565b611802612531565b609780546001600160a01b038088166001600160a01b031992831681179093556098805488831690841617905560998054878316908416179055609a8054918616919092161790556301e1338060a055604080516318160ddd60e01b815290516318160ddd916004808201926020929091908290030181865afa15801561188d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b19190612e03565b50609860009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611905573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119299190612e03565b508015611970576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b33611980611511565b6001600160a01b0316146110ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611719565b6001600160a01b038085166000908152609b602090815260408083208784528252918290208251610100810184528154948516815260ff600160a01b8604811615801594830194909452600160a81b9095049094161515928401929092526001820154606084015260028201546080840152600382015460a0840152600482015460c084015260059091015460e0830152611a715750610cfe565b806040015115611a815750610cfe565b611a8b8585611da9565b6000428260a0015110611aac576080820151611aa79042612d36565b611ac0565b81608001518260a00151611ac09190612d36565b9050600082608001518360a00151611ad89190612d36565b90506000611aeb846060015184846110d0565b90506000818560e00151611aff9190612d36565b90506000428660a0015110611b2357428660a00151611b1e9190612d36565b611b26565b60005b6001600160a01b038b166000908152609b602090815260408083208d84529091529020805460ff60a81b1916600160a81b17905590506301e13380841115611b96576001600160a01b038a166000908152609e602052604081208054849290611b90908490612d36565b90915550505b8115611d12576097548790611bb5906001600160a01b03168285612560565b60975460405163cf3cb33f60e01b81526000916001600160a01b038085169263cf3cb33f92611bea9216908890600401612e1c565b6020604051808303816000875af1158015611c09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c2d9190612e03565b9050611ca68a82846001600160a01b031663ef809a066040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c969190612dcc565b6001600160a01b03169190612560565b604051631aa898d960e21b81526001600160a01b038d8116600483015260248201839052604482018590528b1690636aa2636490606401600060405180830381600087803b158015611cf757600080fd5b505af1158015611d0b573d6000803e3d6000fd5b5050505050505b888a6001600160a01b0316600080516020612f3583398151915284604051611d3c91815260200190565b60405180910390a350505050505050505050565b600260655403611da25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611719565b6002606555565b609f5460ff168015611dd45750611dbe611511565b6001600160a01b0316336001600160a01b031614155b8015611deb575060a2546001600160a01b03163314155b15611e0957604051630c25a43960e41b815260040160405180910390fd5b6001600160a01b038083166000908152609b6020908152604080832085845282528083208151610100810183528154958616815260ff600160a01b87048116151594820194909452600160a81b90950490921615159084015260018101546060840181905260028201546080850152600382015460a0850152600482015460c085015260059091015460e08401529003611eb65760405163f8473add60e01b815260040160405180910390fd5b806020015115611ed957604051633380bcb760e01b815260040160405180910390fd5b806040015115611efc5760405163e4c1808360e01b815260040160405180910390fd5b60008160a001514210611f22578160c001518260a00151611f1d9190612d36565b611f31565b60c0820151611f319042612d36565b9050600082608001518360a00151611f499190612d36565b90506000611f5c846060015184846110d0565b60a08501516001600160a01b0388166000908152609b602090815260408083208a84529091529020805460ff60a01b19164292831015600160a01b021781556004015590506301e13380821115611fdb576001600160a01b0386166000908152609e602052604081208054839290611fd5908490612d36565b90915550505b8351609854611ff6916001600160a01b0390911690836125fd565b609954609754612013916001600160a01b039182169116836125fd565b8484600001516001600160a01b03167f24c74c1d14438a5ca477f564bcc66fd23d5a21e6773a14a0efbbe111b92090f9838488606001516120549190612d36565b6040805192835260208301919091520160405180910390a3505050505050565b6001606555565b609f5460ff1680156120a65750612090611511565b6001600160a01b0316336001600160a01b031614155b80156120bd575060a2546001600160a01b03163314155b156120db57604051630c25a43960e41b815260040160405180910390fd5b6001600160a01b038084166000818152609b60209081526040808320878452825291829020825161010081018452815495861680825260ff600160a01b88048116151594830194909452600160a81b9096049092161515928201929092526001820154606082015260028201546080820152600382015460a0820152600482015460c082015260059091015460e08201529114801590612194575061217e611511565b6001600160a01b0316336001600160a01b031614155b156121b8578115610cfe5760405163371efd8760e21b815260040160405180910390fd5b8060a001514211156121e3578115610cfe57604051633ba3bf5960e11b815260040160405180910390fd5b80602001511561220c578115610cfe57604051633380bcb760e01b815260040160405180910390fd5b806040015115612235578115610cfe5760405163e4c1808360e01b815260040160405180910390fd5b61223f8484611da9565b60008160800151426122519190612d36565b9050600082608001518360a001516122699190612d36565b9050600061227c846060015184846110d0565b90506000818560e001516122909190612d36565b6001600160a01b0389166000908152609b602090815260408083208b84529091529020805460ff60a81b1916600160a81b17905590506301e13380831115612300576001600160a01b0388166000908152609e6020526040812080548392906122fa908490612d36565b90915550505b61230a888261261c565b86886001600160a01b0316600080516020612f358339815191528360405161233491815260200190565b60405180910390a35050505050505050565b610cfe846323b872dd60e01b85858560405160240161236793929190612e35565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526126b4565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8015806124695750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e906124269030908690600401612de9565b602060405180830381865afa158015612443573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124679190612e03565b155b6124d45760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401611719565b61150c8363095ea7b360e01b8484604051602401612367929190612e1c565b6001600160a01b03163b151590565b600054610100900460ff166125295760405162461bcd60e51b815260040161171990612e59565b6110ce612786565b600054610100900460ff166125585760405162461bcd60e51b815260040161171990612e59565b6110ce6127b6565b600081846001600160a01b031663dd62ed3e30866040518363ffffffff1660e01b8152600401612591929190612de9565b602060405180830381865afa1580156125ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125d29190612e03565b6125dc9190612d23565b9050610cfe8463095ea7b360e01b8584604051602401612367929190612e1c565b61150c8363a9059cbb60e01b8484604051602401612367929190612e1c565b609d546001600160a01b031661264557604051631016a80960e31b815260040160405180910390fd5b609d54609754604051638340f54960e01b81526001600160a01b0392831692638340f5499261267e928792909116908690600401612e35565b600060405180830381600087803b15801561269857600080fd5b505af11580156126ac573d6000803e3d6000fd5b505050505050565b6000612709826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127dd9092919063ffffffff16565b80519091501561150c57808060200190518101906127279190612ea4565b61150c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611719565b600054610100900460ff166127ad5760405162461bcd60e51b815260040161171990612e59565b6110ce3361239e565b600054610100900460ff166120745760405162461bcd60e51b815260040161171990612e59565b60606110e7848460008585600080866001600160a01b031685876040516128049190612ee5565b60006040518083038185875af1925050503d8060008114612841576040519150601f19603f3d011682016040523d82523d6000602084013e612846565b606091505b509150915061285787838387612862565b979650505050505050565b606083156128cf5782516000036128c85761287c856124f3565b6128c85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611719565b50816110e7565b6110e783838151156128e45781518083602001fd5b8060405162461bcd60e51b81526004016117199190612f01565b6001600160a01b0381168114610d2057600080fd5b60006020828403121561292557600080fd5b81356106bc816128fe565b60008060006060848603121561294557600080fd5b8335612950816128fe565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b828110156129f257815180516001600160a01b031685528681015115158786015285810151151586860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e090810151908501526101009093019290850190600101612982565b5091979650505050505050565b8015158114610d2057600080fd5b600060208284031215612a1f57600080fd5b81356106bc816129ff565b600080600060608486031215612a3f57600080fd5b8335612a4a816128fe565b92506020840135612a5a816128fe565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612aa957612aa9612a6b565b604052919050565b60006001600160401b03821115612aca57612aca612a6b565b5060051b60200190565b600080600060608486031215612ae957600080fd5b8335612af4816128fe565b9250602084810135612b05816128fe565b925060408501356001600160401b03811115612b2057600080fd5b8501601f81018713612b3157600080fd5b8035612b44612b3f82612ab1565b612a81565b81815260059190911b82018301908381019089831115612b6357600080fd5b928401925b82841015612b8a578335612b7b816128fe565b82529284019290840190612b68565b80955050505050509250925092565b600060208284031215612bab57600080fd5b5035919050565b60008060408385031215612bc557600080fd5b50508035926020909101359150565b60008060408385031215612be757600080fd5b8235612bf2816128fe565b946020939093013593505050565b60006020808385031215612c1357600080fd5b82356001600160401b03811115612c2957600080fd5b8301601f81018513612c3a57600080fd5b8035612c48612b3f82612ab1565b81815260059190911b82018301908381019087831115612c6757600080fd5b928401925b8284101561285757833582529284019290840190612c6c565b600080600060608486031215612c9a57600080fd5b505081359360208301359350604090920135919050565b60008060008060808587031215612cc757600080fd5b8435612cd2816128fe565b93506020850135612ce2816128fe565b92506040850135612cf2816128fe565b91506060850135612d02816128fe565b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d8a57610d8a612d0d565b81810381811115610d8a57610d8a612d0d565b634e487b7160e01b600052603260045260246000fd5b600060018201612d7157612d71612d0d565b5060010190565b93845260208401929092526040830152606082015260800190565b8082028115828204841417610d8a57610d8a612d0d565b600082612dc757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612dde57600080fd5b81516106bc816128fe565b6001600160a01b0392831681529116602082015260400190565b600060208284031215612e1557600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215612eb657600080fd5b81516106bc816129ff565b60005b83811015612edc578181015183820152602001612ec4565b50506000910152565b60008251612ef7818460208701612ec1565b9190910192915050565b6020815260008251806020840152612f20816040850160208701612ec1565b601f01601f1916919091016040019291505056fed7fdf4cc7f8b52d8dc1bebf9f926d453f223ec27aeec8b5ac8906120768e782b4923bb5581b92cd2641059f4de80fcb1cf4e749b24e7120642406d581fb863daa2646970667358221220e2217a7d3cbc6b0753f6f90914727fefc4fcdd6bb12e65a059383ec9e257490e64736f6c63430008120033