41 txs
51 calls
constructor
constructor(string _packageName, uint256 _packageFee, address _feeToken, address _owner, address _deployer, address _AutoWealth_Details, address _registrationContract, address[] _preRequisitePackages, address[] _addressesList)
functions
activation_Period
viewfunction activation_Period() view returns (uint256)
activationEndTime
viewfunction activationEndTime() view returns (uint256)
activationStartTime
viewfunction activationStartTime() view returns (uint256)
addressesList
viewfunction addressesList(uint256) view returns (address)
authorizedContracts
viewfunction authorizedContracts(address) view returns (bool)
autoWealth_Details
viewfunction autoWealth_Details() view returns (address)
autoWealth_JobDetail
viewfunction autoWealth_JobDetail() view returns (uint256 firstTierAmount, uint256 secondTierAmount, uint256 thirdTierAmount, uint8 firstTierCount, uint8 secondTierCount, uint8 thirdTierCount, uint256 winnerSize)
autoWealthIncomeDistributed
viewfunction autoWealthIncomeDistributed() view returns (bool)
autoWealthuserSize
viewfunction autoWealthuserSize() view returns (uint256)
checkPrerequisitePackages
viewfunction checkPrerequisitePackages(address user) view returns (bool)
countToUserSubscribed
viewfunction countToUserSubscribed(uint256) view returns (address)
createdAt
viewfunction createdAt() view returns (uint256)
deployer
viewfunction deployer() view returns (address)
feeToken
viewfunction feeToken() view returns (address)
getCompletedPackageDetails
viewfunction getCompletedPackageDetails(address user) view returns (string, uint256, uint256, uint256, uint256, bool, uint256)
getDirectPackageJoinedAddresses
viewfunction getDirectPackageJoinedAddresses() view returns (address[])
getJoinedUsersDetails
viewfunction getJoinedUsersDetails() view returns (address[] users, uint256[] timestamps)
getPackageDetails
viewfunction getPackageDetails(address user) view returns (string, uint256, uint256, uint256, uint256, bool, bool)
getPackageUsers
viewfunction getPackageUsers() view returns (address[])
getPreRequisitePackages
viewfunction getPreRequisitePackages() view returns (address[])
getRandomAddresses
viewfunction getRandomAddresses() view returns (address[])
getRemainingActivationTime
viewfunction getRemainingActivationTime() view returns (uint256)
getRemainingTimeForActivation
viewfunction getRemainingTimeForActivation() view returns (uint256)
getUserAutoWealthIncome
viewfunction getUserAutoWealthIncome(address user) view returns (uint256)
getWinnerDetails
viewfunction getWinnerDetails() view returns (address[] winners, uint256 firstTierAmount, uint256 secondTierAmount, uint256 thirdTierAmount, uint8 firstTierCount, uint8 secondTierCount, uint8 thirdTierCount)
isActivationPeriodActive
viewfunction isActivationPeriodActive() view returns (bool)
isContractCompleted
viewfunction isContractCompleted() view returns (bool)
isUserSubscribedToPackage
viewfunction isUserSubscribedToPackage(address user) view returns (bool)
levelPercentages
viewfunction levelPercentages(uint256) view returns (uint256)
owner
viewfunction owner() view returns (address)
packageFee
viewfunction packageFee() view returns (uint256)
packageName
viewfunction packageName() view returns (string)
preRequisitePackages
viewfunction preRequisitePackages(uint256) view returns (address)
randomAddresses
viewfunction randomAddresses(uint256) view returns (address)
registrationContract
viewfunction registrationContract() view returns (address)
subscriptionTimestamps
viewfunction subscriptionTimestamps(address) view returns (uint256)
totalSubscribers
viewfunction totalSubscribers() view returns (uint256)
userSubscribed
viewfunction userSubscribed(address) view returns (bool)
userWithdrawAutoWealthIncome
viewfunction userWithdrawAutoWealthIncome(address) view returns (bool)
addPreRequisitePackage
nonpayablefunction addPreRequisitePackage(address _package)
Entering
nonpayablefunction Entering()
executeAutoWealthIncome
nonpayablefunction executeAutoWealthIncome()
subscribePackage
nonpayablefunction subscribePackage(address[] userList)
withdraw
nonpayablefunction withdraw()
events
ContractCompleted
event ContractCompleted(uint256 totalSubscribers, uint256 intervalIncomePool)
IncomeDistributed
event IncomeDistributed(uint256 firstTierAmount, uint256 secondTierAmount, uint256 thirdTierAmount, uint256 totalIncome)
PackageSubscribed
event PackageSubscribed(address indexed user, uint256 fee, uint256 timestamp)
WinnersSelected
event WinnersSelected(address[] winners, uint8 firstTierCount, uint8 secondTierCount, uint8 thirdTierCount)
errors
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x6080604052346105a55761312880380380610019816105bf565b9283398101610120828203126105a55781516001600160401b0381116105a55782019181601f840112156105a55782516001600160401b03811161044f5761006a601f8201601f19166020016105bf565b9381855283602083830101116105a55760005b8281106105aa5750506020600091850101526020810151926100a1604083016105e4565b6100ad606084016105e4565b906100ba608085016105e4565b906100c760a086016105e4565b936100d460c087016105e4565b60e08701519096906001600160401b0381116105a557886100f69183016105f8565b6101008201519098906001600160401b0381116105a55761011792016105f8565b600160009081556203f4806005556008556032600a5560405190989061014081016001600160401b0381118282101761044f57604052601e8152600f6020820152600a6040820152600a6060820152600a6080820152600560a0820152600560c0820152600560e08201526005610100820152600561012082015260005b600a811061058d575050601e805461ffff191690556001558051906001600160401b03821161044f5760025490600182811c92168015610583575b602083101461056d5781601f849311610513575b50602090601f83116001146104ab576000926104a0575b50508160011b916000199060031b1c1916176002555b601580546001600160a01b03199081166001600160a01b039384161790915560068054821693831693909317909255600780549092169216919091179055426003819055600554810190811061039f57600455601680546001600160a01b039283166001600160a01b031991821617909155601780549390921692169190911790558051906001600160401b03821161044f5768010000000000000000821161044f5760209060095483600955808410610482575b50016009600052602060002060005b83811061046557843360005260216020526040600020600160ff1982541617905560005b81518110156103b5576001600160a01b036103148284610679565b51166000908152601f60205260409020805460ff191660011790556001600160a01b036103418284610679565b51166008546000526020805260406000209060018060a01b031982541617905560085490600019821461039f5760019182016008556001600160a01b036103888285610679565b5116600052602260205242604060002055016102f9565b634e487b7160e01b600052601160045260246000fd5b508051906001600160401b03821161044f5768010000000000000000821161044f5760209060255483602555808410610431575b500190602560005260206000209160005b8281106104145742602655604051612a8490816106a48239f35b81516001600160a01b0316818501556020909101906001016103fa565b61044990602560005284846000209182019101610662565b836103e9565b634e487b7160e01b600052604160045260246000fd5b82516001600160a01b0316818301556020909201916001016102d5565b61049a90600960005284846000209182019101610662565b386102c6565b0151905038806101fb565b600260009081528281209350601f198516905b8181106104fb57509084600195949392106104e2575b505050811b01600255610211565b015160001960f88460031b161c191690553880806104d4565b929360206001819287860151815501950193016104be565b600260005261055d907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f850160051c81019160208610610563575b601f0160051c0190610662565b386101e4565b9091508190610550565b634e487b7160e01b600052602260045260246000fd5b91607f16916101d0565b600190602060ff84511693019281600b015501610195565b600080fd5b8060208092840101518282890101520161007d565b6040519190601f01601f191682016001600160401b0381118382101761044f57604052565b51906001600160a01b03821682036105a557565b9080601f830112156105a5578151916001600160401b03831161044f578260051b906020806106288185016105bf565b8096815201928201019283116105a557602001905b82821061064a5750505090565b60208091610657846105e4565b81520191019061063d565b81811061066d575050565b60008155600101610662565b805182101561068d5760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001d575b50361561001b57600080fd5b005b600090813560e01c90816315e2475f14611ab0575080631e522c3e14611a875780631f5c561914611a5e57806323e19bcd14611a385780632f84f40b14611a1a578063326c9cac146119c15780633af79e181461166b5780633b39a5f51461197d5780633ccfd60b14611821578063458e6326146117f55780634d125219146117015780634d862175146116705780634ebfc1f01461166b5780635ccb83db14611639578063614290c4146115bb578063622afad41461159d578063647846a5146115745780636502d9aa1461153557806365e4e041146114405780636a20b947146114075780636a879d68146110525780636e9bcae41461139a578063884514a8146113195780638c9b7635146112fb5780638da5cb5b146112d25780639daa44191461126b578063abc2a369146111bf578063abc8b34614611180578063b5f03f60146110da578063bade845a14611091578063c426c4df14611052578063cc5cd2e714611034578063cf09e0d014611016578063d5b9221b14610fd7578063d5f3948814610fae578063d62d7c3714610f30578063d6c91198146105dc578063e0dd2cd5146105ae578063e5f7eb2314610518578063e843cc18146104fa578063ea24c21b1461031c578063ec39335f1461025d578063f1e937361461022f5763f1f07bf80361000f573461022c578060031936011261022c57602060ff601e54166040519015158152f35b80fd5b503461022c57602036600319011261022c57602061025361024e611b18565b6121ef565b6040519015158152f35b503461022c578060031936011261022c57604051601c805480835290835290916020830191600080516020612a2f833981519152915b8181106102fd576102cd856102aa81870382611c96565b60185460ff601954601a54601b549160405196879660e0885260e0880190611b6f565b946020870152604086015260608501528181166080850152818160081c1660a085015260101c1660c08301520390f35b82546001600160a01b0316845260209093019260019283019201610293565b503461022c57602036600319011261022c5760043567ffffffffffffffff81116104f657366023820112156104f657806004013561035981611cb8565b916103676040519384611c96565b8183526024602084019260051b820101903682116104f257602401915b8183106104ce575050503382526021602052600160ff60408420541615151480156104ba575b80156104a6575b1561046157815b815181101561045d576001906001600160a01b036103d68285612059565b51168452601f602052604084208260ff19825416179055818060a01b036103fd8285612059565b51166008548552602080526040852090838060a01b03166bffffffffffffffffffffffff60a01b8254161790556104356008546121e0565b600855818060a01b036104488285612059565b511684526022602052426040852055016103b8565b8280f35b60405162461bcd60e51b815260206004820152601a60248201527f4e6f7420616e20617574686f72697a656420636f6e74726163740000000000006044820152606490fd5b506006546001600160a01b031633146103b1565b506007546001600160a01b031633146103aa565b82356001600160a01b03811681036104ee57815260209283019201610384565b8580fd5b8480fd5b5080fd5b503461022c578060031936011261022c576020600354604051908152f35b503461022c578060031936011261022c5760405160098054808352908352909160208301917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af915b81811061058f5761058b8561057781870382611c96565b604051918291602083526020830190611b6f565b0390f35b82546001600160a01b0316845260209093019260019283019201610560565b503461022c57602036600319011261022c57600435600a8110156104f65760209150600b0154604051908152f35b503461022c578060031936011261022c576105f561228b565b60045442111580610f24575b15610edf5761061560ff601e54161561206d565b601554604051636eb1769f60e11b8152336004820152306024820152906001600160a01b0316602082604481845afa918215610ed4578392610e9b575b50600154809210610e4a576040516323b872dd60e01b815233600482015230602482015260448101929092526020908290606490829086905af1908115610b06578291610e2b575b5015610df457338152601f60205260ff604082205416610daf5760175460405163c3c5a54760e01b815233600482015290602090829060249082906001600160a01b03165afa908115610b06578291610d90575b5015610d38576106fd336121ef565b15610ce25733808252601f60209081526040808420805460ff19166001179055600880548552918052832080546001600160a01b0319169092179091555460249190610748906121e0565b6008553381526022602052426040822055600154603281029080820460321490151715610cd0576016546040516340ef6f3360e11b815233600482015293606490920491839185919082906001600160a01b03165afa928315610b06578293610cac575b509091829182918290604051926101606107c68186611c96565b600a85529596919591949291601f1901875b818110610c5b575050868115925b875160ff8a1690811080610c4e575b156108f5576001600160a01b039061080d908a612059565b5116801580156108de575b6108d157600a8610156108bd5785600b015480850290858204148617156108a95761088f876108a1946108898b61089b966108828f60ff908160646108959b04986040519561086687611c7a565b8652306020870152896040870152166060850152168093612059565b528c612059565b50612345565b96612a1d565b97612a1d565b98612a1d565b9795936107e6565b634e487b7160e01b84526011600452602484fd5b634e487b7160e01b83526032600452602483fd5b509395976108a190612a1d565b50808352601f60205260ff60408420541615610818565b50859260ff88169182151580610c45575b610bf7575b11610ba357815b60ff8116828110156109c957602061092d6109729287612059565b516015548151604092830151925163a9059cbb60e01b81526001600160a01b039182166004820152602481019390935291938492909116908290889082906044820190565b03925af180156109be579160019160ff93610990575b500116610912565b6109b09060203d81116109b7575b6109a88183611c96565b810190611d12565b5086610988565b503d61099e565b6040513d86823e3d90fd5b50506109d481611cb8565b926109e26040519485611c96565b818452601f196109f183611cb8565b01835b818110610b74575050825b60ff811683811015610a385760ff91610a3082610a1e60019487612059565b51610a29828b612059565b5288612059565b5001166109ff565b6016546001600160a01b03168587823b156104f65760405190633502147760e01b825260248201602060048401528151809152602060448401920190845b818110610b2a57505050818394818581819503925af18015610b0657610b15575b5060018060a01b0360165416600154813b15610b11578291608483926040519485938492631c3f9cd760e31b845233600485015230602485015260448401524260648401525af18015610b0657610af1575b506001905580f35b81610afb91611c96565b61022c578082610ae9565b6040513d84823e3d90fd5b5050fd5b81610b1f91611c96565b61022c578082610a97565b825180516001600160a01b039081168652602082810151909116818701526040808301519087015260609182015160ff169186019190915260809094019390920191600101610a76565b602090604051610b8381611c7a565b8681528683820152866040820152866060820152828289010152016109f4565b60405162461bcd60e51b815260206004820152602660248201527f546f74616c206469737472696275746564206578636565647320746f74616c20604482015265185b5bdd5b9d60d21b6064820152608490fd5b610c018183611cd0565b600019840160ff8111610c31576040610c2060ff610c2a931689612059565b5101918251612345565b905261090b565b634e487b7160e01b86526011600452602486fd5b50818110610906565b50600a60ff8716106107f5565b602090604099989495979951610c7081611c7a565b8981528983820152896040820152896060820152828289010152019795939296976107d8565b634e487b7160e01b600052604160045260246000fd5b610cc99193503d8084833e610cc18183611c96565b8101906122ad565b91386107ac565b50634e487b7160e01b81526011600452fd5b60405162461bcd60e51b815260206004820152602860248201527f5573657220646f6573206e6f74206d65657420707265726571756973697465206044820152677061636b6167657360c01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602a60248201527f55736572206e6f74207265676973746572656420696e20646973747269627574604482015269696f6e2073797374656d60b01b6064820152608490fd5b610da9915060203d6020116109b7576109a88183611c96565b386106ee565b60405162461bcd60e51b815260206004820152601760248201527f5573657220616c726561647920737562736372696265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b610e44915060203d6020116109b7576109a88183611c96565b3861069a565b60405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e7420616c6c6f77616e636520666f7220666565207460448201526337b5b2b760e11b6064820152608490fd5b9091506020813d602011610ecc575b81610eb760209383611c96565b81010312610ec757519038610652565b600080fd5b3d9150610eaa565b6040513d85823e3d90fd5b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420696e2061637469766174696f6e20706572696f6400000000000000006044820152606490fd5b50600354421015610601565b503461022c578060031936011261022c5760405160258054808352908352909160208301917f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c915b818110610f8f5761058b8561057781870382611c96565b82546001600160a01b0316845260209093019260019283019201610f78565b503461022c578060031936011261022c576006546040516001600160a01b039091168152602090f35b503461022c57602036600319011261022c5760209060ff906040906001600160a01b03611002611b18565b168152602184522054166040519015158152f35b503461022c578060031936011261022c576020602654604051908152f35b503461022c578060031936011261022c576020600454604051908152f35b503461022c57602036600319011261022c5760209060ff906040906001600160a01b0361107d611b18565b168152601f84522054166040519015158152f35b503461022c578060031936011261022c57600454421115806110ce575b806110c1575b6020906040519015158152f35b50601e5460ff16156110b4565b506003544210156110ae565b503461022c57602036600319011261022c5761115b906110f8611b18565b906001549060085492611109611cf3565b9161112e60ff60406026549360018060a01b0386168152601f60205220541692611d4a565b92604051956111478761114081611bac565b0388611c96565b60405197889760e0895260e0890190611b2e565b956020880152604087015260608601526080850152151560a084015260c08301520390f35b503461022c578060031936011261022c5761058b6040516111ab816111a481611bac565b0382611c96565b604051918291602083526020830190611b2e565b503461022c578060031936011261022c57600454421115611226576111e960ff601e54161561206d565b6007546001600160a01b031633148015611212575b61120790611fea565b61120f6120b9565b80f35b506006546001600160a01b031633146111fe565b60405162461bcd60e51b815260206004820152601b60248201527f41637469766174696f6e20706572696f64206e6f7420656e64656400000000006044820152606490fd5b503461022c578060031936011261022c5760085461128881612027565b91805b8281106112a8576040516020808252819061058b90820187611b6f565b808252602080526040822054600191906001600160a01b03166112cb8287612059565b520161128b565b503461022c578060031936011261022c576007546040516001600160a01b039091168152602090f35b503461022c578060031936011261022c576020600554604051908152f35b503461022c57602036600319011261022c576004359060245482101561022c5760245482101561138657602481527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49091015460405160039290921b1c6001600160a01b03168152602090f35b634e487b7160e01b81526032600452602490fd5b503461022c57602036600319011261022c576004359060255482101561022c5760255482101561138657602581527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9091015460405160039290921b1c6001600160a01b03168152602090f35b503461022c57602036600319011261022c576020906040906001600160a01b0361142f611b18565b168152602283522054604051908152f35b503461022c578060031936011261022c5760085461145d81612027565b9061146781611cb8565b926114756040519485611c96565b81845261148182611cb8565b602085019290601f1901368437815b8181106114eb5750506114b3936020604051958695604087526040870190611b6f565b918583038287015251918281520192915b8181106114d2575050500390f35b82518452859450602093840193909201916001016114c4565b80835260208052604083205494959394600191906001600160a01b031680611513838a612059565b5284526022602052604084205461152a8287612059565b520194939294611490565b503461022c57602036600319011261022c5760209060ff906040906001600160a01b03611560611b18565b168152602384522054166040519015158152f35b503461022c578060031936011261022c576015546040516001600160a01b039091168152602090f35b503461022c578060031936011261022c576020600154604051908152f35b503461022c578060031936011261022c5760405160248054808352908352909160208301917f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4915b81811061161a5761058b8561057781870382611c96565b82546001600160a01b0316845260209093019260019283019201611603565b503461022c57602036600319011261022c576020906004358152818052604060018060a01b0391205416604051908152f35b611acc565b503461022c57602036600319011261022c576116da9061168e611b18565b90600154906008549261169f611cf3565b9160ff6040602654926116b1856121ef565b6001600160a01b039095168152601f602052205460405196911693906111478761114081611bac565b956020880152604087015260608601526080850152151560a0840152151560c08301520390f35b503461022c57602036600319011261022c5761171b611b18565b6007546001600160a01b0316331480156117e1575b61173990611fea565b6001600160a01b0316801561179c57600954600160401b811015611788578060016117679201600955611ae7565b81546001600160a01b0360039290921b91821b191692901b91909117905580f35b634e487b7160e01b83526041600452602483fd5b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207061636b61676520616464726573730000000000000000006044820152606490fd5b506006546001600160a01b03163314611730565b503461022c57602036600319011261022c576020611819611814611b18565b611d4a565b604051908152f35b503461022c578060031936011261022c5761183a61228b565b61184333611d4a565b80156119395733808352602360209081526040808520805460ff19166001179055601554905163a9059cbb60e01b8152600481019390935260248301849052849392919082906001600160a01b03168186816044810103925af18015610ed45761191c575b506016546001600160a01b0316803b15610b1157604051631d21b76d60e31b8152336004820152306024820152604481019290925290919081908390606490829084905af1801561190f576118ff575b6001815580f35b61190891611c96565b38816118f8565b50604051903d90823e3d90fd5b6119349060203d6020116109b7576109a88183611c96565b6118a8565b606460405162461bcd60e51b815260206004820152602060248201527f4e6f20776974686472617761626c6520616d6f756e7420617661696c61626c656044820152fd5b503461022c57602036600319011261022c576004359060095482101561022c5760206119a883611ae7565b905460405160039290921b1c6001600160a01b03168152f35b503461022c578060031936011261022c5760e060185460195460ff601a54601b5490601d5493604051958652602086015260408501528181166060850152818160081c16608085015260101c1660a083015260c0820152f35b503461022c578060031936011261022c576020600a54604051908152f35b503461022c578060031936011261022c57602060ff601e5460081c166040519015158152f35b503461022c578060031936011261022c576016546040516001600160a01b039091168152602090f35b503461022c578060031936011261022c576017546040516001600160a01b039091168152602090f35b9050346104f657816003193601126104f6576020906008548152f35b34610ec7576000366003190112610ec7576020611819611cf3565b600954811015611b0257600960005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b600435906001600160a01b0382168203610ec757565b919082519283825260005b848110611b5a575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611b39565b906020808351928381520192019060005b818110611b8d5750505090565b82516001600160a01b0316845260209384019390920191600101611b80565b90600091600254908160011c91600181168015611c70575b602084108114611c5a57838352908115611c3e5750600114611be4575050565b600260009081529293509091907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b838310611c24575060209250010190565b600181602092949394548385870101520191019190611c13565b9050602093945060ff929192191683830152151560051b010190565b634e487b7160e01b600052602260045260246000fd5b92607f1692611bc4565b6080810190811067ffffffffffffffff821117610c9657604052565b90601f8019910116810190811067ffffffffffffffff821117610c9657604052565b67ffffffffffffffff8111610c965760051b60200190565b91908203918211611cdd57565b634e487b7160e01b600052601160045260246000fd5b60045480421015611d0c57611d09904290611cd0565b90565b50600090565b90816020910312610ec757518015158103610ec75790565b8115611d34570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031660008181526023602052604090205460ff16611d0c576015546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611fde57600091611fac575b50601c549182158015611f9c575b611f9457601c5460005b848110611dcd575050505050600090565b60008282101561138657601c9052600080516020612a2f8339815191528101546000906001600160a01b03168414611e085750600101611dbc565b939450915050601b549060ff821692838210600014611e8b57505050611e3090601854611d2a565b809110611e3a5790565b60405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e742062616c616e636520666f72206669727374207460448201526234b2b960e91b6064820152608490fd5b60ff8360081c168094019060ff8211611f80575060ff161115611f105750611eb590601954611d2a565b809110611ebf5790565b60405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520666f72207365636f6e64206044820152633a34b2b960e11b6064820152608490fd5b611f25915060ff601a549160101c1690611d2a565b809110611f2f5790565b60405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e742062616c616e636520666f72207468697264207460448201526234b2b960e91b6064820152608490fd5b634e487b7160e01b81526011600452602490fd5b505050600090565b5060ff601e5460081c1615611db2565b906020823d602011611fd6575b81611fc660209383611c96565b8101031261022c57505138611da4565b3d9150611fb9565b6040513d6000823e3d90fd5b15611ff157565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606490fd5b9061203182611cb8565b61203e6040519182611c96565b828152809261204f601f1991611cb8565b0190602036910137565b8051821015611b025760209160051b010190565b1561207457565b60405162461bcd60e51b815260206004820152601a60248201527f436f6e747261637420616c726561647920636f6d706c657465640000000000006044820152606490fd5b601e5460ff8160081c1661218f5761ffff191661010117601e556015546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611fde5760009161215d575b508015612128575061211e612352565b6121266128be565b565b60407fc359db1b32c1f03560a66f10a6185a42781504569a42647678b18d92bdc4ca2e916008549082519182526020820152a1565b906020823d602011612187575b8161217760209383611c96565b8101031261022c5750513861210e565b3d915061216a565b60405162461bcd60e51b815260206004820152602360248201527f496e74657276616c20696e636f6d6520616c72656164792064697374726962756044820152621d195960ea1b6064820152608490fd5b6000198114611cdd5760010190565b6009549081156122845760005b82811061220b57505050600190565b6024602061221883611ae7565b905460405163c426c4df60e01b81526001600160a01b038781166004830152909485939092849260039290921b1c165afa908115611fde57600091612266575b5015611f94576001016121fc565b61227e915060203d81116109b7576109a88183611c96565b38612258565b5050600190565b60026000541461229c576002600055565b633ee5aeb560e01b60005260046000fd5b602081830312610ec75780519067ffffffffffffffff8211610ec757019080601f83011215610ec7578151906122e282611cb8565b926122f06040519485611c96565b82845260208085019360051b820101918211610ec757602001915b8183106123185750505090565b82516001600160a01b0381168103610ec75781526020928301920161230b565b8015611cdd576000190190565b91908201809211611cdd57565b600854801561288b5760165460405163622329eb60e11b815292906001600160a01b0316602084600481845afa938415611fde57600094612858575b506004938084101561284f5750600083915b82601d5560405195868092631894a69f60e11b82525afa938415611fde57600094612834575b506123d083612027565b9260005b8181106128085750604051602081019042825243604082015282606082015260608152612402608082611c96565b519020906000198101908111611cdd5790815b61278257505061242481612027565b84519361243085611cb8565b9461243e6040519687611c96565b80865261244d601f1991611cb8565b013660208701376000905b8382106126f25750506000198201828111611cdd579460005b81518110156126e6576124848187612059565b5115612493575b600101612471565b6000805b8581106126a7575b5061248b57956001600160a01b036124b78884612059565b51166124c38285612059565b5280156124dd576124d5600191612338565b96905061248b565b505091935091505b805167ffffffffffffffff8111610c9657600160401b8111610c9657601c5481601c5580821061266c575b5060208201601c60005260005b82811061264157505050600a8210156125a2576125809060ff7fe7de223a28ea679d35e7f4ce2ec2710ea1df04714975b55f8518f16b830d117e931662ffffff19601b541617601b555b601b5460ff604051938493608085526080850190611b6f565b918181166020850152818160081c16604085015260101c1660608301520390a1565b603c820290821591838104603c14831715611cdd57606460ff91041692601b549060148102938185046014141715611cdd578462ff000061262b6126157fe7de223a28ea679d35e7f4ce2ec2710ea1df04714975b55f8518f16b830d117e9861ff0060646125809a0460081b1695611cd0565b61ffff1986168417851760081c60ff1690611cd0565b60101b169262ffffff1916171717601b55612567565b81516001600160a01b0316600080516020612a2f83398151915282015560209091019060010161251d565b600080516020612a2f8339815191520181600080516020612a2f833981519152015b81811061269b5750612510565b6000815560010161268e565b6001600160a01b036126b98287612059565b51166001600160a01b036126cd8587612059565b5116146126dc57600101612497565b505060013861249f565b505091935091506124e5565b9194909390926001600160a01b0361270a8685612059565b51166127168688612059565b5260005b8751811015612774576001600160a01b036127358789612059565b51166001600160a01b03612749838b612059565b5116146127585760010161271a565b94600161276b8698959497829497612059565b525b0190612458565b50929491909360019061276d565b6001820190818311611cdd578115611d34576128019181066001600160a01b036127ac8289612059565b5116906127cd6001600160a01b036127c4878b612059565b51169189612059565b526127d88488612059565b5260405160208101918252836040820152604081526127f8606082611c96565b51902091612338565b9081612415565b6000818152602080526040902054600191906001600160a01b031661282d8288612059565b52016123d4565b61284891943d8091833e610cc18183611c96565b92386123c6565b600090916123a0565b6020813d602011612883575b8161287160209383611c96565b810103126104f257519350600461238e565b3d9150612864565b60407fc359db1b32c1f03560a66f10a6185a42781504569a42647678b18d92bdc4ca2e91815190815260006020820152a1565b601c548015612a1a576015546040516370a0823160e01b81523060048201529190602090839060249082906001600160a01b03165afa918215611fde576000926129e6575b5081156129a157600a116129925760328102818104603203611cdd576064900480601855601e820290828204601e03611cdd577fb976f1c311ab620aaf714c7c86818e402f863a0e386f350798e72a46dbc147ac9260646080930480601955612975816129708585611cd0565b611cd0565b9081601a55604051938452602084015260408301526060820152a1565b60185560006019556000601a55565b60405162461bcd60e51b815260206004820152601760248201527f4e6f20696e636f6d6520746f20646973747269627574650000000000000000006044820152606490fd5b90916020823d602011612a12575b81612a0160209383611c96565b8101031261022c5750519038612903565b3d91506129f4565b50565b60ff1660ff8114611cdd576001019056fe0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211a26469706673582212207ae22d5227f7f73b882c55a710201aab77f206774017db4fa675f61a6ce5defc64736f6c634300081a003300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000003782dace9d90000000000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000002fcd55167cda33678e344d4e59b09db273ea10690000000000000000000000001459caee84dcbc41644359681c5458e87835705e0000000000000000000000003646e49684e550bca051b23eb98081fab70ae086000000000000000000000000e5e8ae22b4f47a22f19bd4d86103e5250f54e2ef00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000a5061636b61676520203100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000002fcd55167cda33678e344d4e59b09db273ea1069000000000000000000000000c136210c992e7ff567013d5c264658234f5ddd5b000000000000000000000000c866941ee1d26f5d10994a5e93fa171b1eb1549b00000000000000000000000042b6f3be628795b14f9c044425d894e54ea4b6de00000000000000000000000096c11518180aa4928983eb6a19a37c865b9fb4c6000000000000000000000000edba5fab97155d577987ce801a58e9a466204306000000000000000000000000af1860cd6c686a6595802d4719c9fa960722db17