1.7k txs
2.2k calls
constructor
constructor(address _registrationContract, address _owner, address _ERC20Token)
functions
authorizedContracts
viewfunction authorizedContracts(address) view returns (bool)
checkFifthJoiner
viewfunction checkFifthJoiner(address user, uint8 slotId) view returns (bool)
deployer
viewfunction deployer() view returns (address)
findLatestClaimedIteration
viewfunction findLatestClaimedIteration(address user, uint256[] totalIntervals) view returns (bool, uint256)
getAllUsers
viewfunction getAllUsers(uint8 slotId) view returns (address[])
getPercentage
purefunction getPercentage(uint256 totalAmount, uint8 requirePercentage) pure returns (uint256)
getSlotSubsciber
viewfunction getSlotSubsciber(uint8 slotID) view returns (uint256)
getSlotUsers
viewfunction getSlotUsers(uint8 slotId, uint256 startIndex, uint256 count) view returns (address[] users, uint256 total)
getSlotUsersCount
viewfunction getSlotUsersCount() view returns (uint256[])
getTotalIntervalIncome
viewfunction getTotalIntervalIncome(address user) view returns (uint256)
getUserCanClaimedSlots
viewfunction getUserCanClaimedSlots(address user, uint256 intervaldisTime) view returns (uint8[], uint8 totalSlots)
getUserCanClaimIncome
viewfunction getUserCanClaimIncome(address user) view returns (uint256)
getUserClaimedIntervalIncome
viewfunction getUserClaimedIntervalIncome(address user) view returns (uint256)
getUserCountDirectSlotTeam
viewfunction getUserCountDirectSlotTeam(address user, uint8 slotId) view returns (uint256)
getUserIndirectSlotTeam
viewfunction getUserIndirectSlotTeam(address user, uint8 slotId) view returns (uint256)
getUserSlotData
viewfunction getUserSlotData(address user, uint8 slotId) view returns (uint256 totalSlotUser, uint256 directSlotTeam, uint256 indirectSlotTeam)
intervalIncomeContract
viewfunction intervalIncomeContract() view returns (address)
isSlotUser
viewfunction isSlotUser(uint8, address) view returns (bool)
owner
viewfunction owner() view returns (address)
PaymentToken
viewfunction PaymentToken() view returns (address)
registrationContract
viewfunction registrationContract() view returns (address)
slotsContract
viewfunction slotsContract() view returns (address)
slotSubsciptionTime
viewfunction slotSubsciptionTime() view returns (uint256)
slotUserCount
viewfunction slotUserCount(uint8) view returns (uint256)
slotUsers
viewfunction slotUsers(uint8, uint256) view returns (address)
TOTAL_SLOTS
viewfunction TOTAL_SLOTS() view returns (uint8)
usersIntervalIncome
viewfunction usersIntervalIncome(address) view returns (uint256 totalClaimedIntervalIncome, uint256 claimedIteration, uint256 lastClaimedTime)
executeDistribution
nonpayablefunction executeDistribution(address user, uint8 slotId, uint256 amount)
executeSlotDitributions
nonpayablefunction executeSlotDitributions(address user, uint8 slotId)
executeSlotsDistributions
nonpayablefunction executeSlotsDistributions(tuple[] subscriptions)
IntervalClaimIncome
nonpayablefunction IntervalClaimIncome()
setContractAuthorization
nonpayablefunction setContractAuthorization(address contractAddress, bool status)
setIntervalIncomeContract
nonpayablefunction setIntervalIncomeContract(address _intervalIncomeContract)
setSlotContract
nonpayablefunction setSlotContract(address _slotsContract)
setSlotSubsciptionTime
nonpayablefunction setSlotSubsciptionTime(uint256 _slotSubsciptionTime)
updateDeployer
nonpayablefunction updateDeployer(address newDeployer)
updateOwner
nonpayablefunction updateOwner(address newOwner)
updatePaymentToken
nonpayablefunction updatePaymentToken(address newPaymentToken)
updateRegistrationContract
nonpayablefunction updateRegistrationContract(address newRegistrationContract)
updateUserIntervalIncomeSLotStats
nonpayablefunction updateUserIntervalIncomeSLotStats(address user, uint8 slotId, uint256 timeStamp)
updateUserIntervalIncomeStats
nonpayablefunction updateUserIntervalIncomeStats(address user, uint256 totalClaimedIntervalIncome, uint256 claimedIteration, uint256 lastClaimedTime)
events
UpdateUserFinancialStats
event UpdateUserFinancialStats(address indexed userAddress, string paymentType, (address user, uint256 amount, string paymentName)[] incomeTypes, uint256 timestamp, uint256 slotAmount)
errors
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x6080346200017557601f62003b6e38819003918201601f19168301916001600160401b038311848410176200017a5780849260609460405283398101031262000175576200004d8162000190565b620000696040620000616020850162000190565b930162000190565b60016000556008805460ff1916600c1790556001600160a01b039182169283156200011b5782168015620000d65760018060a01b03199384600554161760055583600254161760025533836001541617600155169060045416176004556040516139c89081620001a68239f35b60405162461bcd60e51b815260206004820152601c60248201527f4f776e65722063616e6e6f74206265207a65726f2061646472657373000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602c60248201527f526567697374726174696f6e20636f6e74726163742063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001755756fe6080604052600436101561001257600080fd5b6000803560e01c8063040dfb1a1461226d5780630f1252381461222257806314a249521461219f578063157ba90d146120bc57806317e48df0146120165780631918adf814611fb75780631e522c3e14611f8e5780631e79febb146114435780631e9c8c1c1461141a5780633002ddee146113cf57806333e9a414146113755780633ec642fc1461131b578063475aa948146112f25780634ccf1b34146112375780634d413e7d14611184578063579d8369146111605780635f8bdfa414610db8578063621d02c814610d74578063640358c714610d4b5780636954235814610ad85780637425c56c1461095d578063880cdc311461086857806389555752146108315780638da5cb5b14610808578063a3001ec714610745578063a58fc23b14610724578063b3d26aab146106f7578063c8cf48cd146106d9578063cbd2193114610621578063d2b84484146105db578063d4eb7d90146105ba578063d5b9221b1461057b578063d5f3948814610552578063d9944e1e146104e6578063e26aa869146104ad578063e61cbcac146103bd578063f2bce73814610396578063f367aa1b14610361578063f60ccc86146102a0578063f97821ad146102145763fb044e4b146101e057600080fd5b3461021157602036600319011261021157604060209160ff6102006122f4565b168152600983522054604051908152f35b80fd5b50346102115760403660031901126102115761022e6122de565b9061028d610270604061023f612304565b9360ff851680151580610291575b61025690612c3c565b8152600960205220549261026a818661352f565b946136dc565b604051938493846040919493926060820195825260208201520152565b0390f35b5060085460ff1681111561024d565b5034610211576040366003190112610211576102ba6122de565b6024359081151580920361035d576001546001600160a01b039190821633148015610350575b6102e990612ab0565b16801561030b578252600a602052604082209060ff8019835416911617905580f35b60405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6e7472616374206164647265737300000000000000006044820152606490fd5b50600254821633146102e0565b8280fd5b503461021157604036600319011261021157602061038e6103806122de565b610388612304565b9061352f565b604051908152f35b503461021157604036600319011261021157602061038e6103b5612304565b600435612cc8565b5034610211576103cc366123d5565b90929160018060a01b03908160015416331480156104a0575b6103ee90612ab0565b1690818352602093600d855260ff6003604086200191169081855285528060ff6040862054160361045d57604051939460019361042a86612351565b8286528186019384528652600d8152600360408720019186525260ff6040852093511660ff198454161783555191015580f35b6064856040519062461bcd60e51b825280600483015260248201527f55736572206e6f74207375627363726962656420746f207468697320736c6f746044820152fd5b50600254821633146103e5565b5034610211576020366003190112610211576020906040906001600160a01b036104d56122de565b168152600d83522054604051908152f35b5034610211576080366003190112610211576105006122de565b6001546001600160a01b039190821633148015610545575b61052190612ab0565b168152600d6020526040812060243581556044356001820155600260643591015580f35b5060025482163314610518565b50346102115780600319360112610211576001546040516001600160a01b039091168152602090f35b50346102115760203660031901126102115760209060ff906040906001600160a01b036105a66122de565b168152600a84522054166040519015158152f35b503461021157602036600319011261021157604060209160ff6102006122f4565b50346102115760403660031901126102115760209060ff6105fa6122f4565b168152600c82526040812060243582528252604060018060a01b0391205416604051908152f35b50346102115760203660031901126102115761063b6122de565b6001546001600160a01b0391908216331480156106cc575b61065c90612ab0565b168015610679576001600160601b0360a01b600354161760035580f35b60405162461bcd60e51b815260206004820152602560248201527f536c6f747320636f6e74726163742063616e6e6f74206265207a65726f206164604482015264647265737360d81b6064820152608490fd5b5060025482163314610653565b50346102115780600319360112610211576020600754604051908152f35b503461021157604036600319011261021157602061038e6107166122de565b61071e612304565b906136dc565b5034610211578060031936011261021157602060ff60085416604051908152f35b50346102115760203660031901126102115761075f6122de565b6001546001600160a01b0391908216331480156107fb575b61078090612ab0565b16801561079d576001600160601b0360a01b600554161760055580f35b60405162461bcd60e51b815260206004820152603060248201527f4e657720726567697374726174696f6e20636f6e74726163742063616e6e6f7460448201526f206265207a65726f206164647265737360801b6064820152608490fd5b5060025482163314610777565b50346102115780600319360112610211576002546040516001600160a01b039091168152602090f35b503461021157604036600319011261021157602061085e6108506122de565b610858612304565b90612f29565b6040519015158152f35b5034610211576020366003190112610211576108826122de565b600254906001600160a01b039033828416148015610950575b156108fd57169081156108b9576001600160a01b0319161760025580f35b606460405162461bcd60e51b815260206004820152602060248201527f4e6577206f776e65722063616e6e6f74206265207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152602560248201527f4f6e6c79204f776e65722063616e20706572666f726d2074686973206f70657260448201526430ba34b7b760d91b6064820152608490fd5b508160015416331461089b565b5034610211576040366003190112610211576109776122de565b61097f612304565b90338352602091600a835260ff6040852054168015610ac4575b8015610ab0575b6109a9906129b6565b60055460405163c3c5a54760e01b81526001600160a01b0384811660048301819052959283908390602490829085165afa918215610aa55783926109f4918991610a78575b506129f3565b60035416946024604051809781936310c91def60e11b835260048301525afa8015610a6d57610a3d94610a38928792610a40575b505060ff80841691161015612a51565b612b0d565b80f35b610a5f9250803d10610a66575b610a57818361239d565b810190612a38565b3880610a28565b503d610a4d565b6040513d87823e3d90fd5b610a989150843d8611610a9e575b610a90818361239d565b81019061299e565b386109ee565b503d610a86565b6040513d89823e3d90fd5b506001546001600160a01b031633146109a0565b506002546001600160a01b03163314610999565b503461021157602080600319360112610d4757600435906001600160401b03808311610d435736602384011215610d43578260040135908111610d4357602491828401938336918460061b010111610d3f57600180549093906001600160a01b0390811633148015610d32575b610b4e90612ab0565b865b848110610b5b578780f35b610b66818689612d42565b35828116809103610d2e5784610b7d83888b612d42565b013560ff808216809203610d2a57858786600554166040519283809263c3c5a54760e01b82528860048301525afa908115610d1f578c91610d02575b5015610cc8578880805b610bdb575b5050505050610bd690612409565b610b50565b888184168e868211610cc057610c9b9392828760408894858d9714610ca1575b83815260099384865282822054600c87528383209083528652828220886001600160601b0360a01b825416179055808252600b8652828220886000528652826000209460ff199588878254161790558183528652828220610c5c8154612409565b905560075495835198610c6e8a612351565b828a52818a019788528352600d81526003848420019183525220945116908454161783555191015561242e565b81610bc3565b80600754888252600d8752838220906002820155818882015555610bfb565b505050610bc8565b60405162461bcd60e51b81526004810188905260138188015272155cd95c881b9bdd081c9959da5cdd195c9959606a1b6044820152606490fd5b610d199150883d8a11610a9e57610a90818361239d565b38610bb9565b6040513d8e823e3d90fd5b8a80fd5b8880fd5b5060025481163314610b45565b8480fd5b8380fd5b5080fd5b50346102115780600319360112610211576003546040516001600160a01b039091168152602090f35b50346102115760203660031901126102115761038e602091610db26040610d996122de565b6001600160a01b0381168452600d865292205491612493565b90612486565b5034610211578060031936011261021157600281541461114e5760028155610ddf33612493565b801561110957338252602090600d825260408320426002820155610e04828254612486565b9055338352600d8252600191826040852001610e208154612409565b905560405191610e2f83612351565b83835281855b8181106110e0575050604051610e4a81612382565b3381528183820152604051610e5e81612351565b60088152671a5b9d195c9d985b60c21b848201526040820152610e808461243f565b52610e8a8361243f565b508460018060a01b03918260045416604051916370a0823160e01b83523060048401528583602481855afa80156110d55786938591611099575b5090610ed681610f0094931015612947565b60405163a9059cbb60e01b8152336004820152602481019190915293849283919082906044820190565b03925af190811561108e578691611071575b501561102c57906040519160809182845260088385015267576974686472617760c01b60a085015260c084019160c082860152855180935260e085018260e08560051b88010197019489925b858410610fa057426040890152606088018b90528a8a337fd4130365245377933bb81722690fa220e7a97c5d2472118d492c92c525af2a198b8d038ca2815580f35b909192939495978986848d9360df198c820301885260408d5187815116835284810151858401520151946060908160408401528651809284015280965b8288106110085750828201840152601f01601f191601019a8101989796909101940192919050610f5e565b85945080959296508793979150010151878287010152019285908d938f8b94610fdd565b60405162461bcd60e51b815260048101839052601e60248201527f496e74657276616c20746f6b656e207472616e73666572206661696c656400006044820152606490fd5b6110889150833d8511610a9e57610a90818361239d565b38610f12565b6040513d88823e3d90fd5b929450509181813d83116110ce575b6110b2818361239d565b810103126110c95751879285929091610ed6610ec4565b600080fd5b503d6110a8565b6040513d86823e3d90fd5b6040516110ec81612382565b878152878382015260606040820152828287010152018290610e35565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f20696e74657276616c20616d6f756e7420617661696c61626c65000000006044820152606490fd5b604051633ee5aeb560e01b8152600490fd5b503461021157602036600319011261021157602061038e61117f6122de565b612493565b50346102115760203660031901126102115761119e6122de565b600154906001600160a01b03903382841614801561122a575b6111c090612ab0565b169081156111d9576001600160a01b0319161760015580f35b60405162461bcd60e51b815260206004820152602360248201527f4e6577206465706c6f7965722063616e6e6f74206265207a65726f206164647260448201526265737360e81b6064820152608490fd5b50600254821633146111b7565b5034610211576020366003190112610211576112516122de565b6001546001600160a01b0391908216331480156112e5575b61127290612ab0565b16801561128f576001600160601b0360a01b600454161760045580f35b60405162461bcd60e51b815260206004820152602860248201527f4e6577207061796d656e7420746f6b656e2063616e6e6f74206265207a65726f604482015267206164647265737360c01b6064820152608490fd5b5060025482163314611269565b50346102115780600319360112610211576006546040516001600160a01b039091168152602090f35b5034610211576040366003190112610211576113356122f4565b6024356001600160a01b03811692908390036110c95760ff604092168152600b6020522090600052602052602060ff604060002054166040519015158152f35b5034610211576020366003190112610211576040906001600160a01b0361139a6122de565b168152600d60205220805461028d60026001840154930154604051938493846040919493926060820195825260208201520152565b50346102115760203660031901126102115760015461140390336001600160a01b039182161490811561140c575b50612ab0565b60043560075580f35b9050600254163314386113fd565b50346102115780600319360112610211576004546040516001600160a01b039091168152602090f35b503461021157611452366123d5565b9192338152600a60205260ff6040822054168015611f7a575b8015611f66575b61147b906129b6565b60055460405163c3c5a54760e01b81526001600160a01b038681166004830152909160209183916024918391165afa908115611bb957906114c2918391611f4d57506129f3565b6003546040516310c91def60e11b81526001600160a01b038681166004830152909160209183916024918391165afa908115611bb95790611513918391611f2e575b5060ff80851691161015612a51565b61151d8483612b0d565b6050830283810460501484151715611f1a5761153884612c7a565b9161154560648304612c94565b9261155260648404612c94565b9661155f60648504612cae565b9661156c60648604612cae565b9461157960648204612c7a565b90600160ff8a161480611f0a575b611ef1575b50600554604051635a7f5a2b60e01b81526001600160a01b03858116600483015260ff9a909a16602482015298169785816044818c5afa90811561108e578691611ecf575b506040519a6115df8c612351565b868c5260208c018781526001600160a01b036115fa8461243f565b51168d52526040519961160c8b612351565b868b5260208b018781526001600160a01b0361162784612462565b5116611eb5576001600160a01b0361163e8461243f565b51168c525b52604051978860a08101106001600160401b0360a08b011117611ea15760a08901604052600a8952600a60208a0152600f60408a0152601960608a0152602860808a01526040518060a08101106001600160401b0360a083011117611e8d5760a0810160405260a0368237604051998a60c08101106001600160401b0360c08d011117611e79579160c08b0160405260058b52885b898c60a08310611e4f575090509287918a5b60058110611e195750505088925b60058410611d2f575b5061172594936001600160a01b03935061171d9250905061243f565b5116846131b7565b9686519160018301808411611d1b5760028401809111611d1b576003840110611d0757813b15611d03576117a48a928c888781956117e98f8f8f906117d7916117bf6040519d8e9c8d9b8c9a6316278f9960e11b8c5260018060a01b031660048c015260248b01906020809160018060a01b0381511684520151910152565b80516001600160a01b031660648a0152602001516084890152565b60a487015261012060c4870152610124860190613103565b8481036003190160e486015290613103565b9061010483015203925af18015610a6d57611cd3575b50600361180c9101613156565b95839784985b87518a10156118545761184861184e9161182c8c8b612472565b51611837828d612472565b52611842818c612472565b50612409565b99612409565b98611812565b889493929161187661188c928d61186b828a612472565b526118428189612472565b906118818288612472565b526118428187612472565b50845b84518110156119c85760206118a48287612472565b5101511580156119ac575b6119a357600454611919906020906001600160a01b03908116906118d3858a612472565b51511690826118e2868b612472565b51015160405163a9059cbb60e01b81526001600160a01b0390931660048401526024830152909283919082908b9082906044820190565b03925af1908115610aa5578791611984575b501561193f5761193a90612409565b61188f565b60405162461bcd60e51b815260206004820152601d60248201527f546f6b656e207472616e7366657220746f2075736572206661696c65640000006044820152606490fd5b61199d915060203d602011610a9e57610a90818361239d565b8861192b565b61193a90612409565b506001600160a01b036119bf8287612472565b515116156118af565b506004805460405163a9059cbb60e01b8082526001600160a01b0395861693820193909352602481018990529193879291602091839160449183918791165af1908115611bb9578291611cb4575b5015611c6f57809381945b8351861015611a5257611a46611a4c916020611a3d8988612472565b51015190612486565b95612409565b94611a21565b849060018060a01b0360045416906040516370a0823160e01b8152306004820152602081602481865afa90811561108e578691611c39575b5090611ada92611aa7602093611aa08885612486565b1115612947565b6005546040518681526001600160a01b039091166004820152602481019290925290928391908290889082906044820190565b03925af19081156110d5578491611c1a575b5015611bc457600480546006546040519384526001600160a01b039081169284019290925260248301939093529091602091839160449183918791165af1908115611bb9578291611b9a575b5015611b415780f35b60405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657220746f20696e74657276616c20696e636f6d6520636f6e7460448201526a1c9858dd0819985a5b195960aa1b6064820152608490fd5b611bb3915060203d602011610a9e57610a90818361239d565b82611b38565b6040513d84823e3d90fd5b60405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220746f20646973747269627574696f6e20636f6e747261636044820152671d0819985a5b195960c21b6064820152608490fd5b611c33915060203d602011610a9e57610a90818361239d565b84611aec565b9190506020823d602011611c67575b81611c556020938361239d565b810103126110c9579051611ada611a8a565b3d9150611c48565b60405162461bcd60e51b815260206004820152601e60248201527f436173686261636b20746f6b656e207472616e73666572206661696c656400006044820152606490fd5b611ccd915060203d602011610a9e57610a90818361239d565b85611a16565b6001600160401b038195929511611cef576040529260036117ff565b634e487b7160e01b82526041600452602482fd5b8580fd5b634e487b7160e01b86526011600452602486fd5b634e487b7160e01b87526011600452602487fd5b8b6001600160a01b03611d428688612472565b5116928315611d96575081611842611d8f93611d8893611d62898961351e565b5160405190611d7082612351565b8882526020820152611d828383612472565b52612472565b9193612409565b92906116f8565b925050918993905b60058210611df3575050908291611725959493611dbf575b83949550611701565b611dea9260405191611dd083612351565b6001600160a01b031682526020820152611837828d612472565b50388080611db6565b9093611e0d611e1391611e06878561351e565b5190612486565b94612409565b90611d9e565b80611e3760ff611e2f611e4794879a989a61351e565b511684612cc8565b611e41828861351e565b52612409565b9492946116ea565b9060208381949360409896985193611e6685612351565b80855283850152010152019290926116d8565b634e487b7160e01b89526041600452602489fd5b634e487b7160e01b88526041600452602488fd5b634e487b7160e01b87526041600452602487fd5b6001600160a01b03611ec684612462565b51168c52611643565b611eeb91503d8088833e611ee3818361239d565b810190612ea8565b386115d1565b606490049950939750879550859450849350833861158c565b50611f158985612f29565b611587565b634e487b7160e01b82526011600452602482fd5b611f47915060203d602011610a6657610a57818361239d565b38611504565b610a98915060203d602011610a9e57610a90818361239d565b506001546001600160a01b03163314611472565b506002546001600160a01b0316331461146b565b50346102115780600319360112610211576005546040516001600160a01b039091168152602090f35b503461021157602036600319011261021157611fd16122de565b6001546001600160a01b039190821633148015612009575b611ff290612ab0565b166001600160601b0360a01b600654161760065580f35b5060025482163314611fe9565b5034610211576040366003190112610211576120306122de565b90602435916001600160401b038311610d475736602384011215610d475782600401359161205d836123be565b9261206b604051948561239d565b80845260209460248686019260051b820101923684116102115750602401905b8282106120ad5760408661209f8787612894565b909183519215158352820152f35b8135815290850190850161208b565b503461021157806003193601126102115760ff80600854166120dd816123be565b906120eb604051928361239d565b8082526120f7816123be565b6020838101949091601f1901368637855b8181168481101561215957600181018381116121455783168852600984526040882054612140929161213a9088612472565b5261242e565b612108565b634e487b7160e01b89526011600452602489fd5b505050929193905060405193838594850191818652518092526040850193925b82811061218857505050500390f35b835185528695509381019392810192600101612179565b503461021157602080600319360112610d475760ff6121bc6122f4565b1691828152600982526040812054906121d482612d52565b93815b8381106121f1576040518581528061028d81880189612314565b818352600c85526040808420828552865283205461221d91906001600160a01b0316611e418289612472565b6121d7565b50346102115760603660031901126102115761226361224f6122426122f4565b6044359060243590612d84565b604051928392604084526040840190612314565b9060208301520390f35b50346102115760403660031901126102115761229361228a6122de565b602435906127a0565b9060405191604083019360408452825180955260608401946020809401915b8181106122c75760ff84168587015285870386f35b825160ff16875295840195918401916001016122b2565b600435906001600160a01b03821682036110c957565b6004359060ff821682036110c957565b6024359060ff821682036110c957565b90815180825260208080930193019160005b828110612334575050505090565b83516001600160a01b031685529381019392810192600101612326565b604081019081106001600160401b0382111761236c57604052565b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761236c57604052565b90601f801991011681019081106001600160401b0382111761236c57604052565b6001600160401b03811161236c5760051b60200190565b60609060031901126110c9576004356001600160a01b03811681036110c9579060243560ff811681036110c9579060443590565b60001981146124185760010190565b634e487b7160e01b600052601160045260246000fd5b60ff1660ff81146124185760010190565b80511561244c5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101561244c5760400190565b805182101561244c5760209160051b010190565b9190820180921161241857565b6006546040805163338b5d2b60e01b81526000936001600160a01b0390931692916004919085828481885afa918215612796578692612701575b506124d88285612894565b9490156126f8579495939184915b81518410156126ed578051966303b4dea160e31b8852848689015260249984898c818d5afa9889156126e3578590869a6125e2575b5061252690836127a0565b9a9094865b60ff8181168e82168110156125cb576125449089612472565b511680156125ab57600019810190808211612599578d906125658383612472565b51511461257d575b50506125789061242e565b61252b565b9b6060611a3d61259193612578959f612472565b9a908c61256d565b634e487b7160e01b8a5260118c528f8afd5b505096929450985099506125c191939850612409565b92909596916124e6565b50505096929450985099506125c191939850612409565b9950503d80868b3e6125f4818b61239d565b890198606080828c03126126df57815191858101516001600160401b03918282116126db5701918c601f84011215610d2e57825190612632826123be565b9288519e8f94612642908661239d565b8385526020808096019460071b870101958187116126d7578501935b868510612674575050505050505061252661251b565b608080868403126126d3578b51908101818110858211176126bc578c52855181528686015187820152858c0151818d015284860151858201528152608090940193850161265e565b5050634e487b7160e01b8d52505060418d52508f8afd5b8d80fd5b8c80fd5b8980fd5b8680fd5b83513d87823e3d90fd5b505050505091505090565b50505050505090565b9091503d8087833e612713818361239d565b8101906020908181840312612792578051906001600160401b038211610d2e57019180601f8401121561279257825161274b816123be565b936127588651958661239d565b818552838086019260051b8201019283116126db578301905b828210612783575050505090386124cd565b81518152908301908301612771565b8780fd5b81513d88823e3d90fd5b91909160ff908160085416916127b5836123be565b926040916127c58351958661239d565b818552601f196127d4836123be565b019660209736898801376000976001948591825b6127f9575b50505050505050509190565b8483169286841161288e576000848152600b83528381206001600160a01b038b168252835283902054889490871661283c575b506128369061242e565b926127e8565b9091929350600d83526003846000200181600052835284888560002001541061286a575b908793929161282c565b6128848c6128369261213a8b9796959f8a8f911690612472565b9b91929350612860565b506127ed565b6001600160a01b03166000818152600d602081815260408084206002908101548751959897969591949293916000199190828101908111612933576128d99089612472565b5110612928578651805b6128f557505050505050505060019190565b81016129018189612472565b51878b5284845286868c2001541161291957806128e3565b98505050505050505060019190565b505050505050508190565b634e487b7160e01b8b52601160045260248bfd5b1561294e57565b60405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e74207061796d656e7420746f6b656e2062616c616e604482015261636560f01b6064820152608490fd5b908160209103126110c9575180151581036110c95790565b156129bd57565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606490fd5b156129fa57565b60405162461bcd60e51b8152602060048201526016602482015275155cd95c881a5cc81b9bdd081c9959da5cdd195c995960521b6044820152606490fd5b908160209103126110c9575160ff811681036110c95790565b15612a5857565b60405162461bcd60e51b815260206004820152602a60248201527f5573657220646f6573206e6f74206861766520746865207265717569726564206044820152691cdb1bdd081b195d995b60b21b6064820152608490fd5b15612ab757565b60405162461bcd60e51b815260206004820152602860248201527f4f6e6c79206465706c6f7965722063616e20706572666f726d2074686973206f6044820152673832b930ba34b7b760c11b6064820152608490fd5b60ff1690600091808352602092600b84526040908181209360018060a01b031693848252855260ff8282205416612c0157829160ff91600180969514612be5575b8381526009875281812054600c88528282209082528752818120856001600160601b0360a01b825416179055838152600b8752818120858252875281812093831994878682541617905580825260098852828220612bac8154612409565b9055825197612bba89612351565b818952808901964288528352600d815260038484200191835252209451169084541617835551910155565b848152600d875280828120426002820155818882015555612b4e565b815162461bcd60e51b8152600481018690526014602482015273155cd95c88185b1c9958591e481a5b881cdb1bdd60621b6044820152606490fd5b15612c4357565b60405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081cdb1bdd081251608a1b6044820152606490fd5b601481029080820460141490151715612418576064900490565b601e810290808204601e1490151715612418576064900490565b600a810290808204600a1490151715612418576064900490565b9060ff169081151580612d37575b15612cf257818102918183041490151715612418576064900490565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c69642070657263656e746167652076616c756500000000000000006044820152606490fd5b506064821115612cd6565b919081101561244c5760061b0190565b90612d5c826123be565b612d69604051918261239d565b8281528092612d7a601f19916123be565b0190602036910137565b60ff16929083151580612e85575b612d9b90612c3c565b600090848252602091600983526040808220549586841015612e4657612dc19084612486565b92868411612e3e575b808403938411612e2a57612ddd84612d52565b94835b858110612df257509497505050505050565b612e25908a8652600c8352848620612e0a8286612486565b87528352848620546001600160a01b0316611e41828a612472565b612de0565b634e487b7160e01b83526011600452602483fd5b869350612dca565b50915091929394508051928301908382106001600160401b03831117612e7157528082523681379190565b634e487b7160e01b83526041600452602483fd5b5060085460ff16841115612d92565b51906001600160a01b03821682036110c957565b60209081818403126110c9578051906001600160401b0382116110c957019180601f840112156110c9578251612edd816123be565b93612eeb604051958661239d565b818552838086019260051b8201019283116110c9578301905b828210612f12575050505090565b838091612f1e84612e94565b815201910190612f04565b9060ff612f41911680151590816130f3575b50612c3c565b60055460408051634a9fefc760e01b81526001600160a01b0393841660048083019190915291949284169392602092602492848185818a5afa80156130e85786916000916130b1575b501680156130a45760009084895180998193636999fa4560e01b8352868301525afa9586156130995760009661307e575b5060009591959485928160035416935b81518110156130605782612fdf8284612472565b518b516372a2b21360e11b81529116858201526001878201528781604481895afa90811561305557600091613038575b50613023575b61301e90612409565b612fcb565b9661303061301e91612409565b979050613015565b61304f9150883d8a11610a9e57610a90818361239d565b3861300f565b8b513d6000823e3d90fd5b50505050505050909150801561307857600590061590565b50600090565b61309291963d8091833e611ee3818361239d565b9438612fbb565b87513d6000823e3d90fd5b5050945050505050600090565b91508582813d83116130e1575b6130c8818361239d565b8101031261021157506130db8691612e94565b38612f8a565b503d6130be565b88513d6000823e3d90fd5b905060ff60085416101538612f3b565b90815180825260208080930193019160005b828110613123575050505090565b909192938260408261314a60019489516020809160018060a01b0381511684520151910152565b01950193929101613115565b90613160826123be565b60409061316f8251918261239d565b8381528093613180601f19916123be565b0191600090815b848110613195575050505050565b60209082516131a381612351565b848152828581830152828701015201613187565b60055460408051634a9fefc760e01b8082526001600160a01b03958616600480840182905293989794871696602096602496959491939091888189818d5afa80156132db5785916000916134e6575b50811615928361346f575b5050506133ff57600090858a5180998193636999fa4560e01b8352878301525afa9586156130e8576000966133e4575b5060009692969586938260035416945b82518110156132e657836132658285612472565b518c516372a2b21360e11b815291168682015260018882015288816044818a5afa9081156132db576000916132be575b506132a9575b6132a490612409565b613251565b976132b66132a491612409565b98905061329b565b6132d59150893d8b11610a9e57610a90818361239d565b38613295565b8c513d6000823e3d90fd5b50989695909291948351966132fa81613156565b9981156133d0570492600095865b89881061331d57505050505050505050505090565b886133288989612472565b518c516372a2b21360e11b81529116848201526001858201528581604481865afa9081156132db578a8e928e926000916133b3575b50156133a6578361339a936133a095936118429361337b8f8f612472565b511690519061338982612351565b81528b8b820152611d828383612472565b97612409565b96613308565b505050966133a090612409565b6133ca9150893d8b11610a9e57610a90818361239d565b3861335d565b82601286634e487b7160e01b600052526000fd5b6133f891963d8091833e611ee3818361239d565b9438613241565b95505050919050849394519361341485612351565b600185528160005b81811061344c575050519261343084612351565b835282015261343e8261243f565b526134488161243f565b5090565b825161345781612351565b6000815260008382015282828901015201829061341c565b8c5192835216858201529050868187818b5afa9081156134db57829184916000916134a1575b50161415388381613211565b925090508782813d81116134d4575b6134ba818361239d565b810103126102115750826134ce8392612e94565b38613495565b503d6134b0565b8a513d6000823e3d90fd5b91508982813d8311613517575b6134fd818361239d565b810103126102115750846135118192612e94565b90613206565b503d6134f3565b90600581101561244c5760051b0190565b91909161354860ff841680151590816130f35750612c3c565b600354604080516372a2b21360e11b8082526001600160a01b0385811660048085019190915260ff891660248501529397602095909492939082169291908681604481875afa9081156134db576000916136bf575b50156136b2576005548951636999fa4560e01b8152978216838901526000908890602490829085165afa9687156136a75760009761368c575b50600096875b815181101561367f5761362588888d866135f68688612472565b5191518b815291166001600160a01b031688820190815260ff9290921660208301529283918291604090910190565b0381895afa9081156132db57600091613662575b5061364d575b61364890612409565b6135dc565b9761365a61364891612409565b98905061363f565b6136799150893d8b11610a9e57610a90818361239d565b38613639565b5096985050505050505050565b6136a091973d8091833e611ee3818361239d565b95386135d6565b89513d6000823e3d90fd5b5060009750505050505050565b6136d69150873d8911610a9e57610a90818361239d565b3861359d565b9190916136f560ff841680151590816130f35750612c3c565b600354604080516372a2b21360e11b8082526001600160a01b0385811660048085019190915260ff891660248501529397602095909492939082169291908681604481875afa9081156134db57600091613975575b50156136b257806005541689519782636999fa4560e01b91828b5216848a0152602460008a8281865afa998a156132db5760009a61395a575b506000998a5b815181101561394a578d8a8c898c6137d38b6137a5888a612472565b5187519384526001600160a01b0391161692820192835260ff90941660208301529283918291604090910190565b03818d5afa90811561393f57600091613922575b506137fc575b506137f790612409565b613789565b949193909c928661380d8f87612472565b5116955195828752888701526000868281865afa958615613917576000966138fc575b5060008f5b87518210156138e8578d8d918c8c8f61387f8e6138538f8a90612472565b51169451968795869485948552840190929160ff602091604084019560018060a01b0316845216910152565b03915afa9081156138db578e6000926138be575b50506138a9575b6138a390612409565b8f613835565b9c6138b66138a391612409565b9d905061389a565b6138d49250803d10610a9e57610a90818361239d565b388e613893565b50508f513d6000823e3d90fd5b5050929c6137f7919492955090508d6137ed565b61391091963d8091833e611ee3818361239d565b9438613830565b8f513d6000823e3d90fd5b61393991508d803d10610a9e57610a90818361239d565b386137e7565b82513d6000823e3d90fd5b50999b5050505050505050505050565b61396e919a3d8091833e611ee3818361239d565b9838613783565b61398c9150873d8911610a9e57610a90818361239d565b3861374a56fea2646970667358221220ae6bbd9f5ed2356b78cd5d166b51e724d66d4b33812d14999cbd0acabc689b4864736f6c63430008140033000000000000000000000000e5e8ae22b4f47a22f19bd4d86103e5250f54e2ef0000000000000000000000002fcd55167cda33678e344d4e59b09db273ea106900000000000000000000000055d398326f99059ff775485246999027b3197955