0 txs
1 call
constructor
constructor(address _owner, address _staxVault)
functions
activeInstance
viewfunction activeInstance() view returns (address)
claimIncentiveFeeBPS
viewfunction claimIncentiveFeeBPS() view returns (uint16)
deviation
viewfunction deviation() view returns (uint32)
distributeIncentiveFeeBPS
viewfunction distributeIncentiveFeeBPS() view returns (uint16)
distributionInterval
viewfunction distributionInterval() view returns (uint64)
getMaturedStake
viewfunction getMaturedStake() view returns (address, uint256)
getNextDistributionInfo
viewfunction getNextDistributionInfo() view returns (uint256 time, uint256 amount)
getNextStakeInfo
viewfunction getNextStakeInfo() view returns (uint256 time, uint256 amount)
getTotalUnclaimedRewards
viewfunction getTotalUnclaimedRewards() view returns (uint256)
instances
viewfunction instances(uint256 instanceId) view returns (address)
intervalOverride
viewfunction intervalOverride() view returns (uint256)
lastDistributionTime
viewfunction lastDistributionTime() view returns (uint256)
lastStakeTime
viewfunction lastStakeTime() view returns (uint256)
maxDistributionAmount
viewfunction maxDistributionAmount() view returns (uint256)
minStakeAmount
viewfunction minStakeAmount() view returns (uint256)
numInstances
viewfunction numInstances() view returns (uint256)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
secondsAgo
viewfunction secondsAgo() view returns (uint32)
stakeIncentiveFeeBPS
viewfunction stakeIncentiveFeeBPS() view returns (uint16)
stakeInterval
viewfunction stakeInterval() view returns (uint64)
STAX_VAULT
viewfunction STAX_VAULT() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
claim
nonpayablefunction claim()
deployNewInstance
nonpayablefunction deployNewInstance()
distributeRewards
nonpayablefunction distributeRewards(uint256 minAmountOut, uint256 deadline)
renounceOwnership
nonpayablefunction renounceOwnership()
setClaimIncentiveFee
nonpayablefunction setClaimIncentiveFee(uint16 bps)
setDeviation
nonpayablefunction setDeviation(uint32 limit)
setDistributeIncentiveFee
nonpayablefunction setDistributeIncentiveFee(uint16 bps)
setDistributionInterval
nonpayablefunction setDistributionInterval(uint64 limit)
setMaxDistributionAmount
nonpayablefunction setMaxDistributionAmount(uint256 limit)
setMinStakeAmount
nonpayablefunction setMinStakeAmount(uint256 limit)
setSecondsAgo
nonpayablefunction setSecondsAgo(uint32 limit)
setStakeIncentiveFee
nonpayablefunction setStakeIncentiveFee(uint16 bps)
setStakeInterval
nonpayablefunction setStakeInterval(uint64 limit)
stake
nonpayablefunction stake()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Claim
event Claim()
Distribution
event Distribution()
NewInstance
event NewInstance(uint256 instanceId, address instanceAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Stake
event Stake()
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
Cooldown
error Cooldown()
Create2EmptyBytecode
error Create2EmptyBytecode()
Create2FailedDeployment
error Create2FailedDeployment()
Create2InsufficientBalance
error Create2InsufficientBalance(uint256 balance, uint256 needed)
FailedInnerCall
error FailedInnerCall()
InsufficientBalance
error InsufficientBalance()
MathOverflowedMulDiv
error MathOverflowedMulDiv()
NothingToClaim
error NothingToClaim()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
Prohibited
error Prohibited()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
T
error T()
TWAP
error TWAP()
Unauthorized
error Unauthorized()
ZeroAddress
error ZeroAddress()
ZeroInput
error ZeroInput()
creation bytecode
0x60a0806040523461025357604081613eb7803803809161001f8285610258565b8339810103126102535761003e602061003783610291565b9201610291565b6001600160a01b0390911690811561023d57600180546001600160a01b0319908116909155600080549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360016002556c01431e0fae6d7217caa00000006007556729a2241af62c0000600855600980546001600160f01b0319167b01f40000012c001e001e001e0000000000000e100000000000093a801790556001600160a01b0381161561022c57608052610c5e906101146020830182610258565b81815260208101916132598339600354916000198314610216576001830160035560405160208101903060601b825284603482015260348152610158605482610258565b519020908251156102055791516001600160a01b03926000f51680156101f4577fd55946290a6ff8ebb4aa2df8f1d355c32d034d04fb225b655d9da856c250fda8918160409260018060a01b0319600454161760045581600052600a602052826000208160018060a01b031982541617905582519182526020820152a1604051612fb390816102a682396080518181816107ca0152611c940152f35b633a0ba96160e11b60005260046000fd5b631328927760e21b60005260046000fd5b634e487b7160e01b600052601160045260246000fd5b63d92e233d60e01b60005260046000fd5b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b601f909101601f19168101906001600160401b0382119082101761027b57604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036102535756fe608080604052600436101561001a575b50361561001857005b005b600090813560e01c908162be365614611c80575080631ad7b12714611c2a578063294a441114611bc45780632ace03ad14611b7c5780632c162e5414611b535780632d6e140814611b385780633a4b66f1146119f957806349984e08146118505780634e71d92d1461171d57806351778fa4146116f45780635bc02c75146116d6578063633dd145146116af578063639097a11461168857806364d4db101461166a578063664d4e981461164557806371201a0e1461161b578063715018a6146115b657806375b173501461159857806379ba5097146115135780637f7de580146114ec5780638166b31614611486578063840d3e961461141a5780638da5cb5b146113f357806399aa65a7146113d5578063a2f7b3a5146113a2578063ad44a2731461136c578063af1a3d0414611306578063c0794e71146112de578063d43b51b6146112b9578063d65a562314611292578063daf8c5aa14611211578063db4d085214611147578063df6c39fb146102cc578063e12ae00e146102a7578063e30c39781461027e578063eb4af0451461025b578063f18876841461023d5763f2fde38b0361000f573461023a57602036600319011261023a576004356001600160a01b03811690819003610236576101f2611ec1565b600180546001600160a01b0319168217905581546001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461023a578060031936011261023a576020600754604051908152f35b503461023a57602036600319011261023a57610275611ec1565b60043560075580f35b503461023a578060031936011261023a576001546040516001600160a01b039091168152602090f35b503461023a578060031936011261023a57602061ffff60095460a01c16604051908152f35b503461023a57604036600319011261023a576004356102e9611fba565b333b1580159061113d575b61112f57610300611de4565b904210611120578015611111574260065561033261271061032a61ffff60095460a01c1684611eea565b048092611dca565b9173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc23b1561110257604051630d0e30db60e41b8152849081816004818873c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af18015611106576110ed575b5050600954604051633850c7bd60e01b8152919060b081901c63ffffffff1660e08460048173c45a81bc23a64ea556ab4cdf08a86b61cdceea8b5afa80156110e2578794889161104e575b5061ffff169384156110245761ffff600191160161ffff8111610d8a5761ffff600095816040519363252c09d760e01b8552160616600482015260808160248173c45a81bc23a64ea556ab4cdf08a86b61cdceea8b5afa908115610f215788908992610fff575b509015610f80575b63ffffffff1663ffffffff42160363ffffffff8111610d8a5790818163ffffffff80941610610f78575b50168015610f4e5760405190610480606083611cc3565b6002825260208201916040368437816104988261219f565b52886104a3826121c2565b5288604051809463883bdbfd60e01b825260248201936020600484015251809452604482019093835b818110610f2c57505081929350038173c45a81bc23a64ea556ab4cdf08a86b61cdceea8b5afa918215610f215788908993610dff575b5061051961050f826121c2565b5160060b9161219f565b5160060b900391667fffffffffffff198312667fffffffffffff841317610db4576001600160a01b0361054b826121c2565b5116906001600160a01b03906105609061219f565b51169003906001600160a01b038211610db4578060060b9260060b8315610deb57667fffffffffffff198114600019851416610dd75783810560020b938a82129182610dc8575b5050610d9e575b6001600160a01b038181026001600160c01b0316919091049003610d8a5760201b640100000000600160c01b031615610b415760020b86811215610d8457808703905b620d89e88211610d755787906001831615610d63576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b169260028116610d47575b60048116610d2b575b60088116610d0f575b60108116610cf3575b60208116610cd7575b60408116610cbb575b60808116610c9f575b6101008116610c83575b6102008116610c67575b6104008116610c4b575b6108008116610c2f575b6110008116610c13575b6120008116610bf7575b6140008116610bdb575b6180008116610bbf575b620100008116610ba3575b620200008116610b88575b620400008116610b6d575b6208000016610b55575b13610b32575b63ffffffff90808216610b2a5787905b60201c60ff91909116016001600160a01b03166fffffffffffffffffffffffffffffffff878116908211610b125761072d8261073293611eea565b612280565b915b60d01c166127100363ffffffff8111610afe576127109163ffffffff61075b921690611eea565b048110610aef576040519361010085018581106001600160401b03821117610adb5760405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc285526020850173f19308f923582a6f7c465e5ce7a9dc1bec6665b1815260408601906127108252606087019060018060a01b037f00000000000000000000000000000000000000000000000000000000000000001682526080880192602435845260a089019480865260c08a0196875260e08a01978b8952604051636eb1769f60e11b815230600482015273e592427a0aece92de3edee1f18e0157c05861564602482015260208160448173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa918215610ad0578d92610a99575b50509061087191611d0e565b918a8060405194602086019063095ea7b360e01b825273e592427a0aece92de3edee1f18e0157c0586156460248801526044870152604486526108b5606487611cc3565b8551908273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1926108d9611fda565b9380610a58575b62ffffff945080610a3a575b156109e8575b5060405163414bf38960e01b815299516001600160a01b0390811660048c01529051811660248b0152905191909116604489015290518116606488015290516084870152905160a4860152905160c485015290511660e4830152602082610104818673e592427a0aece92de3edee1f18e0157c058615645af19182156109dd57610982926109ae575b5033612019565b7f5da5f5ab15b3f7ce29e57210ae89068218f2196e9df956cf8b0586b0d65205528180a1600160025580f35b6109cf9060203d6020116109d6575b6109c78183611cc3565b810190611cfa565b503861097b565b503d6109bd565b6040513d85823e3d90fd5b610a3490610a2f8d6040519063095ea7b360e01b602083015273e592427a0aece92de3edee1f18e0157c058615646024830152604482015260448152610a2f606482611cc3565b61206a565b386108f2565b5073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc23b15156108ec565b5083518015908115610a71575b5062ffffff94506108e0565b60209150859081010312610a9557610a8f602062ffffff9501611dd7565b38610a65565b8b80fd5b9091506020823d602011610ac8575b81610ab560209383611cc3565b8101031261023a57505161087138610865565b3d9150610aa8565b6040513d8f823e3d90fd5b634e487b7160e01b87526041600452602487fd5b63431653f160e11b8552600485fd5b634e487b7160e01b87526011600452602487fd5b610b1f82610b24936121d2565b612231565b91610734565b6001906106f2565b8015610b4157600019046106e2565b634e487b7160e01b87526012600452602487fd5b916b048a170391f7dc42444e8fa20260801c916106dc565b6d2216e584f5fa1ea926041bedfe9890930260801c926106d2565b926e5d6af8dedb81196699c329225ee6040260801c926106c7565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c926106bc565b926f31be135f97d08fd981231505542fcfa60260801c926106b1565b926f70d869a156d2a1b890bb3df62baf32f70260801c926106a7565b926fa9f746462d870fdf8a65dc1f90e061e50260801c9261069d565b926fd097f3bdfd2022b8845ad8f792aa58250260801c92610693565b926fe7159475a2c29b7443b29c7fa6e889d90260801c92610689565b926ff3392b0822b70005940c7a398e4b70f30260801c9261067f565b926ff987a7253ac413176f2b074cf7815e540260801c92610675565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c9261066b565b926ffe5dee046a99a2a811c461f1969c30530260801c92610661565b926fff2ea16466c96a3843ec78b326b528610260801c92610658565b926fff973b41fa98c081472e6896dfb254c00260801c9261064f565b926fffcb9843d60f6159c9db58835c9266440260801c92610646565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c9261063d565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c92610634565b926ffff97272373d413259a46990580e213a0260801c9261062b565b6001600160881b03600160801b610620565b6315e4079d60e11b8852600488fd5b806105f1565b634e487b7160e01b88526011600452602488fd5b91627fffff198114610db45760001901916105ae565b634e487b7160e01b89526011600452602489fd5b0760060b1515905038806105a7565b634e487b7160e01b8a52601160045260248afd5b634e487b7160e01b8a52601260045260248afd5b9250503d8089843e610e118184611cc3565b820191604081840312610f1d5780516001600160401b038111610ef95781019083601f83011215610ef957815191610e4883612188565b92610e566040519485611cc3565b80845260208085019160051b83010191868311610f1957602001905b828210610f01575050506020810151906001600160401b038211610efd57019280601f85011215610ef9578351610ea881612188565b94610eb66040519687611cc3565b81865260208087019260051b820101928311610a9557602001905b828210610ee15750505038610502565b60208091610eee84612113565b815201910190610ed1565b8980fd5b8a80fd5b60208091610f0e84612136565b815201910190610e72565b8c80fd5b8880fd5b6040513d8a823e3d90fd5b855163ffffffff1683526020958601958e9550889450909201916001016104cc565b60405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606490fd5b905038610469565b5060405163252c09d760e01b81526004810188905260808160248173c45a81bc23a64ea556ab4cdf08a86b61cdceea8b5afa8015610f215763ffffffff918991610fcd575b50905061043f565b610fef915060803d608011610ff8575b610fe78183611cc3565b810190612144565b50505038610fc5565b503d610fdd565b905061101a915060803d608011610ff857610fe78183611cc3565b9291505038610437565b60405162461bcd60e51b81526020600482015260026024820152614e4960f01b6044820152606490fd5b94505060e0843d60e0116110da575b8161106a60e09383611cc3565b810103126110d65761107b84612113565b5060208401518060020b036110d65761109660408501612127565b936110a360608201612127565b946110b060808301612127565b5060a082015160ff811603610f1d576110ce60c061ffff9301611dd7565b5094906103d0565b8680fd5b3d915061105d565b6040513d89823e3d90fd5b816110f791611cc3565b611102578338610385565b8380fd5b6040513d84823e3d90fd5b631e9acf1760e31b8352600483fd5b63b0782df760e01b8352600483fd5b6282b42960e81b8252600482fd5b50323314156102f4565b503461023a578060031936011261023a578081600354905b81841061117157602083604051908152f35b9091838252600a60205260018060a01b03604083205416604051906338ce8f2560e21b8252600482015260208160248173f19308f923582a6f7c465e5ce7a9dc1bec6665b15afa9081156109dd5783916111dd575b506111d390600192611d0e565b930192919061115f565b905060203d811161120a575b6111f38183611cc3565b6020826000928101031261023a57505160016111c6565b503d6111e9565b503461023a57602036600319011261023a5760043563ffffffff811680820361128e5761123c611ec1565b801561127f5761271010611270576009805463ffffffff60d01b191660d09290921b63ffffffff60d01b1691909117905580f35b632b0039c760e21b8252600482fd5b63af458c0760e01b8352600483fd5b8280fd5b503461023a578060031936011261023a5760206001600160401b0360095416604051908152f35b503461023a578060031936011261023a57602061ffff60095460801c16604051908152f35b503461023a578060031936011261023a5760206040516c01431e0fae6d7217caa00000008152f35b503461023a57602036600319011261023a5760043561ffff811680820361128e5761132f611ec1565b8015908115611360575b50611270576009805461ffff60801b191660809290921b61ffff60801b1691909117905580f35b6103e891501138611339565b503461023a578060031936011261023a57611385611e14565b604080516001600160a01b03939093168352602083019190915290f35b503461023a57602036600319011261023a576020906004358152600a8252604060018060a01b0391205416604051908152f35b503461023a578060031936011261023a576020600354604051908152f35b503461023a578060031936011261023a57546040516001600160a01b039091168152602090f35b503461023a57602036600319011261023a576004356001600160401b03811680820361128e57611448611ec1565b156114775767ffffffffffffffff60401b6009549160401b169067ffffffffffffffff60401b19161760095580f35b63af458c0760e01b8252600482fd5b503461023a57602036600319011261023a5760043561ffff811680820361128e576114af611ec1565b80159081156114e0575b50611270576009805461ffff60901b191660909290921b61ffff60901b1691909117905580f35b6103e8915011386114b9565b503461023a578060031936011261023a576040611507611de4565b82519182526020820152f35b503461023a578060031936011261023a57600154336001600160a01b039091160361158557600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461023a578060031936011261023a576020600654604051908152f35b503461023a578060031936011261023a576115cf611ec1565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461023a578060031936011261023a5760206001600160401b0360095460401c16604051908152f35b503461023a578060031936011261023a57602061ffff60095460901c16604051908152f35b503461023a578060031936011261023a576020600554604051908152f35b503461023a578060031936011261023a57602063ffffffff60095460d01c16604051908152f35b503461023a578060031936011261023a57602063ffffffff60095460b01c16604051908152f35b503461023a578060031936011261023a576020600854604051908152f35b503461023a578060031936011261023a576004546040516001600160a01b039091168152602090f35b503461023a578060031936011261023a57611736611fba565b333b15801590611846575b6118385780805b6003548310156117d657828252600a60205281602060018060a01b03604083205416600460405180948193634e71d92d60e01b83525af19081156109dd5783916117a2575b5061179a90600192611d0e565b920191611748565b905060203d81116117cf575b6117b88183611cc3565b6020826000928101031261023a575051600161178d565b503d6117ae565b8015611829576127106117f66117fd9261ffff60095460901c1690611eea565b0433612019565b7f3158952e7c791deb52750003dbcb0fb942106f2bcd1005fb946a83cd6646fdc48180a1600160025580f35b6312d37ee560e31b8252600482fd5b6282b42960e81b8152600490fd5b5032331415611741565b503461023a578060031936011261023a576004805460405163e18f2c9160e01b81529160209183919082906001600160a01b03165afa9081156111065782916119bf575b50156119b057610c5e6040516118ad6020830182611cc3565b8181526020810191612320833960035491600019831461199c576001830160035560405160208101903060601b8252846034820152603481526118f1605482611cc3565b5190209082511561198d5791516001600160a01b039285f516801561197e577fd55946290a6ff8ebb4aa2df8f1d355c32d034d04fb225b655d9da856c250fda891816040926bffffffffffffffffffffffff60a01b6004541617600455818552600a602052828520816bffffffffffffffffffffffff60a01b82541617905582519182526020820152a180f35b633a0ba96160e11b8352600483fd5b631328927760e21b8552600485fd5b634e487b7160e01b84526011600452602484fd5b632b0039c760e21b8152600490fd5b90506020813d6020116119f1575b816119da60209383611cc3565b81010312610236576119eb90611dd7565b38611894565b3d91506119cd565b503461023a578060031936011261023a57333b15801590611b2e575b61183857611a21611d31565b906c01431e0fae6d7217caa00000008210611afb575b50611a7c9042600555611a76612710611a5961ffff60095460801c1684611eea565b04611a648133611efd565b6004546001600160a01b031692611dca565b90611efd565b60045481906001600160a01b0316803b15611af857818091600460405180958193633a4b66f160e01b83525af18015611aeb57611adb575b7fde20bc92f9195457f9ba0ec9258c42c0814617c756a597287307a20494e839928180a180f35b611ae491611cc3565b3881611ab4565b50604051903d90823e3d90fd5b50fd5b4210611b1f576007548110611b105738611a37565b631e9acf1760e31b8252600482fd5b63b0782df760e01b8252600482fd5b5032331415611a15565b503461023a578060031936011261023a576040611507611d31565b503461023a57602036600319011261023a57600435611b70611ec1565b80156114775760085580f35b503461023a57602036600319011261023a576004356001600160401b03811680910361023657611baa611ec1565b8015611477576001600160401b0319600954161760095580f35b503461023a57602036600319011261023a5760043561ffff811680820361128e57611bed611ec1565b8015908115611c1e575b50611270576009805461ffff60a01b191660a09290921b61ffff60a01b1691909117905580f35b6103e891501138611bf7565b503461023a57602036600319011261023a5760043563ffffffff811680820361128e57611c55611ec1565b15611477576009805463ffffffff60b01b191660b09290921b63ffffffff60b01b1691909117905580f35b9050346102365781600319360112610236577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90601f801991011681019081106001600160401b03821117611ce457604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312611d09575190565b600080fd5b91908201809211611d1b57565b634e487b7160e01b600052601160045260246000fd5b6040516370a0823160e01b815230600482015260208160248173f19308f923582a6f7c465e5ce7a9dc1bec6665b15afa908115611dbe57600091611d8c575b50611d896005546001600160401b036009541690611d0e565b91565b90506020813d602011611db6575b81611da760209383611cc3565b81010312611d09575138611d70565b3d9150611d9a565b6040513d6000823e3d90fd5b91908203918211611d1b57565b51908115158203611d0957565b6008544781811115611e0d57505b611d896006546001600160401b0360095460401c1690611d0e565b9050611df2565b60035460005b818110611e2b575050600090600090565b80600052600a60205260018060a01b03604060002054166040519063072553c560e01b8252604082600481845afa918215611dbe576000908193611e81575b50611e79575050600101611e1a565b939092509050565b92506040833d8211611eb9575b81611e9b60409383611cc3565b8101031261023a57506020611eaf83611dd7565b9201519138611e6a565b3d9150611e8e565b6000546001600160a01b03163303611ed557565b63118cdaa760e01b6000523360045260246000fd5b81810292918115918404141715611d1b57565b60405163a9059cbb60e01b60208201526001600160a01b03919091166024820152604480820192909252908152611f35606482611cc3565b805173f19308f923582a6f7c465e5ce7a9dc1bec6665b191611f6d9160009182919060200182865af1611f66611fda565b90836122cf565b8051908115159182611f97575b5050611f835750565b635274afe760e01b60005260045260246000fd5b8192509060209181010312611d09576020611fb29101611dd7565b153880611f7a565b6002805414611fc95760028055565b633ee5aeb560e01b60005260046000fd5b3d15612014573d906001600160401b038211611ce45760405191612008601f8201601f191660200184611cc3565b82523d6000602084013e565b606090565b814710612055576000918291829182916001600160a01b03165af161203c611fda565b501561204457565b630a12f52160e11b60005260046000fd5b63cd78605960e01b6000523060045260246000fd5b6000806120b2926020815191018273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1612097611fda565b9073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26122cf565b80519081151591826120f0575b50506120c757565b635274afe760e01b60005273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260045260246000fd5b8192509060209181010312611d0957602061210b9101611dd7565b1538806120bf565b51906001600160a01b0382168203611d0957565b519061ffff82168203611d0957565b51908160060b8203611d0957565b9190826080910312611d0957815163ffffffff81168103611d09579161216c60208201612136565b91612185606061217e60408501612113565b9301611dd7565b90565b6001600160401b038111611ce45760051b60200190565b8051156121ac5760200190565b634e487b7160e01b600052603260045260246000fd5b8051600110156121ac5760400190565b81810291600091600019828209928480851094039380850394146122265783600160401b1115612217575090600160401b910990828211900360c01b910360401c1790565b63227bc15360e01b8152600490fd5b925050505060401c90565b600090828102926000198183099284808510940393808503941461227557600160801b8410156122175750600160801b910990828211900360801b910360801c1790565b925050505060801c90565b60009082810292600019818309928480851094039380850394146122c457600160c01b8410156122175750600160c01b910990828211900360401b910360c01c1790565b925050505060c01c90565b906122e4575080511561204457805190602001fd5b81511580612316575b6122f5575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b156122ed56fe60808060405234609b57331560855760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600280546001600160a01b03191673f19308f923582a6f7c465e5ce7a9dc1bec6665b1179055610bbd90816100a18239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fdfe60806040526004361015610018575b361561001657005b005b6000803560e01c80630614117a14610696578063072553c51461066d5780633a4b66f1146105685780634e71d92d146104715780635ad3f99c1461041a578063715018a6146103c05780638da5cb5b14610399578063af83a81c1461016d578063bf9befb11461014f578063e18f2c911461012d5763f2fde38b1461009d575061000e565b3461012a57602036600319011261012a576004356001600160a01b03811690819003610126576100cb610a5e565b80156101125781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b80fd5b503461012a578060031936011261012a5760206103e860015414604051908152f35b503461012a578060031936011261012a576020600154604051908152f35b503461012a57602036600319011261012a57600435908115801561038e575b61037f576002546001600160a01b0316803b1561012657818091600460405180948193632277d1bd60e01b83525af180156102f85790829161036a575b505060025460405162572fd560e11b8152306004820152602481018490526001600160a01b039091169060c081604481855afa90811561035f578391610316575b506080015165ffffffffffff16421115610307578192813b1561030357829160248392604051948593849263065f146b60e11b845260048401525af180156102f8576102e3575b505060025481546040516370a0823160e01b8152306004820152916001600160a01b039081169116602083602481855afa9182156102d857849261029d575b61029a9350610a87565b80f35b91506020833d6020116102d0575b816102b8602093836106bd565b810103126102cb5761029a925191610290565b600080fd5b3d91506102ab565b6040513d86823e3d90fd5b816102ed916106bd565b61012a578038610251565b6040513d84823e3d90fd5b5050fd5b632968c44760e21b8252600482fd5b905060c03d60c011610358575b61032d81836106bd565b81019060c0818303126103545761034d65ffffffffffff92608092610708565b915061020a565b8380fd5b503d610323565b6040513d85823e3d90fd5b81610374916106bd565b61012a5780386101c9565b637351f92960e11b8152600490fd5b50600154821161018c565b503461012a578060031936011261012a57546040516001600160a01b039091168152602090f35b503461012a578060031936011261012a576103d9610a5e565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461012a578060031936011261012a5760025481546040516370a0823160e01b8152306004820152916001600160a01b039081169116602083602481855afa9182156102d857849261029d5761029a9350610a87565b503461012a578060031936011261012a5761048a610a5e565b6002546040516338ce8f2560e21b8152306004820152906001600160a01b0316602082602481845afa91821561035f578392610534575b50816104d3575b602082604051908152f35b8083913b15610126578190600460405180948193633dda788160e01b83525af1801561035f5761051f575b509054602091906105199082906001600160a01b0316610a0d565b386104c8565b61052a8380926106bd565b61012657386104fe565b9091506020813d602011610560575b81610550602093836106bd565b810103126102cb575190386104c1565b3d9150610543565b503461012a578060031936011261012a57610581610a5e565b6002546040516370a0823160e01b815230600482015282916001600160a01b031690602081602481855afa90811561035f57839161063b575b50813b15610303578291604483926040519586938492630945fe5760e11b84526004840152610dac60248401525af1801561062e5761061e575b50506001546001810180911161060a5760015580f35b634e487b7160e01b82526011600452602482fd5b610627916106bd565b38816105f4565b50604051903d90823e3d90fd5b90506020813d602011610665575b81610656602093836106bd565b810103126103035751386105ba565b3d9150610649565b503461012a578060031936011261012a5760406106886107ed565b825191151582526020820152f35b503461012a578060031936011261012a57805461029a9047906001600160a01b0316610a0d565b90601f8019910116810190811067ffffffffffffffff8211176106df57604052565b634e487b7160e01b600052604160045260246000fd5b519065ffffffffffff821682036102cb57565b91908260c09103126102cb5760405160c0810181811067ffffffffffffffff8211176106df576040528092805172ffffffffffffffffffffffffffffffffffffff811681036102cb57825260208101516fffffffffffffffffffffffffffffffff811681036102cb57602083015260408101519061ffff821682036102cb5760a091604084015261079b606082016106f5565b60608401526107ac608082016106f5565b608084015201519060038210156102cb5760a00152565b80518210156107d75760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60025460405163842e298160e01b815230600482015290600090829060249082906001600160a01b03165afa9081156109c1576000916108ad575b5060005b81518110156108a357604061084182846107c3565b51015165ffffffffffff60808201511642119081610877575b506108675760010161082c565b610870916107c3565b5151600191565b60a091500151600381101561088d57153861085a565b634e487b7160e01b600052602160045260246000fd5b5050600090600090565b903d8082843e6108bd81846106bd565b8201916020818403126101265780519067ffffffffffffffff82116109a9570182601f820112156101265780519167ffffffffffffffff83116109ad576040519361090e60208560051b01866106bd565b83855260208086019460081b840101928184116109a957602001935b83851061093c57505050505038610828565b610100858303126109a9576040516060810181811067ffffffffffffffff8211176109955791602091610100936040528751815282880151838201526109858560408a01610708565b604082015281520194019361092a565b634e487b7160e01b85526041600452602485fd5b8280fd5b634e487b7160e01b81526041600452602490fd5b6040513d6000823e3d90fd5b3d15610a08573d9067ffffffffffffffff82116106df57604051916109fc601f8201601f1916602001846106bd565b82523d6000602084013e565b606090565b814710610a49576000918291829182916001600160a01b03165af1610a306109cd565b5015610a3857565b630a12f52160e11b60005260046000fd5b63cd78605960e01b6000523060045260246000fd5b6000546001600160a01b03163303610a7257565b63118cdaa760e01b6000523360045260246000fd5b60405163a9059cbb60e01b602082019081526001600160a01b03939093166024820152604480820194909452928352610ae991600091829190610acb6064876106bd565b60018060a01b031694519082865af1610ae26109cd565b9083610b37565b8051908115159182610b13575b5050610aff5750565b635274afe760e01b60005260045260246000fd5b81925090602091810103126102cb57602001518015908115036102cb573880610af6565b90610b4c5750805115610a3857805190602001fd5b81511580610b7e575b610b5d575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15610b5556fea26469706673582212205add8629489c96279fa7576a98d35e67fd02a38dedf6c96f1511766419824e1264736f6c634300081a0033a26469706673582212204c26926ac4e3f16b434ab664648ea59d08dc1d0df6e56b09fc8e3a7d5da776ef64736f6c634300081a003360808060405234609b57331560855760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3600280546001600160a01b03191673f19308f923582a6f7c465e5ce7a9dc1bec6665b1179055610bbd90816100a18239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fdfe60806040526004361015610018575b361561001657005b005b6000803560e01c80630614117a14610696578063072553c51461066d5780633a4b66f1146105685780634e71d92d146104715780635ad3f99c1461041a578063715018a6146103c05780638da5cb5b14610399578063af83a81c1461016d578063bf9befb11461014f578063e18f2c911461012d5763f2fde38b1461009d575061000e565b3461012a57602036600319011261012a576004356001600160a01b03811690819003610126576100cb610a5e565b80156101125781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b80fd5b503461012a578060031936011261012a5760206103e860015414604051908152f35b503461012a578060031936011261012a576020600154604051908152f35b503461012a57602036600319011261012a57600435908115801561038e575b61037f576002546001600160a01b0316803b1561012657818091600460405180948193632277d1bd60e01b83525af180156102f85790829161036a575b505060025460405162572fd560e11b8152306004820152602481018490526001600160a01b039091169060c081604481855afa90811561035f578391610316575b506080015165ffffffffffff16421115610307578192813b1561030357829160248392604051948593849263065f146b60e11b845260048401525af180156102f8576102e3575b505060025481546040516370a0823160e01b8152306004820152916001600160a01b039081169116602083602481855afa9182156102d857849261029d575b61029a9350610a87565b80f35b91506020833d6020116102d0575b816102b8602093836106bd565b810103126102cb5761029a925191610290565b600080fd5b3d91506102ab565b6040513d86823e3d90fd5b816102ed916106bd565b61012a578038610251565b6040513d84823e3d90fd5b5050fd5b632968c44760e21b8252600482fd5b905060c03d60c011610358575b61032d81836106bd565b81019060c0818303126103545761034d65ffffffffffff92608092610708565b915061020a565b8380fd5b503d610323565b6040513d85823e3d90fd5b81610374916106bd565b61012a5780386101c9565b637351f92960e11b8152600490fd5b50600154821161018c565b503461012a578060031936011261012a57546040516001600160a01b039091168152602090f35b503461012a578060031936011261012a576103d9610a5e565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461012a578060031936011261012a5760025481546040516370a0823160e01b8152306004820152916001600160a01b039081169116602083602481855afa9182156102d857849261029d5761029a9350610a87565b503461012a578060031936011261012a5761048a610a5e565b6002546040516338ce8f2560e21b8152306004820152906001600160a01b0316602082602481845afa91821561035f578392610534575b50816104d3575b602082604051908152f35b8083913b15610126578190600460405180948193633dda788160e01b83525af1801561035f5761051f575b509054602091906105199082906001600160a01b0316610a0d565b386104c8565b61052a8380926106bd565b61012657386104fe565b9091506020813d602011610560575b81610550602093836106bd565b810103126102cb575190386104c1565b3d9150610543565b503461012a578060031936011261012a57610581610a5e565b6002546040516370a0823160e01b815230600482015282916001600160a01b031690602081602481855afa90811561035f57839161063b575b50813b15610303578291604483926040519586938492630945fe5760e11b84526004840152610dac60248401525af1801561062e5761061e575b50506001546001810180911161060a5760015580f35b634e487b7160e01b82526011600452602482fd5b610627916106bd565b38816105f4565b50604051903d90823e3d90fd5b90506020813d602011610665575b81610656602093836106bd565b810103126103035751386105ba565b3d9150610649565b503461012a578060031936011261012a5760406106886107ed565b825191151582526020820152f35b503461012a578060031936011261012a57805461029a9047906001600160a01b0316610a0d565b90601f8019910116810190811067ffffffffffffffff8211176106df57604052565b634e487b7160e01b600052604160045260246000fd5b519065ffffffffffff821682036102cb57565b91908260c09103126102cb5760405160c0810181811067ffffffffffffffff8211176106df576040528092805172ffffffffffffffffffffffffffffffffffffff811681036102cb57825260208101516fffffffffffffffffffffffffffffffff811681036102cb57602083015260408101519061ffff821682036102cb5760a091604084015261079b606082016106f5565b60608401526107ac608082016106f5565b608084015201519060038210156102cb5760a00152565b80518210156107d75760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60025460405163842e298160e01b815230600482015290600090829060249082906001600160a01b03165afa9081156109c1576000916108ad575b5060005b81518110156108a357604061084182846107c3565b51015165ffffffffffff60808201511642119081610877575b506108675760010161082c565b610870916107c3565b5151600191565b60a091500151600381101561088d57153861085a565b634e487b7160e01b600052602160045260246000fd5b5050600090600090565b903d8082843e6108bd81846106bd565b8201916020818403126101265780519067ffffffffffffffff82116109a9570182601f820112156101265780519167ffffffffffffffff83116109ad576040519361090e60208560051b01866106bd565b83855260208086019460081b840101928184116109a957602001935b83851061093c57505050505038610828565b610100858303126109a9576040516060810181811067ffffffffffffffff8211176109955791602091610100936040528751815282880151838201526109858560408a01610708565b604082015281520194019361092a565b634e487b7160e01b85526041600452602485fd5b8280fd5b634e487b7160e01b81526041600452602490fd5b6040513d6000823e3d90fd5b3d15610a08573d9067ffffffffffffffff82116106df57604051916109fc601f8201601f1916602001846106bd565b82523d6000602084013e565b606090565b814710610a49576000918291829182916001600160a01b03165af1610a306109cd565b5015610a3857565b630a12f52160e11b60005260046000fd5b63cd78605960e01b6000523060045260246000fd5b6000546001600160a01b03163303610a7257565b63118cdaa760e01b6000523360045260246000fd5b60405163a9059cbb60e01b602082019081526001600160a01b03939093166024820152604480820194909452928352610ae991600091829190610acb6064876106bd565b60018060a01b031694519082865af1610ae26109cd565b9083610b37565b8051908115159182610b13575b5050610aff5750565b635274afe760e01b60005260045260246000fd5b81925090602091810103126102cb57602001518015908115036102cb573880610af6565b90610b4c5750805115610a3857805190602001fd5b81511580610b7e575b610b5d575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15610b5556fea26469706673582212205add8629489c96279fa7576a98d35e67fd02a38dedf6c96f1511766419824e1264736f6c634300081a0033000000000000000000000000eb430c15ff72fec66f382e6905e2dcb88a805c510000000000000000000000005d27813c32dd705404d1a78c9444dab523331717