124 txs
135 calls
constructor
constructor(address _owner, address _staxBuyBurn)
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)
getNextSwapInfo
viewfunction getNextSwapInfo() 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)
lastSwapTime
viewfunction lastSwapTime() view returns (uint256)
maxDistributionAmount
viewfunction maxDistributionAmount() view returns (uint256)
maxSwapAmount
viewfunction maxSwapAmount() 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)
rewardPool
viewfunction rewardPool() view returns (uint256)
secondsAgo
viewfunction secondsAgo() view returns (uint32)
stakeIncentiveFeeBPS
viewfunction stakeIncentiveFeeBPS() view returns (uint16)
stakeInterval
viewfunction stakeInterval() view returns (uint64)
STAX_BUY_BURN
viewfunction STAX_BUY_BURN() view returns (address)
swapIncentiveFeeBPS
viewfunction swapIncentiveFeeBPS() view returns (uint16)
swapInterval
viewfunction swapInterval() view returns (uint64)
whitelisted
viewfunction whitelisted(address account) view returns (bool)
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)
setDistributionWhitelist
nonpayablefunction setDistributionWhitelist(address[] accounts, bool isAllowed)
setMaxDistributionAmount
nonpayablefunction setMaxDistributionAmount(uint256 limit)
setMaxSwapAmount
nonpayablefunction setMaxSwapAmount(uint256 limit)
setMinStakeAmount
nonpayablefunction setMinStakeAmount(uint256 limit)
setSecondsAgo
nonpayablefunction setSecondsAgo(uint32 limit)
setStakeIncentiveFee
nonpayablefunction setStakeIncentiveFee(uint16 bps)
setStakeInterval
nonpayablefunction setStakeInterval(uint64 limit)
setSwapIncentiveFee
nonpayablefunction setSwapIncentiveFee(uint16 bps)
setSwapInterval
nonpayablefunction setSwapInterval(uint64 limit)
stake
nonpayablefunction stake()
swap
nonpayablefunction swap(uint256 minAmountOut, uint256 deadline)
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()
Swap
event Swap()
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()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
T
error T()
TWAP
error TWAP()
Unauthorized
error Unauthorized()
ZeroAddress
error ZeroAddress()
ZeroInput
error ZeroInput()
creation bytecode
0x60a08060405234610270576040816146f1803803809161001f8285610275565b8339810103126102705761003e6020610037836102ae565b92016102ae565b6001600160a01b0390911690811561025a57600180546001600160a01b0319908116909155600080549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36b1027e72f1f128130880000006008556c01431e0fae6d7217caa00000006009556b019d971e4fe8401e74000000600a557f0190001e001e001e00000000000007080000000000093a800000000000000384600b55600c80546001600160401b0319166501f40000012c1790556001600160a01b0381161561024957608052610cc3906101316020830182610275565b8181526020810191613a2e8339600254916000198314610233576001830160025560405160208101903060601b825284603482015260348152610175605482610275565b519020908251156102225791516001600160a01b03926000f5168015610211577fd55946290a6ff8ebb4aa2df8f1d355c32d034d04fb225b655d9da856c250fda8918160409260018060a01b0319600354161760035581600052600d602052826000208160018060a01b031982541617905582519182526020820152a160405161376b90816102c3823960805181818161038601526105a90152f35b633a0ba96160e11b60005260046000fd5b631328927760e21b60005260046000fd5b634e487b7160e01b600052601160045260246000fd5b63d92e233d60e01b60005260046000fd5b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b601f909101601f19168101906001600160401b0382119082101761029857604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036102705756fe608080604052600436101561001357600080fd5b600090813560e01c9081630dd87157146123a2575080631ad7b12714612360578063294a4411146122f65780632ace03ad146122995780632c162e54146122705780632d6e1408146122555780632f84cbf51461223a5780633a4b66f1146120fb578063403755f51461203f57806349984e0814611e955780634e71d92d14611d5c57806351778fa414611d335780635bc02c7514611d15578063633dd14514611cf1578063639097a114611ccb57806364d4db1014611cad578063664d4e9814611c8857806366666aa914611c6a57806371201a0e14611c40578063715018a614611bdb5780637319922814611b7557806375b1735014611b5757806379ba509714611ad25780637f7de58014611aab5780638166b31614611a45578063840d3e96146119e45780638da5cb5b146119bd57806399aa65a71461199f578063a2f7b3a51461196c578063a5f7f99d14611943578063ad44a2731461190d578063af1a3d04146118a7578063b1283c1c14611880578063c0794e7114611858578063cce987d41461183a578063d43b51b614611815578063d65a5623146117eb578063d936547e146117a9578063d96073cf146109d1578063d9ad02e11461097a578063daf8c5aa146108fb578063db4d085214610831578063df6c39fb146103b5578063dfac55c714610370578063e12ae00e1461034f578063e30c397814610326578063eb4af04514610303578063f1887684146102e5578063f2fde38b1461026e5763f3cdb3511461024757600080fd5b3461026b578060031936011261026b57602061ffff600b5460c01c16604051908152f35b80fd5b503461026b57602036600319011261026b576004356001600160a01b038116908190036102e15761029d612680565b600180546001600160a01b0319168217905581546001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b503461026b578060031936011261026b576020600954604051908152f35b503461026b57602036600319011261026b5761031d612680565b60043560095580f35b503461026b578060031936011261026b576001546040516001600160a01b039091168152602090f35b503461026b578060031936011261026b576020600b5460f01c604051908152f35b503461026b578060031936011261026b576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461026b576103c4366123be565b90333b15801590610827575b61081957338352600e60205260ff60408420541615610819576103f16125a0565b9290421061080a5782156107fb574260075561040f8360045461241a565b60045561042f612710610427600b5460f01c866126a9565b04809461241a565b90604051636eb1769f60e11b8152306004820152737a250d5630b4cf539739df2c5dacb4c659f2488d602482015260208160448173e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f5afa80156107f057839087906107b5575b610493925061243d565b858060405192602084019063095ea7b360e01b8252737a250d5630b4cf539739df2c5dacb4c659f2488d60248601526044850152604484526104d66064856123d4565b8351908273e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f5af16104f961284c565b8161077a575b508061075c575b156106f6575b509184916040519361051f6060866123d4565b600285526020850191604036843773e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f61054b8761272e565b5273e9a53c43a0b58706e67341c4055de861e29ee94361056a87612751565b526040519586946338ed173960e01b865260a48601926004870152602486015260a060448601525180915260c484019290855b8181106106d1575050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316606484015260848301528190038183737a250d5630b4cf539739df2c5dacb4c659f2488d5af180156106c657610634575b5061060d90336126dc565b7f5da5f5ab15b3f7ce29e57210ae89068218f2196e9df956cf8b0586b0d65205528180a180f35b3d8084833e61064381836123d4565b8101906020818303126106c2578051906001600160401b0382116106be570181601f820112156106c25780519060208061067c84612717565b61068960405191826123d4565b848152019260051b8201019283116106be57602001905b8282106106ae575050610602565b81518152602091820191016106a0565b8480fd5b8380fd5b6040513d85823e3d90fd5b82516001600160a01b031685528996508795506020948501949092019160010161059d565b6107569061073c60405163095ea7b360e01b6020820152737a250d5630b4cf539739df2c5dacb4c659f2488d60248201528860448201526044815261073c6064826123d4565b73e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f612761565b3861050c565b5073e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f3b1515610506565b805180159250821561078f575b5050386104ff565b81925090602091810103126107b15760206107aa9101612593565b3880610787565b8680fd5b50506020813d6020116107e8575b816107d0602093836123d4565b810103126107e357826104939151610489565b600080fd5b3d91506107c3565b6040513d88823e3d90fd5b631e9acf1760e31b8452600484fd5b63b0782df760e01b8452600484fd5b6282b42960e81b8352600483fd5b50323314156103d0565b503461026b578060031936011261026b578081600254905b81841061085b57602083604051908152f35b9091838252600d60205260018060a01b0360408320541660405190636896482760e01b8252600482015260208160248173e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f5afa9081156106c65783916108c7575b506108bd9060019261243d565b9301929190610849565b905060203d81116108f4575b6108dd81836123d4565b6020826000928101031261026b57505160016108b0565b503d6108d3565b503461026b57602036600319011261026b5760043563ffffffff811680820361097657610926612680565b801561096757612710106109585767ffffffff00000000600c549160201b169067ffffffff00000000191617600c5580f35b632b0039c760e21b8252600482fd5b63af458c0760e01b8352600483fd5b8280fd5b503461026b57602036600319011261026b576004356001600160401b0381168091036102e1576109a8612680565b80156109c2576001600160401b0319600b541617600b5580f35b63af458c0760e01b8252600482fd5b503461026b576109e0366123be565b90333b1580159061179f575b610819576109f86124f4565b90421061080a5780156107fb57610a7f9042600555612710610a2361ffff600b5460c01c16836126a9565b60405163a9059cbb60e01b6020820152336024820152919004604482018190529190610a7a90610a6081606481015b03601f1981018352826123d4565b73f19308f923582a6f7c465e5ce7a9dc1bec6665b1612761565b61241a565b600c54604051633850c7bd60e01b815292919063ffffffff811660e0856004817314d725edb1299ff560d96f42462f0234b65b00af5afa80156117945787958891611704575b5061ffff169485156116da5761ffff600191160161ffff81116114405761ffff600096816040519363252c09d760e01b855216061660048201526080816024817314d725edb1299ff560d96f42462f0234b65b00af5afa9081156115d757889089926116b5575b509015611636575b63ffffffff1663ffffffff42160363ffffffff81116114405790818163ffffffff8094161061162e575b501680156116045760405190610b756060836123d4565b600282526020820191604036843781610b8d8261272e565b5288610b9882612751565b5288604051809463883bdbfd60e01b825260248201936020600484015251809452604482019093835b8181106115e25750508192935003817314d725edb1299ff560d96f42462f0234b65b00af5afa9182156115d757889089936114b5575b50610c0e610c0482612751565b5160060b9161272e565b5160060b900391667fffffffffffff198312667fffffffffffff84131761146a576001600160a01b03610c4082612751565b5116906001600160a01b0390610c559061272e565b51169003906001600160a01b03821161146a578060060b9260060b83156114a157667fffffffffffff19811460001985141661148d5783810560020b938a8212918261147e575b5050611454575b6001600160a01b038181026001600160c01b03169190910490036114405760201b640100000000600160c01b0316156111f75760020b8681121561143a57808703905b620d89e8821161142b5787906001831615611419576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b1692600281166113fd575b600481166113e1575b600881166113c5575b601081166113a9575b6020811661138d575b60408116611371575b60808116611355575b6101008116611339575b610200811661131d575b6104008116611301575b61080081166112e5575b61100081166112c9575b61200081166112ad575b6140008116611291575b6180008116611275575b620100008116611259575b62020000811661123e575b620400008116611223575b620800001661120b575b136111e8575b63ffffffff908082166111e05787905b60201c60ff91909116016001600160a01b03166fffffffffffffffffffffffffffffffff8481169082116111c757610e2282610e28936126a9565b9061298c565b915b60201c166127100363ffffffff81116111b3576127109163ffffffff610e519216906126a9565b0482106111a4576040519361010085018581106001600160401b038211176111905760405273f19308f923582a6f7c465e5ce7a9dc1bec6665b185526020850173e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f81526040860190612710825260608701913083526080880193845260a088019480865260c0890196875260e08901978a8952604051636eb1769f60e11b815230600482015273e592427a0aece92de3edee1f18e0157c05861564602482015260208160448173f19308f923582a6f7c465e5ce7a9dc1bec6665b15afa918215611185578c9261114e575b505090610f3c9161243d565b91898060405194602086019063095ea7b360e01b825273e592427a0aece92de3edee1f18e0157c058615646024880152604487015260448652610f806064876123d4565b8551908273f19308f923582a6f7c465e5ce7a9dc1bec6665b15af192610fa461284c565b938061110d575b62ffffff9450806110ef575b156110a3575b5060405163414bf38960e01b815298516001600160a01b0390811660048b01529051811660248a0152905191909116604488015290518116606487015290516084860152905160a4850152905160c484015290511660e4820152602081610104818573e592427a0aece92de3edee1f18e0157c058615645af1801561109857611069575b507f3ebfdaaf4031bec9a2b7b0a1c594d2d03f3d0b8d68531c9164c2829bac00fefa8180a180f35b61108a9060203d602011611091575b61108281836123d4565b81019061240b565b5038611041565b503d611078565b6040513d84823e3d90fd5b6110e990610a6060405163095ea7b360e01b602082015273e592427a0aece92de3edee1f18e0157c0586156460248201528d604482015260448152610a606064826123d4565b38610fbd565b5073f19308f923582a6f7c465e5ce7a9dc1bec6665b13b1515610fb7565b5083518015908115611126575b5062ffffff9450610fab565b6020915085908101031261114a57611144602062ffffff9501612593565b3861111a565b8a80fd5b9091506020823d60201161117d575b8161116a602093836123d4565b8101031261026b575051610f3c38610f30565b3d915061115d565b6040513d8e823e3d90fd5b634e487b7160e01b87526041600452602487fd5b63431653f160e11b8552600485fd5b634e487b7160e01b87526011600452602487fd5b6111d4826111da9361288b565b906128ea565b91610e2a565b600190610de7565b80156111f75760001904610dd7565b634e487b7160e01b87526012600452602487fd5b916b048a170391f7dc42444e8fa20260801c91610dd1565b6d2216e584f5fa1ea926041bedfe9890930260801c92610dc7565b926e5d6af8dedb81196699c329225ee6040260801c92610dbc565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c92610db1565b926f31be135f97d08fd981231505542fcfa60260801c92610da6565b926f70d869a156d2a1b890bb3df62baf32f70260801c92610d9c565b926fa9f746462d870fdf8a65dc1f90e061e50260801c92610d92565b926fd097f3bdfd2022b8845ad8f792aa58250260801c92610d88565b926fe7159475a2c29b7443b29c7fa6e889d90260801c92610d7e565b926ff3392b0822b70005940c7a398e4b70f30260801c92610d74565b926ff987a7253ac413176f2b074cf7815e540260801c92610d6a565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c92610d60565b926ffe5dee046a99a2a811c461f1969c30530260801c92610d56565b926fff2ea16466c96a3843ec78b326b528610260801c92610d4d565b926fff973b41fa98c081472e6896dfb254c00260801c92610d44565b926fffcb9843d60f6159c9db58835c9266440260801c92610d3b565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c92610d32565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c92610d29565b926ffff97272373d413259a46990580e213a0260801c92610d20565b6001600160881b03600160801b610d15565b6315e4079d60e11b8852600488fd5b80610ce6565b634e487b7160e01b88526011600452602488fd5b91627fffff19811461146a576000190191610ca3565b634e487b7160e01b89526011600452602489fd5b0760060b151590503880610c9c565b634e487b7160e01b8a52601160045260248afd5b634e487b7160e01b8a52601260045260248afd5b9250503d8089843e6114c781846123d4565b8201916040818403126115d35780516001600160401b0381116115b35781019083601f830112156115b3578151916114fe83612717565b9261150c60405194856123d4565b80845260208085019160051b830101918683116115cf57602001905b8282106115b7575050506020810151906001600160401b03821161114a57019280601f850112156115b357835161155e81612717565b9461156c60405196876123d4565b81865260208087019260051b8201019283116115af57602001905b8282106115975750505038610bf7565b602080916115a4846127d7565b815201910190611587565b8b80fd5b8980fd5b602080916115c4846127fa565b815201910190611528565b8c80fd5b8880fd5b6040513d8a823e3d90fd5b855163ffffffff1683526020958601958e955088945090920191600101610bc1565b60405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606490fd5b905038610b5e565b5060405163252c09d760e01b8152600481018890526080816024817314d725edb1299ff560d96f42462f0234b65b00af5afa80156115d75763ffffffff918991611683575b509050610b34565b6116a5915060803d6080116116ae575b61169d81836123d4565b810190612808565b5050503861167b565b503d611693565b90506116d0915060803d6080116116ae5761169d81836123d4565b9291505038610b2c565b60405162461bcd60e51b81526020600482015260026024820152614e4960f01b6044820152606490fd5b95505060e0853d60e01161178c575b8161172060e093836123d4565b810103126107b157611731856127d7565b5060208501518060020b036107b15761174c604086016127eb565b94611759606082016127eb565b95611766608083016127eb565b5060a082015160ff8116036115d35761178460c061ffff9301612593565b509590610ac5565b3d9150611713565b6040513d89823e3d90fd5b50323314156109ec565b503461026b57602036600319011261026b576004356001600160a01b038116908190036102e15760408260ff9260209452600e84522054166040519015158152f35b503461026b578060031936011261026b5760206001600160401b03600b5460401c16604051908152f35b503461026b578060031936011261026b57602061ffff600b5460d01c16604051908152f35b503461026b578060031936011261026b576020600854604051908152f35b503461026b578060031936011261026b5760206040516c01431e0fae6d7217caa00000008152f35b503461026b578060031936011261026b5760206001600160401b03600b5416604051908152f35b503461026b57602036600319011261026b5760043561ffff8116808203610976576118d0612680565b8015908115611901575b5061095857600b805461ffff60d01b191660d09290921b61ffff60d01b1691909117905580f35b6103e8915011386118da565b503461026b578060031936011261026b576119266125d3565b604080516001600160a01b03939093168352602083019190915290f35b503461026b57602036600319011261026b57600435611960612680565b80156109c25760085580f35b503461026b57602036600319011261026b576020906004358152600d8252604060018060a01b0391205416604051908152f35b503461026b578060031936011261026b576020600254604051908152f35b503461026b578060031936011261026b57546040516001600160a01b039091168152602090f35b503461026b57602036600319011261026b576004356001600160401b03811680820361097657611a12612680565b156109c257600b805467ffffffffffffffff60801b191660809290921b67ffffffffffffffff60801b1691909117905580f35b503461026b57602036600319011261026b5760043561ffff811680820361097657611a6e612680565b8015908115611a9f575b5061095857600b805461ffff60e01b191660e09290921b61ffff60e01b1691909117905580f35b6103e891501138611a78565b503461026b578060031936011261026b576040611ac66125a0565b82519182526020820152f35b503461026b578060031936011261026b57600154336001600160a01b0390911603611b4457600180546001600160a01b0319908116909155815433918116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b63118cdaa760e01b815233600452602490fd5b503461026b578060031936011261026b576020600754604051908152f35b503461026b57602036600319011261026b5760043561ffff811680820361097657611b9e612680565b8015908115611bcf575b5061095857600b805461ffff60c01b191660c09290921b61ffff60c01b1691909117905580f35b6103e891501138611ba8565b503461026b578060031936011261026b57611bf4612680565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461026b578060031936011261026b5760206001600160401b03600b5460801c16604051908152f35b503461026b578060031936011261026b576020600454604051908152f35b503461026b578060031936011261026b57602061ffff600b5460e01c16604051908152f35b503461026b578060031936011261026b576020600654604051908152f35b503461026b578060031936011261026b57602063ffffffff600c54821c16604051908152f35b503461026b578060031936011261026b57602063ffffffff600c5416604051908152f35b503461026b578060031936011261026b576020600a54604051908152f35b503461026b578060031936011261026b576003546040516001600160a01b039091168152602090f35b503461026b578060031936011261026b57333b15801590611e8b575b611e7d5780805b600254831015611e0d57828252600d60205281602060018060a01b03604083205416600460405180948193634e71d92d60e01b83525af19081156106c6578391611dd9575b50611dd19060019261243d565b920191611d7f565b905060203d8111611e06575b611def81836123d4565b6020826000928101031261026b5750516001611dc4565b503d611de5565b8015611e6e57611e3c611e4491612710611e3061ffff600b5460e01c16836126a9565b0490610a7a82336126dc565b60045461243d565b6004557f3158952e7c791deb52750003dbcb0fb942106f2bcd1005fb946a83cd6646fdc48180a180f35b6312d37ee560e31b8252600482fd5b6282b42960e81b8152600490fd5b5032331415611d78565b503461026b578060031936011261026b5760035460405163e18f2c9160e01b815290602090829060049082906001600160a01b03165afa908115611098578291612005575b5015611ff657610cc3604051611ef360208301826123d4565b8181526020810191612a738339600254916000198314611fe2576001830160025560405160208101903060601b825284603482015260348152611f376054826123d4565b51902090825115611fd35791516001600160a01b039285f5168015611fc4577fd55946290a6ff8ebb4aa2df8f1d355c32d034d04fb225b655d9da856c250fda891816040926bffffffffffffffffffffffff60a01b6003541617600355818552600d602052828520816bffffffffffffffffffffffff60a01b82541617905582519182526020820152a180f35b633a0ba96160e11b8352600483fd5b631328927760e21b8552600485fd5b634e487b7160e01b84526011600452602484fd5b632b0039c760e21b8152600490fd5b90506020813d602011612037575b81612020602093836123d4565b810103126102e15761203190612593565b38611eda565b3d9150612013565b503461026b57604036600319011261026b576004356001600160401b0381116102e157366023820112156102e15780600401356001600160401b038111610976573660248260051b8401011161097657602435918215158093036106c2576120a8929192612680565b60ff849216915b838110156120f7576024600582901b830101356001600160a01b03811691908290036120f357908552600e60205260408520805460ff1916841790556001016120af565b8580fd5b8480f35b503461026b578060031936011261026b57333b15801590612230575b611e7d5761212361244a565b906c01431e0fae6d7217caa000000082106121fd575b5061217e904260065561217861271061215b61ffff600b5460d01c16846126a9565b0461216681336126dc565b6003546001600160a01b03169261241a565b906126dc565b60035481906001600160a01b0316803b156121fa57818091600460405180958193633a4b66f160e01b83525af180156121ed576121dd575b7fde20bc92f9195457f9ba0ec9258c42c0814617c756a597287307a20494e839928180a180f35b6121e6916123d4565b38816121b6565b50604051903d90823e3d90fd5b50fd5b42106122215760095481106122125738612139565b631e9acf1760e31b8252600482fd5b63b0782df760e01b8252600482fd5b5032331415612117565b503461026b578060031936011261026b576040611ac66124f4565b503461026b578060031936011261026b576040611ac661244a565b503461026b57602036600319011261026b5760043561228d612680565b80156109c257600a5580f35b503461026b57602036600319011261026b576004356001600160401b038116808203610976576122c7612680565b156109c25767ffffffffffffffff60401b600b549160401b169067ffffffffffffffff60401b191617600b5580f35b503461026b57602036600319011261026b5760043561ffff81168082036109765761231f612680565b8015908115612354575b5061095857600b80546001600160f01b031660f09290921b6001600160f01b03191691909117905580f35b6103e891501138612329565b503461026b57602036600319011261026b5760043563ffffffff81168091036102e15761238b612680565b80156109c25763ffffffff19600c541617600c5580f35b9050346102e157816003193601126102e1576020906005548152f35b60409060031901126107e3576004359060243590565b90601f801991011681019081106001600160401b038211176123f557604052565b634e487b7160e01b600052604160045260246000fd5b908160209103126107e3575190565b9190820391821161242757565b634e487b7160e01b600052601160045260246000fd5b9190820180921161242757565b6040516370a0823160e01b815230600482015260208160248173e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2f5afa80156124e8576000906124b4575b61249691506004549061241a565b6124b16006546001600160401b03600b5460401c169061243d565b91565b506020813d6020116124e0575b816124ce602093836123d4565b810103126107e3576124969051612488565b3d91506124c1565b6040513d6000823e3d90fd5b6040516370a0823160e01b815230600482015260208160248173f19308f923582a6f7c465e5ce7a9dc1bec6665b15afa9081156124e857600091612561575b50600854908181111561255a57505b6124b16005546001600160401b03600b54169061243d565b9050612542565b906020823d60201161258b575b8161257b602093836123d4565b8101031261026b57505138612533565b3d915061256e565b519081151582036107e357565b600454600a5490818111156125cc57505b6124b16007546001600160401b03600b5460801c169061243d565b90506125b1565b60025460005b8181106125ea575050600090600090565b80600052600d60205260018060a01b03604060002054166040519063072553c560e01b8252604082600481845afa9182156124e8576000908193612640575b506126385750506001016125d9565b939092509050565b92506040833d8211612678575b8161265a604093836123d4565b8101031261026b5750602061266e83612593565b9201519138612629565b3d915061264d565b6000546001600160a01b0316330361269457565b63118cdaa760e01b6000523360045260246000fd5b8181029291811591840414171561242757565b81156126c6570490565b634e487b7160e01b600052601260045260246000fd5b60405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091526127159061073c8160648101610a52565b565b6001600160401b0381116123f55760051b60200190565b80511561273b5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561273b5760400190565b60008061278a9260018060a01b03169360208151910182865af161278361284c565b9083612a11565b80519081151591826127b4575b50506127a05750565b635274afe760e01b60005260045260246000fd5b81925090602091810103126107e35760206127cf9101612593565b153880612797565b51906001600160a01b03821682036107e357565b519061ffff821682036107e357565b51908160060b82036107e357565b91908260809103126107e357815163ffffffff811681036107e35791612830602082016127fa565b916128496060612842604085016127d7565b9301612593565b90565b3d15612886573d906001600160401b0382116123f5576040519161287a601f8201601f1916602001846123d4565b82523d6000602084013e565b606090565b81810291600091600019828209928480851094039380850394146128df5783600160401b11156128d0575090600160401b910990828211900360c01b910360401c1790565b63227bc15360e01b8152600490fd5b925050505060401c90565b90608082901b9060001983600160801b0992828085109403938085039414612980578382111561296f578190600160801b09816000038216809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b63227bc15360e01b60005260046000fd5b509061284992506126bc565b9060c082901b9060001983600160c01b0992828085109403938085039414612980578382111561296f578190600160c01b09816000038216809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b90612a375750805115612a2657805190602001fd5b630a12f52160e11b60005260046000fd5b81511580612a69575b612a48575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15612a4056fe608080604052346075573315605f5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3610c48908161007b8239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c8063072553c51461072b5780633a4b66f11461060d5780634e71d92d14610484578063715018a61461042a5780638da5cb5b1461040357806391cecb0e146103a5578063af83a81c1461015b578063bf9befb11461013d578063e18f2c911461011b5763f2fde38b1461008b57600080fd5b34610118576020366003190112610118576004356001600160a01b03811690819003610114576100b9610a5b565b80156101005781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b80fd5b503461011857806003193601126101185760206103e860015414604051908152f35b50346101185780600319360112610118576020600154604051908152f35b5034610118576020366003190112610118576004358015801561039a575b61038b57600080516020610bf38339815191523b1561011457604051632277d1bd60e01b81528290818160048183600080516020610bf38339815191525af1801561031157610376575b505060405162572fd560e11b81523060048201526024810182905260c081604481600080516020610bf38339815191525afa9081156102f157839161032e575b506080015165ffffffffffff1642111561031f578190600080516020610bf38339815191523b1561031c576040519063065f146b60e11b82526004820152818160248183600080516020610bf38339815191525af18015610311576102fc575b505080546040516370a0823160e01b8152306004820152906001600160a01b0316602082602481600080516020610bf38339815191525afa9081156102f15783916102b6575b6102b39250610a84565b80f35b90506020823d6020116102e9575b816102d160209383610754565b810103126102e4576102b39151906102a9565b600080fd5b3d91506102c4565b6040513d85823e3d90fd5b8161030691610754565b610118578038610263565b6040513d84823e3d90fd5b50fd5b632968c44760e21b8252600482fd5b905060c03d60c01161036f575b6103458183610754565b810160c08282031261036b5761036460809165ffffffffffff936107bf565b9150610203565b8380fd5b503d61033b565b8161038091610754565b6101145781386101c3565b637351f92960e11b8252600482fd5b506001548111610179565b503461011857806003193601126101185780546040516370a0823160e01b8152306004820152906001600160a01b0316602082602481600080516020610bf38339815191525afa9081156102f15783916102b6576102b39250610a84565b5034610118578060031936011261011857546040516001600160a01b039091168152602090f35b5034610118578060031936011261011857610443610a5b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461011857806003193601126101185761049d610a5b565b604051636896482760e01b8152306004820152602081602481600080516020610bf38339815191525afa9081156103115782916105db575b50806104e7575b602090604051908152f35b600080516020610bf38339815191523b1561011457604051630bc508f160e11b81528290818160048183600080516020610bf38339815191525af18015610311576105c6575b505081546040516370a0823160e01b81523060048201526001600160a01b039091169290602081602481600080516020610bf38339815191525afa9182156105ba5791610587575b5061058290602093610a84565b6104dc565b90506020813d6020116105b2575b816105a260209383610754565b810103126102e457516020610575565b3d9150610595565b604051903d90823e3d90fd5b816105d091610754565b61011457813861052d565b90506020813d602011610605575b816105f660209383610754565b810103126102e45751386104d5565b3d91506105e9565b5034610118578060031936011261011857610626610a5b565b6040516370a0823160e01b8152306004820152602081602481600080516020610bf38339815191525afa9081156103115782916106f9575b50600080516020610bf38339815191523b156101145760405190630945fe5760e11b82526004820152610dac602482015281808260448183600080516020610bf38339815191525af180156106ec576106dc575b5050600154600181018091116106c85760015580f35b634e487b7160e01b82526011600452602482fd5b6106e591610754565b38816106b2565b50604051903d90823e3d90fd5b90506020813d602011610723575b8161071460209383610754565b8101031261011457513861065e565b3d9150610707565b5034610118578060031936011261011857604061074661087d565b825191151582526020820152f35b90601f8019910116810190811067ffffffffffffffff82111761077657604052565b634e487b7160e01b600052604160045260246000fd5b519072ffffffffffffffffffffffffffffffffffffff821682036102e457565b519065ffffffffffff821682036102e457565b91908260c09103126102e45760405160c0810181811067ffffffffffffffff8211176107765760405280926107f38161078c565b82526108016020820161078c565b602083015260408101519061ffff821682036102e45760a091604084015261082b606082016107ac565b606084015261083c608082016107ac565b608084015201519060038210156102e45760a00152565b80518210156108675760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405163842e298160e01b8152306004820152600081602481600080516020610bf38339815191525afa908115610a4f5760009161093b575b5060005b81518110156109315760406108cf8284610853565b51015165ffffffffffff60808201511642119081610905575b506108f5576001016108ba565b6108fe91610853565b5151600191565b60a091500151600381101561091b5715386108e8565b634e487b7160e01b600052602160045260246000fd5b5050600090600090565b903d8082843e61094b8184610754565b8201916020818403126101145780519067ffffffffffffffff8211610a37570182601f820112156101145780519167ffffffffffffffff8311610a3b576040519361099c60208560051b0186610754565b83855260208086019460081b84010192818411610a3757602001935b8385106109ca575050505050386108b6565b61010085830312610a37576040516060810181811067ffffffffffffffff821117610a23579160209161010093604052875181528288015183820152610a138560408a016107bf565b60408201528152019401936109b8565b634e487b7160e01b85526041600452602485fd5b8280fd5b634e487b7160e01b81526041600452602490fd5b6040513d6000823e3d90fd5b6000546001600160a01b03163303610a6f57565b63118cdaa760e01b6000523360045260246000fd5b60405163a9059cbb60e01b602082019081526001600160a01b03929092166024820152604480820193909352918252600091829190610ac4606482610754565b519082600080516020610bf38339815191525af13d15610b85573d67ffffffffffffffff811161077657610b299160405191610b0a6020601f19601f8401160184610754565b82523d6000602084013e5b600080516020610bf3833981519152610b91565b8051908115159182610b61575b5050610b3e57565b635274afe760e01b600052600080516020610bf383398151915260045260246000fd5b81925090602091810103126102e457602001518015908115036102e4573880610b36565b610b2990606090610b15565b90610bb75750805115610ba657805190602001fd5b630a12f52160e11b60005260046000fd5b81511580610be9575b610bc8575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15610bc056fe000000000000000000000000e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2fa26469706673582212204c39f823131f6e20bd2a9f40458249072b26e3f78bfc858876182afc14cdbfa864736f6c634300081a0033a264697066735822122047ddcc996839a2e1c1e4045a297304194c3a79c388aa792ea31152b4196a4a0f64736f6c634300081a0033608080604052346075573315605f5760008054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3610c48908161007b8239f35b631e4fbdf760e01b600052600060045260246000fd5b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c8063072553c51461072b5780633a4b66f11461060d5780634e71d92d14610484578063715018a61461042a5780638da5cb5b1461040357806391cecb0e146103a5578063af83a81c1461015b578063bf9befb11461013d578063e18f2c911461011b5763f2fde38b1461008b57600080fd5b34610118576020366003190112610118576004356001600160a01b03811690819003610114576100b9610a5b565b80156101005781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b5080fd5b80fd5b503461011857806003193601126101185760206103e860015414604051908152f35b50346101185780600319360112610118576020600154604051908152f35b5034610118576020366003190112610118576004358015801561039a575b61038b57600080516020610bf38339815191523b1561011457604051632277d1bd60e01b81528290818160048183600080516020610bf38339815191525af1801561031157610376575b505060405162572fd560e11b81523060048201526024810182905260c081604481600080516020610bf38339815191525afa9081156102f157839161032e575b506080015165ffffffffffff1642111561031f578190600080516020610bf38339815191523b1561031c576040519063065f146b60e11b82526004820152818160248183600080516020610bf38339815191525af18015610311576102fc575b505080546040516370a0823160e01b8152306004820152906001600160a01b0316602082602481600080516020610bf38339815191525afa9081156102f15783916102b6575b6102b39250610a84565b80f35b90506020823d6020116102e9575b816102d160209383610754565b810103126102e4576102b39151906102a9565b600080fd5b3d91506102c4565b6040513d85823e3d90fd5b8161030691610754565b610118578038610263565b6040513d84823e3d90fd5b50fd5b632968c44760e21b8252600482fd5b905060c03d60c01161036f575b6103458183610754565b810160c08282031261036b5761036460809165ffffffffffff936107bf565b9150610203565b8380fd5b503d61033b565b8161038091610754565b6101145781386101c3565b637351f92960e11b8252600482fd5b506001548111610179565b503461011857806003193601126101185780546040516370a0823160e01b8152306004820152906001600160a01b0316602082602481600080516020610bf38339815191525afa9081156102f15783916102b6576102b39250610a84565b5034610118578060031936011261011857546040516001600160a01b039091168152602090f35b5034610118578060031936011261011857610443610a5b565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461011857806003193601126101185761049d610a5b565b604051636896482760e01b8152306004820152602081602481600080516020610bf38339815191525afa9081156103115782916105db575b50806104e7575b602090604051908152f35b600080516020610bf38339815191523b1561011457604051630bc508f160e11b81528290818160048183600080516020610bf38339815191525af18015610311576105c6575b505081546040516370a0823160e01b81523060048201526001600160a01b039091169290602081602481600080516020610bf38339815191525afa9182156105ba5791610587575b5061058290602093610a84565b6104dc565b90506020813d6020116105b2575b816105a260209383610754565b810103126102e457516020610575565b3d9150610595565b604051903d90823e3d90fd5b816105d091610754565b61011457813861052d565b90506020813d602011610605575b816105f660209383610754565b810103126102e45751386104d5565b3d91506105e9565b5034610118578060031936011261011857610626610a5b565b6040516370a0823160e01b8152306004820152602081602481600080516020610bf38339815191525afa9081156103115782916106f9575b50600080516020610bf38339815191523b156101145760405190630945fe5760e11b82526004820152610dac602482015281808260448183600080516020610bf38339815191525af180156106ec576106dc575b5050600154600181018091116106c85760015580f35b634e487b7160e01b82526011600452602482fd5b6106e591610754565b38816106b2565b50604051903d90823e3d90fd5b90506020813d602011610723575b8161071460209383610754565b8101031261011457513861065e565b3d9150610707565b5034610118578060031936011261011857604061074661087d565b825191151582526020820152f35b90601f8019910116810190811067ffffffffffffffff82111761077657604052565b634e487b7160e01b600052604160045260246000fd5b519072ffffffffffffffffffffffffffffffffffffff821682036102e457565b519065ffffffffffff821682036102e457565b91908260c09103126102e45760405160c0810181811067ffffffffffffffff8211176107765760405280926107f38161078c565b82526108016020820161078c565b602083015260408101519061ffff821682036102e45760a091604084015261082b606082016107ac565b606084015261083c608082016107ac565b608084015201519060038210156102e45760a00152565b80518210156108675760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60405163842e298160e01b8152306004820152600081602481600080516020610bf38339815191525afa908115610a4f5760009161093b575b5060005b81518110156109315760406108cf8284610853565b51015165ffffffffffff60808201511642119081610905575b506108f5576001016108ba565b6108fe91610853565b5151600191565b60a091500151600381101561091b5715386108e8565b634e487b7160e01b600052602160045260246000fd5b5050600090600090565b903d8082843e61094b8184610754565b8201916020818403126101145780519067ffffffffffffffff8211610a37570182601f820112156101145780519167ffffffffffffffff8311610a3b576040519361099c60208560051b0186610754565b83855260208086019460081b84010192818411610a3757602001935b8385106109ca575050505050386108b6565b61010085830312610a37576040516060810181811067ffffffffffffffff821117610a23579160209161010093604052875181528288015183820152610a138560408a016107bf565b60408201528152019401936109b8565b634e487b7160e01b85526041600452602485fd5b8280fd5b634e487b7160e01b81526041600452602490fd5b6040513d6000823e3d90fd5b6000546001600160a01b03163303610a6f57565b63118cdaa760e01b6000523360045260246000fd5b60405163a9059cbb60e01b602082019081526001600160a01b03929092166024820152604480820193909352918252600091829190610ac4606482610754565b519082600080516020610bf38339815191525af13d15610b85573d67ffffffffffffffff811161077657610b299160405191610b0a6020601f19601f8401160184610754565b82523d6000602084013e5b600080516020610bf3833981519152610b91565b8051908115159182610b61575b5050610b3e57565b635274afe760e01b600052600080516020610bf383398151915260045260246000fd5b81925090602091810103126102e457602001518015908115036102e4573880610b36565b610b2990606090610b15565b90610bb75750805115610ba657805190602001fd5b630a12f52160e11b60005260046000fd5b81511580610be9575b610bc8575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15610bc056fe000000000000000000000000e2cfd7a01ec63875cd9da6c7c1b7025166c2fa2fa26469706673582212204c39f823131f6e20bd2a9f40458249072b26e3f78bfc858876182afc14cdbfa864736f6c634300081a0033000000000000000000000000eb430c15ff72fec66f382e6905e2dcb88a805c510000000000000000000000001698a3e248ff7f0f1f91fe82eedaa3f1212d1f7f