0 txs
0 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address _account) view returns (uint256)
canDeposit
viewfunction canDeposit() view returns (uint256)
canWithdraw
viewfunction canWithdraw() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
getFees
viewfunction getFees() view returns (tuple[])
getMaxDeposits
viewfunction getMaxDeposits() view returns (uint256)
getMinDeposits
viewfunction getMinDeposits() view returns (uint256)
getSharesByStake
viewfunction getSharesByStake(uint256 _amount) view returns (uint256)
getStakeByShares
viewfunction getStakeByShares(uint256 _amount) view returns (uint256)
getStrategies
viewfunction getStrategies() view returns (address[])
getStrategyDepositRoom
viewfunction getStrategyDepositRoom() view returns (uint256)
getStrategyRewards
viewfunction getStrategyRewards(uint256[] _strategyIdxs) view returns (int256, uint256)
getUnusedDeposits
viewfunction getUnusedDeposits() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
priorityPool
viewfunction priorityPool() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
sharesOf
viewfunction sharesOf(address _account) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
token
viewfunction token() view returns (address)
totalShares
viewfunction totalShares() view returns (uint256)
totalStaked
viewfunction totalStaked() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
__ERC677_init
nonpayablefunction __ERC677_init(string _tokenName, string _tokenSymbol, uint256 _totalSupply)
__StakingRewardsPool_init
nonpayablefunction __StakingRewardsPool_init(address _token, string _derivativeTokenName, string _derivativeTokenSymbol)
addFee
nonpayablefunction addFee(address _receiver, uint256 _feeBasisPoints)
addStrategy
nonpayablefunction addStrategy(address _strategy)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(address _account, uint256 _amount)
depositLiquidity
nonpayablefunction depositLiquidity()
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _token, string _derivativeTokenName, string _derivativeTokenSymbol, tuple[] _fees)
removeStrategy
nonpayablefunction removeStrategy(uint256 _index, bytes _strategyUpdateData)
renounceOwnership
nonpayablefunction renounceOwnership()
reorderStrategies
nonpayablefunction reorderStrategies(uint256[] _newOrder)
setPriorityPool
nonpayablefunction setPriorityPool(address _priorityPool)
strategyDeposit
nonpayablefunction strategyDeposit(uint256 _index, uint256 _amount)
strategyWithdraw
nonpayablefunction strategyWithdraw(uint256 _index, uint256 _amount)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferAndCall
nonpayablefunction transferAndCall(address _to, uint256 _value, bytes _data) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
transferShares
nonpayablefunction transferShares(address _recipient, uint256 _sharesAmount) returns (bool)
transferSharesFrom
nonpayablefunction transferSharesFrom(address _sender, address _recipient, uint256 _sharesAmount) returns (bool)
updateFee
nonpayablefunction updateFee(uint256 _index, address _receiver, uint256 _feeBasisPoints)
updateStrategyRewards
nonpayablefunction updateStrategyRewards(uint256[] _strategyIdxs, bytes _data)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(address _account, address _receiver, uint256 _amount)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
UpdateStrategyRewards
event UpdateStrategyRewards(address indexed account, uint256 totalStaked, int256 rewardsAmount, uint256 totalFees)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051614ce56200011f60003960008181610ba601528181610be601528181610e0901528181610e490152610fb00152614ce56000f3fe6080604052600436106102e45760003560e01c80638d09487f11610190578063c2c44eed116100dc578063dd62ed3e11610095578063eb47dc8f1161006f578063eb47dc8f14610889578063f2fde38b1461089e578063f5eb42dc146108be578063fc0c546a146108f457600080fd5b8063dd62ed3e14610834578063e78a587514610854578063ea3b3e2d1461086957600080fd5b8063c2c44eed1461077d578063ca593c591461079d578063d5647c33146107b2578063d7379028146107d2578063d9caed12146107f2578063db8d55f11461081257600080fd5b8063a9059cbb11610149578063b51459fe11610123578063b51459fe14610712578063b5169e5314610727578063b7b7a40814610748578063c08e22fa1461075d57600080fd5b8063a9059cbb146106b0578063b47529c5146106d0578063b49a60bb146106f057600080fd5b80638d09487f146105e95780638da5cb5b146106095780638fcb4e5b1461063b57806395d89b411461065b57806399b8964b14610670578063a457c2d71461069057600080fd5b806347e7ef241161024f5780636d780459116102085780637718238f116101e25780637718238f14610573578063790965d914610593578063817b1cd2146105b35780638ce09bb8146105c957600080fd5b80636d7804591461051e57806370a082311461053e578063715018a61461055e57600080fd5b806347e7ef241461046c5780634f1ef2861461048c57806350be85961461049f57806351367373146104b457806352d1902d146104d45780635ee11564146104e957600080fd5b8063313ce567116102a1578063313ce567146103ba5780633659cfe6146103d657806339509351146103f65780633a2e47cd146104165780633a98ef39146104365780634000aea01461044c57600080fd5b8063050b4d13146102e957806306fdde0314610311578063095ea7b31461033357806318160ddd14610363578063223e54791461037857806323b872dd1461039a575b600080fd5b3480156102f557600080fd5b506102fe610914565b6040519081526020015b60405180910390f35b34801561031d57600080fd5b506103266109ee565b6040516103089190613f19565b34801561033f57600080fd5b5061035361034e366004613f41565b610a80565b6040519015158152602001610308565b34801561036f57600080fd5b506102fe610a9a565b34801561038457600080fd5b50610398610393366004613f6d565b610aaa565b005b3480156103a657600080fd5b506103536103b5366004613f8a565b610b78565b3480156103c657600080fd5b5060405160128152602001610308565b3480156103e257600080fd5b506103986103f1366004613f6d565b610b9c565b34801561040257600080fd5b50610353610411366004613f41565b610c7b565b34801561042257600080fd5b506103986104313660046140a8565b610c9d565b34801561044257600080fd5b506102fe60fd5481565b34801561045857600080fd5b50610353610467366004614114565b610cf2565b34801561047857600080fd5b50610398610487366004613f41565b610d1c565b61039861049a36600461416c565b610dff565b3480156104ab57600080fd5b506102fe610ecf565b3480156104c057600080fd5b506103986104cf3660046141bb565b610f3c565b3480156104e057600080fd5b506102fe610fa3565b3480156104f557600080fd5b50610509610504366004614226565b611056565b60408051928352602083019190915201610308565b34801561052a57600080fd5b50610353610539366004613f8a565b611218565b34801561054a57600080fd5b506102fe610559366004613f6d565b61123c565b34801561056a57600080fd5b50610398611274565b34801561057f57600080fd5b5061039861058e366004613f41565b611288565b34801561059f57600080fd5b506103986105ae36600461429a565b61134d565b3480156105bf57600080fd5b506102fe60ff5481565b3480156105d557600080fd5b506102fe6105e43660046142bc565b6113f5565b3480156105f557600080fd5b50610398610604366004614226565b611434565b34801561061557600080fd5b5060c9546001600160a01b03165b6040516001600160a01b039091168152602001610308565b34801561064757600080fd5b50610353610656366004613f41565b6116c1565b34801561066757600080fd5b506103266116d7565b34801561067c57600080fd5b5061039861068b3660046142f8565b6116e6565b34801561069c57600080fd5b506103536106ab366004613f41565b611dcf565b3480156106bc57600080fd5b506103536106cb366004613f41565b611e4a565b3480156106dc57600080fd5b506103986106eb3660046143ab565b611e58565b3480156106fc57600080fd5b50610705612008565b60405161030891906143d2565b34801561071e57600080fd5b506102fe612069565b34801561073357600080fd5b5061010254610623906001600160a01b031681565b34801561075457600080fd5b506102fe61209b565b34801561076957600080fd5b5061039861077836600461441f565b612171565b34801561078957600080fd5b5061039861079836600461429a565b6123c8565b3480156107a957600080fd5b5061039861243e565b3480156107be57600080fd5b506103986107cd36600461444f565b612638565b3480156107de57600080fd5b506102fe6107ed3660046142bc565b6127f5565b3480156107fe57600080fd5b5061039861080d366004613f8a565b612823565b34801561081e57600080fd5b50610827612a15565b604051610308919061456a565b34801561084057600080fd5b506102fe61084f3660046145c2565b612a8b565b34801561086057600080fd5b506102fe612ab6565b34801561087557600080fd5b50610398610884366004613f6d565b612ae1565b34801561089557600080fd5b506102fe612b0c565b3480156108aa57600080fd5b506103986108b9366004613f6d565b612bc6565b3480156108ca57600080fd5b506102fe6108d9366004613f6d565b6001600160a01b0316600090815260fc602052604090205490565b34801561090057600080fd5b5060fb54610623906001600160a01b031681565b60008060005b60fe548110156109e857600060fe8281548110610939576109396145fb565b600091825260209182902001546040805163e78a587560e01b815290516001600160a01b039092169263e78a5875926004808401938290030181865afa158015610987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ab9190614611565b90506109b983600019614640565b81106109ca57600019935050505090565b6109d48184614657565b925050806109e19061466f565b905061091a565b50919050565b6060603680546109fd90614688565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2990614688565b8015610a765780601f10610a4b57610100808354040283529160200191610a76565b820191906000526020600020905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b600033610a8e818585612c3c565b60019150505b92915050565b6000610aa560ff5490565b905090565b610ab2612d61565b610abb81612dbb565b15610b0d5760405162461bcd60e51b815260206004820152601760248201527f537472617465677920616c72656164792065786973747300000000000000000060448201526064015b60405180910390fd5b60fb54610b26906001600160a01b031682600019612e24565b60fe80546001810182556000919091527f54075df80ec1ae6ac9100e1fd0ebf3246c17f5c933137af392011f4c5f61513a0180546001600160a01b0319166001600160a01b0392909216919091179055565b600033610b86858285612f6c565b610b91858585612fe0565b506001949350505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610be45760405162461bcd60e51b8152600401610b04906146bc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c2d600080516020614c49833981519152546001600160a01b031690565b6001600160a01b031614610c535760405162461bcd60e51b8152600401610b0490614708565b610c5c8161319e565b60408051600080825260208201909252610c78918391906131a6565b50565b600033610a8e818585610c8e8383612a8b565b610c989190614657565b612c3c565b600054610100900460ff16610cc45760405162461bcd60e51b8152600401610b0490614754565b610cce8383613311565b610ced33610cde6012600a614883565b610ce8908461488f565b613342565b505050565b6000610cfe8484611e4a565b50833b15610d1257610d1233858585613390565b5060019392505050565b610102546001600160a01b03163314610d6b5760405162461bcd60e51b81526020600482015260116024820152705072696f72697479506f6f6c206f6e6c7960781b6044820152606401610b04565b60fe54610dba5760405162461bcd60e51b815260206004820152601f60248201527f4d757374206265203e2030207374726174656769657320746f207374616b65006044820152606401610b04565b60fb54610dd2906001600160a01b03163330846133fb565b610dda61243e565b610de48282613342565b8060ff6000828254610df69190614657565b90915550505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e475760405162461bcd60e51b8152600401610b04906146bc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e90600080516020614c49833981519152546001600160a01b031690565b6001600160a01b031614610eb65760405162461bcd60e51b8152600401610b0490614708565b610ebf8261319e565b610ecb828260016131a6565b5050565b60fb546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa59190614611565b600054610100900460ff16610f635760405162461bcd60e51b8152600401610b0490614754565b610f6f82826000610c9d565b610f77613433565b610f7f61345a565b505060fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110435760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610b04565b50600080516020614c4983398151915290565b60008060008060005b8581101561119757600060fe88888481811061107d5761107d6145fb565b9050602002013581548110611094576110946145fb565b60009182526020918290200154604080516369feab4960e01b815290516001600160a01b03909216935083926369feab49926004808401938290030181865afa1580156110e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111099190614611565b61111390856148ae565b9350806001600160a01b031663c51c2d0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611153573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111779190614611565b6111819084614657565b925050808061118f9061466f565b91505061105f565b50600082131561120d5760005b6101015481101561120b5761271061010182815481106111c6576111c66145fb565b906000526020600020906002020160010154846111e3919061488f565b6111ed91906148ef565b6111f79083614657565b9150806112038161466f565b9150506111a4565b505b909590945092505050565b600080611224836127f5565b9050611231853383612f6c565b610b91858585613489565b6001600160a01b038116600090815260fc60205260408120548190611260906127f5565b90506064811015610a945750600092915050565b61127c612d61565b611286600061362b565b565b611290612d61565b604080518082019091526001600160a01b03838116825260208201838152610101805460018101825560009190915292517f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca747689600290940293840180546001600160a01b0319169190931617909155517f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca74768a9091015561138861132f61367d565b1115610ecb5760405162461bcd60e51b8152600401610b0490614911565b611355612d61565b60fe5482106113765760405162461bcd60e51b8152600401610b0490614948565b60fe8281548110611389576113896145fb565b60009182526020909120015460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f25906024015b600060405180830381600087803b1580156113d957600080fd5b505af11580156113ed573d6000803e3d6000fd5b505050505050565b60008061140160ff5490565b9050806000036114145750600092915050565b8060fd5484611423919061488f565b61142d91906148ef565b9392505050565b61143c612d61565b60fe54811461149e5760405162461bcd60e51b815260206004820152602860248201527f6e65774f726465722e6c656e677468206d757374203d207374726174656769656044820152670e65cd8cadccee8d60c31b6064820152608401610b04565b60fe546000906001600160401b038111156114bb576114bb613fcb565b6040519080825280602002602001820160405280156114e4578160200160208202803683370190505b50905060005b60fe548110156115615760fe8181548110611507576115076145fb565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110611537576115376145fb565b6001600160a01b0390921660209283029190910190910152806115598161466f565b9150506114ea565b5060005b60fe548110156116bb57600082858584818110611584576115846145fb565b905060200201358151811061159b5761159b6145fb565b60200260200101516001600160a01b0316036115f95760405162461bcd60e51b815260206004820152601960248201527f616c6c20696e6469636573206d7573742062652076616c6964000000000000006044820152606401610b04565b8184848381811061160c5761160c6145fb565b9050602002013581518110611623576116236145fb565b602002602001015160fe828154811061163e5761163e6145fb565b6000918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091558285858481811061167a5761167a6145fb565b9050602002013581518110611691576116916145fb565b6001600160a01b0390921660209283029190910190910152806116b38161466f565b915050611565565b50505050565b60006116ce338484613489565b50600192915050565b6060603780546109fd90614688565b60008060008060fe8054905060016116fe9190614657565b6001600160401b0381111561171557611715613fcb565b60405190808252806020026020018201604052801561174857816020015b60608152602001906001900390816117335790505b5060fe5490915060009061175d906001614657565b6001600160401b0381111561177457611774613fcb565b6040519080825280602002602001820160405280156117a757816020015b60608152602001906001900390816117925790505b50905060005b875181101561194457600060fe8983815181106117cc576117cc6145fb565b6020026020010151815481106117e4576117e46145fb565b600091825260208220015460405163af51e6a560e01b81526001600160a01b03909116925081908190849063af51e6a590611823908e90600401613f19565b6000604051808303816000875af1158015611842573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261186a91908101906149e5565b9194509250905061187b838b6148ae565b9950815160001461192f5781878681518110611899576118996145fb565b6020026020010181905250808686815181106118b7576118b76145fb565b60200260200101819052508685815181106118d4576118d46145fb565b602002602001015151886118e89190614657565b975060005b825181101561192d57818181518110611908576119086145fb565b60200260200101518a61191b9190614657565b99506119268161466f565b90506118ed565b505b505050508061193d9061466f565b90506117ad565b50841561195d578460ff5461195991906148ae565b60ff555b6000851315611bcf57610101546001600160401b0381111561198157611981613fcb565b6040519080825280602002602001820160405280156119aa578160200160208202803683370190505b5082600184516119ba9190614640565b815181106119ca576119ca6145fb565b6020908102919091010152610101546001600160401b038111156119f0576119f0613fcb565b604051908082528060200260200182016040528015611a19578160200160208202803683370190505b508160018351611a299190614640565b81518110611a3957611a396145fb565b602090810291909101015261010154611a529084614657565b925060005b61010154811015611bcd576101018181548110611a7657611a766145fb565b600091825260209091206002909102015483516001600160a01b03909116908490611aa390600190614640565b81518110611ab357611ab36145fb565b60200260200101518281518110611acc57611acc6145fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506127106101018281548110611b0357611b036145fb565b90600052602060002090600202016001015487611b20919061488f565b611b2a91906148ef565b8260018451611b399190614640565b81518110611b4957611b496145fb565b60200260200101518281518110611b6257611b626145fb565b6020026020010181815250508160018351611b7d9190614640565b81518110611b8d57611b8d6145fb565b60200260200101518181518110611ba657611ba66145fb565b602002602001015185611bb99190614657565b945080611bc58161466f565b915050611a57565b505b60ff548410611bdd57600093505b8315611d815760008460ff54611bf39190614640565b60fd54611c00908761488f565b611c0a91906148ef565b9050611c1630826136d3565b6000805b8451811015611d7d5760005b858281518110611c3857611c386145fb565b602002602001015151811015611d6a57611c53600188614640565b8303611cbf57611cb930878481518110611c6f57611c6f6145fb565b60200260200101518381518110611c8857611c886145fb565b6020026020010151611c993061123c565b60405180604001604052806002815260200161060f60f31b815250613768565b50611d58565b611d4930878481518110611cd557611cd56145fb565b60200260200101518381518110611cee57611cee6145fb565b6020026020010151878581518110611d0857611d086145fb565b60200260200101518481518110611d2157611d216145fb565b602002602001015160405180604001604052806002815260200161060f60f31b815250613768565b5082611d548161466f565b9350505b80611d628161466f565b915050611c26565b5080611d758161466f565b915050611c1a565b5050505b60ff546040805191825260208201879052810185905233907f04f794b9bb152df3a9f2aa7b424206ce2c2c26ef386bb1fea8325cdfdcd339569060600160405180910390a250505050505050565b60003381611ddd8286612a8b565b905083811015611e3d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b04565b610b918286868403612c3c565b600033610a8e818585612fe0565b611e60612d61565b610101548310611ea75760405162461bcd60e51b815260206004820152601260248201527111995948191bd95cc81b9bdd08195e1a5cdd60721b6044820152606401610b04565b80600003611f6a576101018054611ec090600190614640565b81548110611ed057611ed06145fb565b90600052602060002090600202016101018481548110611ef257611ef26145fb565b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b03909216919091178155600191820154910155610101805480611f3c57611f3c614aa8565b60008281526020812060026000199093019283020180546001600160a01b0319168155600101559055611fdf565b816101018481548110611f7f57611f7f6145fb565b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806101018481548110611fc957611fc96145fb565b9060005260206000209060020201600101819055505b611388611fea61367d565b1115610ced5760405162461bcd60e51b8152600401610b0490614911565b606060fe805480602002602001604051908101604052809291908181526020018280548015610a7657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612042575050505050905090565b600080612074612b0c565b905060ff54811061208757600091505090565b8060ff546120959190614640565b91505090565b60008060005b60fe548110156109e857600060fe82815481106120c0576120c06145fb565b60009182526020918290200154604080516316f6f48160e31b815290516001600160a01b039092169263b7b7a408926004808401938290030181865afa15801561210e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121329190614611565b905061214083600019614640565b811061215157600019935050505090565b61215b8184614657565b92505080806121699061466f565b9150506120a1565b612179612d61565b60fe54821061219a5760405162461bcd60e51b8152600401610b0490614948565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106121d0576121d06145fb565b6020026020010181815250506121e681836116e6565b600060fe84815481106121fb576121fb6145fb565b600091825260208083209091015460408051630b45241160e11b815290516001600160a01b039092169450849263168a4822926004808401938290030181865afa15801561224d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122719190614611565b905080156122d457604051632e1a7d4d60e01b8152600481018290526001600160a01b03831690632e1a7d4d90602401600060405180830381600087803b1580156122bb57600080fd5b505af11580156122cf573d6000803e3d6000fd5b505050505b845b60fe546122e590600190614640565b8110156123705760fe6122f9826001614657565b81548110612309576123096145fb565b60009182526020909120015460fe80546001600160a01b039092169183908110612335576123356145fb565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055806123688161466f565b9150506122d6565b5060fe80548061238257612382614aa8565b600082815260208120600019908301810180546001600160a01b031916905590910190915560fb546123c1916001600160a01b03909116908490612e24565b5050505050565b6123d0612d61565b60fe5482106123f15760405162461bcd60e51b8152600401610b0490614948565b60fe8281548110612404576124046145fb565b600091825260209091200154604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d906024016113bf565b60fb546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ab9190614611565b90508015610c785760005b60fe54811015610ecb57600060fe82815481106124d5576124d56145fb565b60009182526020808320909101546040805163e78a587560e01b815290516001600160a01b039092169450849263e78a5875926004808401938290030181865afa158015612527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254b9190614611565b90508381106125b45760405163b6b55f2560e01b8152600481018590526001600160a01b0383169063b6b55f2590602401600060405180830381600087803b15801561259657600080fd5b505af11580156125aa573d6000803e3d6000fd5b5050505050505050565b80156126235760405163b6b55f2560e01b8152600481018290526001600160a01b0383169063b6b55f2590602401600060405180830381600087803b1580156125fc57600080fd5b505af1158015612610573d6000803e3d6000fd5b5050505080846126209190614640565b93505b505080806126309061466f565b9150506124b6565b600054610100900460ff16158080156126585750600054600160ff909116105b806126725750303b158015612672575060005460ff166001145b6126d55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b04565b6000805460ff1916600117905580156126f8576000805461ff0019166101001790555b612703858585610f3c565b60005b825181101561277f57610101838281518110612724576127246145fb565b602090810291909101810151825460018082018555600094855293839020825160029092020180546001600160a01b0319166001600160a01b03909216919091178155910151910155806127778161466f565b915050612706565b5061138861278b61367d565b11156127a95760405162461bcd60e51b8152600401610b0490614911565b80156123c1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600060fd5460000361280957506000919050565b60fd5460ff54612819908461488f565b610a9491906148ef565b610102546001600160a01b031633146128725760405162461bcd60e51b81526020600482015260116024820152705072696f72697479506f6f6c206f6e6c7960781b6044820152606401610b04565b8060018101612887576128848461123c565b90505b60fb546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156128d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f49190614611565b9050808211156129105761291061290b8284614640565b613790565b60fb546040516370a0823160e01b815230600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015612958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297c9190614611565b10156129dd5760405162461bcd60e51b815260206004820152602a60248201527f4e6f7420656e6f756768206c697175696469747920617661696c61626c6520746044820152696f20776974686472617760b01b6064820152608401610b04565b6129e785836138eb565b8160ff60008282546129f99190614640565b909155505060fb546123c1906001600160a01b03168584613a26565b6060610101805480602002602001604051908101604052809291908181526020016000905b82821015612a82576000848152602090819020604080518082019091526002850290910180546001600160a01b03168252600190810154828401529083529092019101612a3a565b50505050905090565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b600080612ac161209b565b905060ff548111612ad457600091505090565b60ff546120959082614640565b612ae9612d61565b61010280546001600160a01b0319166001600160a01b0392909216919091179055565b60008060005b60fe548110156109e857600060fe8281548110612b3157612b316145fb565b600091825260209182902001546040805163eb47dc8f60e01b815290516001600160a01b039092169350839263eb47dc8f926004808401938290030181865afa158015612b82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba69190614611565b612bb09084614657565b9250508080612bbe9061466f565b915050612b12565b612bce612d61565b6001600160a01b038116612c335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b04565b610c788161362b565b6001600160a01b038316612c9e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b04565b6001600160a01b038216612cff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b04565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60c9546001600160a01b031633146112865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b04565b6000805b60fe54811015612e1b57826001600160a01b031660fe8281548110612de657612de66145fb565b6000918252602090912001546001600160a01b031603612e095750600192915050565b80612e138161466f565b915050612dbf565b50600092915050565b801580612e9e5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015612e78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e9c9190614611565b155b612f095760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610b04565b6040516001600160a01b038316602482015260448101829052610ced90849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613a56565b6000612f788484612a8b565b905060001981146116bb5781811015612fd35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b04565b6116bb8484848403612c3c565b6000612feb826113f5565b90506001600160a01b0384166130435760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610b04565b6001600160a01b0383166130995760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610b04565b6001600160a01b038416600090815260fc60205260409020548111156131015760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610b04565b6001600160a01b038416600090815260fc602052604081208054839290613129908490614640565b90915550506001600160a01b038316600090815260fc602052604081208054839290613156908490614657565b92505081905550826001600160a01b0316846001600160a01b0316600080516020614c908339815191528460405161319091815260200190565b60405180910390a350505050565b610c78612d61565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156131d957610ced83613b2b565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613233575060408051601f3d908101601f1916820190925261323091810190614611565b60015b6132965760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610b04565b600080516020614c4983398151915281146133055760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610b04565b50610ced838383613bc7565b600054610100900460ff166133385760405162461bcd60e51b8152600401610b0490614754565b610ecb8282613bec565b600061334d826113f5565b90508060000361335a5750805b61336483826136d3565b6040518281526001600160a01b03841690600090600080516020614c9083398151915290602001612d54565b604051635260769b60e11b815283906001600160a01b0382169063a4c0ed36906133c290889087908790600401614abe565b600060405180830381600087803b1580156133dc57600080fd5b505af11580156133f0573d6000803e3d6000fd5b505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526116bb9085906323b872dd60e01b90608401612f35565b600054610100900460ff166112865760405162461bcd60e51b8152600401610b0490614754565b600054610100900460ff166134815760405162461bcd60e51b8152600401610b0490614754565b611286613c2c565b6001600160a01b0383166134df5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610b04565b6001600160a01b0382166135355760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610b04565b6001600160a01b038316600090815260fc602052604090205481111561359d5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610b04565b6001600160a01b038316600090815260fc6020526040812080548392906135c5908490614640565b90915550506001600160a01b038216600090815260fc6020526040812080548392906135f2908490614657565b90915550506001600160a01b03808316908416600080516020614c9083398151915261361d846127f5565b604051908152602001612d54565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008060005b610101548110156109e85761010181815481106136a2576136a26145fb565b906000526020600020906002020160010154826136bf9190614657565b9150806136cb8161466f565b915050613683565b6001600160a01b0382166137295760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f206164647265737300000000000000006044820152606401610b04565b8060fd600082825461373b9190614657565b90915550506001600160a01b038216600090815260fc602052604081208054839290610df6908490614657565b6000613775858585612fe0565b833b15610b9157610b9185858585613390565b949350505050565b60fe5481905b8015610ced57600060fe6137ab600184614640565b815481106137bb576137bb6145fb565b600091825260208083209091015460408051635a8a2cff60e11b815290516001600160a01b039092169450849263b51459fe926004808401938290030181865afa15801561380d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138319190614611565b905083811061386757604051632e1a7d4d60e01b8152600481018590526001600160a01b03831690632e1a7d4d906024016133c2565b80156138d657604051632e1a7d4d60e01b8152600481018290526001600160a01b03831690632e1a7d4d90602401600060405180830381600087803b1580156138af57600080fd5b505af11580156138c3573d6000803e3d6000fd5b5050505080846138d39190614640565b93505b505080806138e390614aee565b915050613796565b60006138f6826113f5565b90506001600160a01b03831661394e5760405162461bcd60e51b815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f20616464726573730000000000006044820152606401610b04565b6001600160a01b038316600090815260fc60205260409020548111156139b65760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e636500000000006044820152606401610b04565b8060fd60008282546139c89190614640565b90915550506001600160a01b038316600090815260fc6020526040812080548392906139f5908490614640565b90915550506040518281526000906001600160a01b03851690600080516020614c9083398151915290602001612d54565b6040516001600160a01b038316602482015260448101829052610ced90849063a9059cbb60e01b90606401612f35565b6000613aab826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613c5c9092919063ffffffff16565b9050805160001480613acc575080806020019051810190613acc9190614b05565b610ced5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b04565b6001600160a01b0381163b613b985760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b04565b600080516020614c4983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613bd083613c6b565b600082511180613bdd5750805b15610ced576116bb8383613cab565b600054610100900460ff16613c135760405162461bcd60e51b8152600401610b0490614754565b6036613c1f8382614b6d565b506037610ced8282614b6d565b600054610100900460ff16613c535760405162461bcd60e51b8152600401610b0490614754565b6112863361362b565b60606137888484600085613cd0565b613c7481613b2b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061142d8383604051806060016040528060278152602001614c6960279139613dab565b606082471015613d315760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b04565b600080866001600160a01b03168587604051613d4d9190614c2c565b60006040518083038185875af1925050503d8060008114613d8a576040519150601f19603f3d011682016040523d82523d6000602084013e613d8f565b606091505b5091509150613da087838387613e23565b979650505050505050565b6060600080856001600160a01b031685604051613dc89190614c2c565b600060405180830381855af49150503d8060008114613e03576040519150601f19603f3d011682016040523d82523d6000602084013e613e08565b606091505b5091509150613e1986838387613e23565b9695505050505050565b60608315613e92578251600003613e8b576001600160a01b0385163b613e8b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b04565b5081613788565b6137888383815115613ea75781518083602001fd5b8060405162461bcd60e51b8152600401610b049190613f19565b60005b83811015613edc578181015183820152602001613ec4565b838111156116bb5750506000910152565b60008151808452613f05816020860160208601613ec1565b601f01601f19169290920160200192915050565b60208152600061142d6020830184613eed565b6001600160a01b0381168114610c7857600080fd5b60008060408385031215613f5457600080fd5b8235613f5f81613f2c565b946020939093013593505050565b600060208284031215613f7f57600080fd5b813561142d81613f2c565b600080600060608486031215613f9f57600080fd5b8335613faa81613f2c565b92506020840135613fba81613f2c565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561400357614003613fcb565b60405290565b604051601f8201601f191681016001600160401b038111828210171561403157614031613fcb565b604052919050565b600082601f83011261404a57600080fd5b81356001600160401b0381111561406357614063613fcb565b614076601f8201601f1916602001614009565b81815284602083860101111561408b57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156140bd57600080fd5b83356001600160401b03808211156140d457600080fd5b6140e087838801614039565b945060208601359150808211156140f657600080fd5b5061410386828701614039565b925050604084013590509250925092565b60008060006060848603121561412957600080fd5b833561413481613f2c565b92506020840135915060408401356001600160401b0381111561415657600080fd5b61416286828701614039565b9150509250925092565b6000806040838503121561417f57600080fd5b823561418a81613f2c565b915060208301356001600160401b038111156141a557600080fd5b6141b185828601614039565b9150509250929050565b6000806000606084860312156141d057600080fd5b83356141db81613f2c565b925060208401356001600160401b03808211156141f757600080fd5b61420387838801614039565b9350604086013591508082111561421957600080fd5b5061416286828701614039565b6000806020838503121561423957600080fd5b82356001600160401b038082111561425057600080fd5b818501915085601f83011261426457600080fd5b81358181111561427357600080fd5b8660208260051b850101111561428857600080fd5b60209290920196919550909350505050565b600080604083850312156142ad57600080fd5b50508035926020909101359150565b6000602082840312156142ce57600080fd5b5035919050565b60006001600160401b038211156142ee576142ee613fcb565b5060051b60200190565b6000806040838503121561430b57600080fd5b82356001600160401b038082111561432257600080fd5b818501915085601f83011261433657600080fd5b8135602061434b614346836142d5565b614009565b82815260059290921b8401810191818101908984111561436a57600080fd5b948201945b838610156143885785358252948201949082019061436f565b9650508601359250508082111561439e57600080fd5b506141b185828601614039565b6000806000606084860312156143c057600080fd5b833592506020840135613fba81613f2c565b6020808252825182820181905260009190848201906040850190845b818110156144135783516001600160a01b0316835292840192918401916001016143ee565b50909695505050505050565b6000806040838503121561443257600080fd5b8235915060208301356001600160401b038111156141a557600080fd5b6000806000806080858703121561446557600080fd5b843561447081613f2c565b93506020858101356001600160401b038082111561448d57600080fd5b61449989838a01614039565b95506040915081880135818111156144b057600080fd5b6144bc8a828b01614039565b9550506060880135818111156144d157600080fd5b88019050601f810189136144e457600080fd5b80356144f2614346826142d5565b81815260069190911b8201840190848101908b83111561451157600080fd5b928501925b8284101561455a5784848d03121561452e5760008081fd5b614536613fe1565b843561454181613f2c565b8152848701358782015282529284019290850190614516565b989b979a50959850505050505050565b602080825282518282018190526000919060409081850190868401855b828110156145b557815180516001600160a01b03168552860151868501529284019290850190600101614587565b5091979650505050505050565b600080604083850312156145d557600080fd5b82356145e081613f2c565b915060208301356145f081613f2c565b809150509250929050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561462357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156146525761465261462a565b500390565b6000821982111561466a5761466a61462a565b500190565b6000600182016146815761468161462a565b5060010190565b600181811c9082168061469c57607f821691505b6020821081036109e857634e487b7160e01b600052602260045260246000fd5b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600181815b808511156147da5781600019048211156147c0576147c061462a565b808516156147cd57918102915b93841c93908002906147a4565b509250929050565b6000826147f157506001610a94565b816147fe57506000610a94565b8160018114614814576002811461481e5761483a565b6001915050610a94565b60ff84111561482f5761482f61462a565b50506001821b610a94565b5060208310610133831016604e8410600b841016171561485d575081810a610a94565b614867838361479f565b806000190482111561487b5761487b61462a565b029392505050565b600061142d83836147e2565b60008160001904831182151516156148a9576148a961462a565b500290565b600080821280156001600160ff1b03849003851316156148d0576148d061462a565b600160ff1b83900384128116156148e9576148e961462a565b50500190565b60008261490c57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526019908201527f546f74616c2066656573206d757374206265203c3d2035302500000000000000604082015260600190565b60208082526017908201527f537472617465677920646f6573206e6f74206578697374000000000000000000604082015260600190565b600082601f83011261499057600080fd5b815160206149a0614346836142d5565b82815260059290921b840181019181810190868411156149bf57600080fd5b8286015b848110156149da57805183529183019183016149c3565b509695505050505050565b6000806000606084860312156149fa57600080fd5b835192506020808501516001600160401b0380821115614a1957600080fd5b818701915087601f830112614a2d57600080fd5b8151614a3b614346826142d5565b81815260059190911b8301840190848101908a831115614a5a57600080fd5b938501935b82851015614a81578451614a7281613f2c565b82529385019390850190614a5f565b60408a01519097509450505080831115614a9a57600080fd5b50506141628682870161497f565b634e487b7160e01b600052603160045260246000fd5b60018060a01b0384168152826020820152606060408201526000614ae56060830184613eed565b95945050505050565b600081614afd57614afd61462a565b506000190190565b600060208284031215614b1757600080fd5b8151801515811461142d57600080fd5b601f821115610ced57600081815260208120601f850160051c81016020861015614b4e5750805b601f850160051c820191505b818110156113ed57828155600101614b5a565b81516001600160401b03811115614b8657614b86613fcb565b614b9a81614b948454614688565b84614b27565b602080601f831160018114614bcf5760008415614bb75750858301515b600019600386901b1c1916600185901b1785556113ed565b600085815260208120601f198616915b82811015614bfe57888601518255948401946001909101908401614bdf565b5085821015614c1c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614c3e818460208701613ec1565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203fc2b61569f29949e25b53c7ad28185dc482dc80a5c8198ffaecf00be08a1b3b64736f6c634300080f0033