0 txs
0 calls
constructor
No constructor.
functions
dailyDeposit
viewfunction dailyDeposit(uint32, uint256) view returns (uint128)
dailyWithdraw
viewfunction dailyWithdraw(uint32, uint256) view returns (uint128)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getCurrentDay
viewfunction getCurrentDay() view returns (uint32 currentDay)
getDailyBalances
viewfunction getDailyBalances(uint256 poolId, uint32 firstDay, uint256 count) view returns (uint128[] _deposit, uint128[] _withdraw)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getUserInfo
viewfunction getUserInfo(address _user) view returns (tuple[] info, uint32 currentDay)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
pendingWithdraw
viewfunction pendingWithdraw(uint32, address) view returns (uint128)
pools
viewfunction pools(uint256) view returns (address token, uint32 endDay, uint32 dayPercent, uint16 lockPeriod, uint16 withdrawalFee, uint128 maxDeposit, uint128 minDeposit, uint128 totalDeposited, uint128 maxPoolAmount, bool depositEnabled)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
TREASURY_ROLE
viewfunction TREASURY_ROLE() view returns (bytes32)
treasury
viewfunction treasury() view returns (address)
treasuryAdmin
viewfunction treasuryAdmin() view returns (address)
userInfo
viewfunction userInfo(address, uint256) view returns (uint128 userDeposit, uint128 accrueInterest, uint32 lastDayAction, bool endLockTime)
userPendingWithdraw
viewfunction userPendingWithdraw(address, address) view returns (uint32)
addPool
nonpayablefunction addPool(tuple _pool)
changePool
nonpayablefunction changePool(uint256 _poolIndex, tuple _pool)
deposit
nonpayablefunction deposit(uint256 _poolIndex, uint128 _amount)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
harvest
nonpayablefunction harvest(uint256 _poolIndex)
initialize
nonpayablefunction initialize(address _treasury, address _treasuryAdmin)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setPoolEndDay
nonpayablefunction setPoolEndDay(uint256 _poolIndex, uint32 _endDay)
setPoolState
nonpayablefunction setPoolState(uint256 _poolIndex, bool _state)
setTreasury
nonpayablefunction setTreasury(address _treasury, address _treasuryAdmin)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(uint256 _poolIndex)
withdrawToken
nonpayablefunction withdrawToken(address _token, uint256 _amount)
events
Deposit
event Deposit(address indexed user, uint128 amount, address indexed token, uint256 poolIndex)
Harvest
event Harvest(address indexed user, address token, uint128 amount, uint256 poolIndex)
Initialized
event Initialized(uint8 version)
Paused
event Paused(address account)
PendingWithdraw
event PendingWithdraw(address indexed user, address indexed token, uint128 accumAmount)
PoolChanged
event PoolChanged(uint256 poolIndex)
PoolChangeState
event PoolChangeState(uint256 poolIndex, bool state)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TreasuryWithdraw
event TreasuryWithdraw(address indexed token, uint256 amount)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address indexed user, address indexed token, uint128 pendingInterest, uint128 userDeposit, uint128 fee, uint256 poolIndex)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613a13806100206000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063903954fb1161010f578063b52d881f116100a2578063d547741f11610071578063d547741f146105d5578063d9f3ab0c146105e8578063ddc63262146105fb578063efa504ab1461060e57600080fd5b8063b52d881f14610556578063cfec010c14610569578063d11a57ec1461057c578063d2d666f4146105a357600080fd5b8063a217fddf116100de578063a217fddf1461047f578063a83cc2f214610487578063ac4afa38146104bb578063adfe08701461054357600080fd5b8063903954fb1461043357806391d14854146104465780639e281a98146104595780639e9e2e131461046c57600080fd5b80633f4ba83a116101875780635c975abb116101565780635c975abb146103d457806361d027b3146103df5780636386c1c71461040a5780638456cb591461042b57600080fd5b80633f4ba83a146103855780633fff102a1461038d578063466881d1146103a0578063485cc955146103c157600080fd5b80632e1a7d4d116101c35780632e1a7d4d1461032d5780632f2ff15d1461034257806336568abe146103555780633e6968b61461036857600080fd5b806301ffc9a7146101f5578063144bb3c31461021d57806321ce919d1461026a578063248a9ca3146102fc575b600080fd5b610208610203366004612fea565b610643565b60405190151581526020015b60405180910390f35b61025261022b366004613026565b6101016020908152600092835260408084209091529082529020546001600160801b031681565b6040516001600160801b039091168152602001610214565b6102c4610278366004613067565b60fe602090815260009283526040808420909152908252902080546001909101546001600160801b0380831692600160801b9004169063ffffffff811690640100000000900460ff1684565b604080516001600160801b03958616815294909316602085015263ffffffff9091169183019190915215156060820152608001610214565b61031f61030a366004613085565b60009081526065602052604090206001015490565b604051908152602001610214565b61034061033b366004613085565b61067a565b005b61034061035036600461309e565b610cdf565b61034061036336600461309e565b610d09565b610370610d87565b60405163ffffffff9091168152602001610214565b610340610da8565b61034061039b3660046130ce565b610dbb565b6103b36103ae3660046130f3565b610e2f565b60405161021492919061316f565b6103406103cf36600461319d565b61106b565b60c95460ff16610208565b60fc546103f2906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b61041d6104183660046131cb565b611256565b6040516102149291906131e8565b610340611777565b610340610441366004613332565b61178a565b61020861045436600461309e565b611917565b610340610467366004613067565b611942565b61034061047a366004613375565b611a1b565b61031f600081565b61025261049536600461339a565b60ff6020908152600092835260408084209091529082529020546001600160801b031681565b6104ce6104c9366004613085565b611f48565b604080516001600160a01b039b909b168b5263ffffffff998a1660208c0152979098169689019690965261ffff94851660608901529290931660808701526001600160801b0390811660a087015291821660c0860152811660e085015216610100830152151561012082015261014001610214565b61034061055136600461319d565b611fdf565b6103406105643660046133c6565b61207c565b60fd546103f2906001600160a01b031681565b61031f7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca981565b6103706105b136600461319d565b61010060209081526000928352604080842090915290825290205463ffffffff1681565b6103406105e336600461309e565b612165565b6103406105f63660046133eb565b61218a565b610340610609366004613085565b612238565b61025261061c366004613026565b6101026020908152600092835260408084209091529082529020546001600160801b031681565b60006001600160e01b03198216637965db0b60e01b148061067457506301ffc9a760e01b6001600160e01b03198316145b92915050565b610682612700565b61068a612759565b3332146106b25760405162461bcd60e51b81526004016106a990613408565b60405180910390fd5b333b156106d15760405162461bcd60e51b81526004016106a99061343f565b60fb5481106106f25760405162461bcd60e51b81526004016106a99061346d565b600060fb828154811061070757610707613499565b600091825260208083206040805161014081018252600490940290910180546001600160a01b038116855263ffffffff600160a01b8204811686860152600160c01b8204168584015261ffff600160e01b820481166060870152600160f01b90910416608085015260018101546001600160801b0380821660a0870152600160801b91829004811660c0870152600283015480821660e088015291909104811661010086015260039091015460ff16151561012085015233855260fe83528185208786529092529092208054919350911661081c5760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a185cc81e995c9bc819195c1bdcda5d605a1b60448201526064016106a9565b6000806000610829610d87565b600185015460208701519192506000916108499163ffffffff16906127a1565b6040870151865491925063ffffffff80841692633b9aca00926108769216906001600160801b03166134c5565b610880919061350a565b61088a91906134c5565b85546108a69190600160801b90046001600160801b0316613530565b600186015490945063ffffffff808416911610158061090457506060860151600186015461ffff909116906108e19063ffffffff168461355b565b63ffffffff16111580156109045750856020015163ffffffff168263ffffffff16105b15610944576080860151855485916127109161092d9161ffff16906001600160801b03166134c5565b610937919061350a565b6109419190613530565b92505b845460009061095d9086906001600160801b0316613530565b87516040516370a0823160e01b81523060048201529192506001600160801b038316916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156109b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d69190613580565b1015610b3457336000908152610100602090815260408083208a516001600160a01b0316845290915290205463ffffffff848116911614610aec5763ffffffff8316600090815260ff602090815260408083208a516001600160a01b0316845290915281208054839290610a549084906001600160801b0316613530565b825461010092830a6001600160801b03818102199092169282160291909117909255336000818152602092835260408082208d516001600160a01b03908116845290855291819020805463ffffffff191663ffffffff8b161790558c5190519487168552169350917f870a65b2e068dacbba2897774cbc3a72e7a5f164b50e87144cc0b1e1f6e63d80910160405180910390a3610ccb565b60405162461bcd60e51b815260206004820152601a60248201527f5769746864726177616c20726571756573742070656e64696e6700000000000060448201526064016106a9565b855460fb80546001600160801b03909216918a908110610b5657610b56613499565b6000918252602082206002600490920201018054909190610b819084906001600160801b0316613599565b82546101009290920a6001600160801b03818102199093169183160217909155875463ffffffff86166000908152610102602090815260408083208e8452909152812080549284169450929091610bda91859116613530565b82546101009290920a6001600160801b0381810219909316918316021790915588518854604080518a85168152918416602083015292881692810192909252606082018b90526001600160a01b0316915033907f3ceb603c1d69a5125cf40b9c906c49f42afe639fd120b02a2646d15fc436da3b9060800160405180910390a36000865560018601805464ff00000000191690556001600160801b03841615610ca25760fc548751610ca2916001600160a01b0391821691166001600160801b03871661281d565b610ccb33610cb08684613599565b89516001600160a01b031691906001600160801b031661281d565b50505050505050610cdc6001609755565b50565b600082815260656020526040902060010154610cfa81612887565b610d048383612891565b505050565b6001600160a01b0381163314610d795760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106a9565b610d838282612917565b5050565b600062015180610d994261a8c06135b9565b610da391906135d1565b905090565b6000610db381612887565b610cdc61297e565b6000610dc681612887565b60fb548310610de75760405162461bcd60e51b81526004016106a99061346d565b8160fb8481548110610dfb57610dfb613499565b906000526020600020906004020160000160146101000a81548163ffffffff021916908363ffffffff160217905550505050565b606080610e3a610d87565b63ffffffff168463ffffffff161115610e865760405162461bcd60e51b815260206004820152600e60248201526d57726f6e6720666972737444617960901b60448201526064016106a9565b8215610e925782610eb7565b83610e9b610d87565b610ea5919061355b565b610eb09060016135e5565b63ffffffff165b92508267ffffffffffffffff811115610ed257610ed2613604565b604051908082528060200260200182016040528015610efb578160200160208202803683370190505b5091508267ffffffffffffffff811115610f1757610f17613604565b604051908082528060200260200182016040528015610f40578160200160208202803683370190505b50905060005b838163ffffffff161015611062576101016000610f6383886135e5565b63ffffffff1663ffffffff168152602001908152602001600020600087815260200190815260200160002060009054906101000a90046001600160801b0316838263ffffffff1681518110610fba57610fba613499565b6001600160801b03909216602092830291909101909101526101026000610fe183886135e5565b63ffffffff1663ffffffff168152602001908152602001600020600087815260200190815260200160002060009054906101000a90046001600160801b0316828263ffffffff168151811061103857611038613499565b6001600160801b03909216602092830291909101909101528061105a8161361a565b915050610f46565b50935093915050565b600054610100900460ff161580801561108b5750600054600160ff909116105b806110a55750303b1580156110a5575060005460ff166001145b6111085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a9565b6000805460ff19166001179055801561112b576000805461ff0019166101001790555b6001600160a01b0383161580159061114b57506001600160a01b03821615155b61118e5760405162461bcd60e51b8152602060048201526014602482015273416464726573732063616e74206265207a65726f60601b60448201526064016106a9565b6111966129d0565b61119e6129f7565b6111a6612a26565b6111b1600033612a55565b6111db7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca983612a55565b60fc80546001600160a01b038086166001600160a01b03199283161790925560fd8054928516929091169190911790558015610d04576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a1505050565b60fb5460609060009067ffffffffffffffff81111561127757611277613604565b60405190808252806020026020018201604052801561132a57816020015b604080516101a08101825260006060808301828152608080850184905260a0850184905260c0850184905260e0850184905261010085018490526101208501849052610140850184905261016085018490526101808501849052908452845190810185528281526020808201849052818601849052918101839052818401529282015282526000199092019101816112955790505b509150611335610d87565b905060005b82518110156117715760fb818154811061135657611356613499565b60009182526020918290206040805161014081018252600490930290910180546001600160a01b038116845263ffffffff600160a01b8204811695850195909552600160c01b81049094169183019190915261ffff600160e01b840481166060840152600160f01b909304909216608082015260018201546001600160801b0380821660a0840152600160801b91829004811660c0840152600284015480821660e0850152919091041661010082015260039091015460ff161515610120820152835184908390811061142b5761142b613499565b602090810291909101810151919091526001600160a01b038516600090815260fe82526040808220848352835290819020815160808101835281546001600160801b038082168352600160801b90910416938101939093526001015463ffffffff811691830191909152640100000000900460ff161515606082015283518490839081106114bb576114bb613499565b60200260200101516020018190525060006115188483815181106114e1576114e1613499565b6020026020010151602001516040015185848151811061150357611503613499565b602002602001015160000151602001516127a1565b905083828151811061152c5761152c613499565b602002602001015160200151600001516001600160801b0316600014801561158157508263ffffffff1684838151811061156857611568613499565b6020026020010151602001516040015163ffffffff1610155b6115fe578063ffffffff16633b9aca008584815181106115a3576115a3613499565b6020026020010151600001516040015163ffffffff168685815181106115cb576115cb613499565b602002602001015160200151600001516115e591906134c5565b6115ef919061350a565b6115f991906134c5565b611601565b60005b84838151811061161357611613613499565b60200260200101516020015160200181815161162f9190613530565b6001600160801b0316905250835184908390811061164f5761164f613499565b602002602001015160200151606001511561166b576000611733565b83828151811061167d5761167d613499565b6020026020010151600001516020015163ffffffff168363ffffffff16106116d4578382815181106116b1576116b1613499565b60200260200101516000015160200151620151806116cf919061363d565b611733565b8382815181106116e6576116e6613499565b6020026020010151600001516060015161ffff1684838151811061170c5761170c613499565b6020026020010151602001516040015161172691906135e5565b611733906201518061363d565b84838151811061174557611745613499565b602090810291909101015163ffffffff909116604090910152508061176981613660565b91505061133a565b50915091565b600061178281612887565b610cdc612a5f565b600061179581612887565b60fb5483106117b65760405162461bcd60e51b81526004016106a99061346d565b600060fb84815481106117cb576117cb613499565b6000918252602082206002600490920201015460fb80546001600160801b039092169350908690811061180057611800613499565b600091825260209091206004909102015460fb80546001600160a01b03909216925085918790811061183457611834613499565b9060005260206000209060040201818161184e91906136b4565b9050508160fb868154811061186557611865613499565b906000526020600020906004020160020160006101000a8154816001600160801b0302191690836001600160801b031602179055508060fb86815481106118ae576118ae613499565b60009182526020918290206004919091020180546001600160a01b0319166001600160a01b0393909316929092179091556040518681527f3b1d71e69e3b2adb64196f00f76bdd2fa274489e4075eee547697bc0851b50e2910160405180910390a15050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b7fe1dcbdb91df27212a29bc27177c840cf2f819ecf2187432e1fac86c2dd5dfca961196c81612887565b6001600160a01b0383166119b95760405162461bcd60e51b815260206004820152601460248201527343616e74206265207a65726f206164647265737360601b60448201526064016106a9565b60fd546119d3906001600160a01b0385811691168461281d565b826001600160a01b03167fdab9e1269b4840c2a5e425eceb614f788c03c0706647b9b6c96bb18b23d64dba83604051611a0e91815260200190565b60405180910390a2505050565b611a23612700565b611a2b612759565b333214611a4a5760405162461bcd60e51b81526004016106a990613408565b333b15611a695760405162461bcd60e51b81526004016106a99061343f565b60fb548210611a8a5760405162461bcd60e51b81526004016106a99061346d565b600060fb8381548110611a9f57611a9f613499565b600091825260208083206040805161014081018252600490940290910180546001600160a01b038116855263ffffffff600160a01b8204811686860152600160c01b8204168584015261ffff600160e01b820481166060870152600160f01b90910416608085015260018101546001600160801b0380821660a0870152600160801b91829004811660c0870152600283015480821660e088015291909104166101008501526003015460ff16151561012084015233845260fe8252808420878552909152822090925090611b71610d87565b90508261012001518015611b945750826020015163ffffffff168163ffffffff16105b611be05760405162461bcd60e51b815260206004820152601b60248201527f4465706f736974206f6e20706f6f6c2069732064697361626c6564000000000060448201526064016106a9565b60c083015182546001600160801b0391821691611bff91879116613530565b6001600160801b031610158015611c3c575060a083015182546001600160801b0391821691611c3091879116613530565b6001600160801b031611155b8015611c6e57508261010001516001600160801b0316848460e00151611c629190613530565b6001600160801b031611155b611cba5760405162461bcd60e51b815260206004820152601760248201527f416d6f756e74206f76657220706f6f6c206c696d69747300000000000000000060448201526064016106a9565b8251611cda906001600160a01b031633306001600160801b038816612a9c565b60018201546020840151600091611cf99163ffffffff909116906127a1565b83549091506001600160801b0316158015611d215750600183015463ffffffff808416911610155b611d6a576040840151835463ffffffff83811692633b9aca0092611d5192909116906001600160801b03166134c5565b611d5b919061350a565b611d6591906134c5565b611d6d565b60005b83548490601090611d8f908490600160801b90046001600160801b0316613530565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550816001611dc091906135e5565b60018401805464ffffffffff191663ffffffff92909216919091179055825485908490600090611dfa9084906001600160801b0316613530565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508460fb8781548110611e3257611e32613499565b6000918252602082206002600490920201018054909190611e5d9084906001600160801b0316613530565b82546101009290920a6001600160801b0381810219909316918316021790915563ffffffff84166000908152610101602090815260408083208b8452909152812080548994509092611eb191859116613530565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555083600001516001600160a01b0316336001600160a01b03167f7c12a9e5808e453b700fcc2a0ba22183e653c7203ce51e347530604b78cf95ce8789604051611f329291906001600160801b03929092168252602082015260400190565b60405180910390a350505050610d836001609755565b60fb8181548110611f5857600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b038316945063ffffffff600160a01b8404811694600160c01b85049091169361ffff600160e01b8204811694600160f01b90920416926001600160801b0380831693600160801b938490048216938183169391049091169060ff168a565b6000611fea81612887565b6001600160a01b0383161580159061200a57506001600160a01b03821615155b61204d5760405162461bcd60e51b8152602060048201526014602482015273416464726573732063616e74206265207a65726f60601b60448201526064016106a9565b5060fc80546001600160a01b039384166001600160a01b03199182161790915560fd8054929093169116179055565b600061208781612887565b60fb5483106120a85760405162461bcd60e51b81526004016106a99061346d565b8160fb84815481106120bc576120bc613499565b60009182526020909120600490910201600301805460ff19169115159190911790558161212e576120eb610d87565b60fb84815481106120fe576120fe613499565b906000526020600020906004020160000160146101000a81548163ffffffff021916908363ffffffff1602179055505b6040805184815283151560208201527f5d57360943975524407b3e31c9845524f8e0c8c1925b1ab6b6a6034dca520c069101611249565b60008281526065602052604090206001015461218081612887565b610d048383612917565b600061219581612887565b60006121a460208401846131cb565b6001600160a01b0316036121f15760405162461bcd60e51b815260206004820152601460248201527343616e74206265207a65726f206164647265737360601b60448201526064016106a9565b60fb805460018101825560009190915282906004027f3e7257b7272bb46d49cd6019b04ddee20da7c0cb13f7c1ec3391291b2ccebabc0161223282826136b4565b50505050565b612240612700565b612248612759565b3332146122675760405162461bcd60e51b81526004016106a990613408565b333b156122865760405162461bcd60e51b81526004016106a99061343f565b60fb5481106122a75760405162461bcd60e51b81526004016106a99061346d565b600060fb82815481106122bc576122bc613499565b600091825260208083206040805161014081018252600490940290910180546001600160a01b038116855263ffffffff600160a01b8204811686860152600160c01b8204168584015261ffff600160e01b820481166060870152600160f01b90910416608085015260018101546001600160801b0380821660a0870152600160801b91829004811660c0870152600283015480821660e088015291909104166101008501526003015460ff16151561012084015233845260fe825280842086855290915282209092509061238e610d87565b600183015460208501519192506000916123ae9163ffffffff16906127a1565b6001840154909150640100000000900460ff168061240a57506060840151600184015461ffff909116906123e89063ffffffff168461355b565b63ffffffff16118061240a5750836020015163ffffffff168263ffffffff1610155b6124565760405162461bcd60e51b815260206004820152601860248201527f4c6f636b20706572696f64206e6f742066696e6973686564000000000000000060448201526064016106a9565b6040840151835460009163ffffffff80851692633b9aca00926124839216906001600160801b03166134c5565b61248d919061350a565b61249791906134c5565b84546124b39190600160801b90046001600160801b0316613530565b85516040516370a0823160e01b81523060048201529192506001600160801b038316916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061252c9190613580565b1015612648573360009081526101006020908152604080832088516001600160a01b0316845290915290205463ffffffff84811691161461263e5763ffffffff8316600090815260ff6020908152604080832088516001600160a01b03168452909152812080548392906125aa9084906001600160801b0316613530565b825461010092830a6001600160801b03818102199092169282160291909117909255336000818152602092835260408082208b516001600160a01b03908116845290855291819020805463ffffffff191663ffffffff8b161790558a5190519487168552169350917f870a65b2e068dacbba2897774cbc3a72e7a5f164b50e87144cc0b1e1f6e63d80910160405180910390a35b50505050506126f6565b83546001600160801b03908116855560018501805463ffffffff80871664ffffffffff199092169190911764010000000017909155865161269a926001600160a01b0390911691339185169061281d16565b8451604080516001600160a01b0390921682526001600160801b0383166020830152810187905233907ffe7d6bc7836e384b290ef63fb0844c75d67389b86e76af9bea811efd14fd2d389060600160405180910390a250505050505b610cdc6001609755565b6002609754036127525760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106a9565b6002609755565b60c95460ff161561279f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016106a9565b565b6000806127ac610d87565b90508363ffffffff168163ffffffff16116127ca5760009150612816565b8063ffffffff168363ffffffff1611156127ef576127e8848261355b565b9150612816565b8363ffffffff168363ffffffff1611612809576000612813565b612813848461355b565b91505b5092915050565b6040516001600160a01b038316602482015260448101829052610d0490849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612ad4565b6001609755565b610cdc8133612ba9565b61289b8282611917565b610d835760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128d33390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6129218282611917565b15610d835760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b612986612c02565b60c9805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff1661279f5760405162461bcd60e51b81526004016106a99061384f565b600054610100900460ff16612a1e5760405162461bcd60e51b81526004016106a99061384f565b61279f612c4b565b600054610100900460ff16612a4d5760405162461bcd60e51b81526004016106a99061384f565b61279f612c72565b610d838282612891565b612a67612759565b60c9805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586129b33390565b6040516001600160a01b03808516602483015283166044820152606481018290526122329085906323b872dd60e01b90608401612849565b6000612b29826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612ca59092919063ffffffff16565b9050805160001480612b4a575080806020019051810190612b4a919061389a565b610d045760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a9565b612bb38282611917565b610d8357612bc081612cbc565b612bcb836020612cce565b604051602001612bdc9291906138e3565b60408051601f198184030181529082905262461bcd60e51b82526106a991600401613958565b60c95460ff1661279f5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016106a9565b600054610100900460ff166128805760405162461bcd60e51b81526004016106a99061384f565b600054610100900460ff16612c995760405162461bcd60e51b81526004016106a99061384f565b60c9805460ff19169055565b6060612cb48484600085612e71565b949350505050565b60606106746001600160a01b03831660145b60606000612cdd83600261398b565b612ce89060026135b9565b67ffffffffffffffff811115612d0057612d00613604565b6040519080825280601f01601f191660200182016040528015612d2a576020820181803683370190505b509050600360fc1b81600081518110612d4557612d45613499565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612d7457612d74613499565b60200101906001600160f81b031916908160001a9053506000612d9884600261398b565b612da39060016135b9565b90505b6001811115612e1b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612dd757612dd7613499565b1a60f81b828281518110612ded57612ded613499565b60200101906001600160f81b031916908160001a90535060049490941c93612e14816139aa565b9050612da6565b508315612e6a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106a9565b9392505050565b606082471015612ed25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a9565b600080866001600160a01b03168587604051612eee91906139c1565b60006040518083038185875af1925050503d8060008114612f2b576040519150601f19603f3d011682016040523d82523d6000602084013e612f30565b606091505b5091509150612f4187838387612f4c565b979650505050505050565b60608315612fbb578251600003612fb4576001600160a01b0385163b612fb45760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a9565b5081612cb4565b612cb48383815115612fd05781518083602001fd5b8060405162461bcd60e51b81526004016106a99190613958565b600060208284031215612ffc57600080fd5b81356001600160e01b031981168114612e6a57600080fd5b63ffffffff81168114610cdc57600080fd5b6000806040838503121561303957600080fd5b823561304481613014565b946020939093013593505050565b6001600160a01b0381168114610cdc57600080fd5b6000806040838503121561307a57600080fd5b823561304481613052565b60006020828403121561309757600080fd5b5035919050565b600080604083850312156130b157600080fd5b8235915060208301356130c381613052565b809150509250929050565b600080604083850312156130e157600080fd5b8235915060208301356130c381613014565b60008060006060848603121561310857600080fd5b83359250602084013561311a81613014565b929592945050506040919091013590565b600081518084526020808501945080840160005b838110156131645781516001600160801b03168752958201959082019060010161313f565b509495945050505050565b604081526000613182604083018561312b565b8281036020840152613194818561312b565b95945050505050565b600080604083850312156131b057600080fd5b82356131bb81613052565b915060208301356130c381613052565b6000602082840312156131dd57600080fd5b8135612e6a81613052565b6040808252835182820181905260009190606090818501906020808901865b838110156132f7578151805180516001600160a01b031687528481015163ffffffff908116868901528982015181168a8901528882015161ffff9081168a8a01526080808401519091169089015260a0808301516001600160801b03908116918a019190915260c0808401518216908a015260e0808401518216908a0152610100808401518216908a01526101209283015115159289019290925285830151805183166101408a015260208101519092166101608901526040820151811661018089015260609091015115156101a088015290880151166101c08601526101e09094019390820190600101613207565b505082955061330d8188018963ffffffff169052565b50505050509392505050565b6000610140828403121561332c57600080fd5b50919050565b600080610160838503121561334657600080fd5b823591506133578460208501613319565b90509250929050565b6001600160801b0381168114610cdc57600080fd5b6000806040838503121561338857600080fd5b8235915060208301356130c381613360565b600080604083850312156133ad57600080fd5b82356131bb81613014565b8015158114610cdc57600080fd5b600080604083850312156133d957600080fd5b8235915060208301356130c3816133b8565b600061014082840312156133fe57600080fd5b612e6a8383613319565b6020808252601a908201527f50726f787920636f6e7472616374206e6f7420616c6c6f776564000000000000604082015260600190565b60208082526014908201527310dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b604082015260600190565b602080825260129082015271125b99195e081bdd5d081bd988189bdd5b9960721b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160801b03808316818516818304811182151516156134eb576134eb6134af565b02949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0380841680613524576135246134f4565b92169190910492915050565b60006001600160801b03808316818516808303821115613552576135526134af565b01949350505050565b600063ffffffff83811690831681811015613578576135786134af565b039392505050565b60006020828403121561359257600080fd5b5051919050565b60006001600160801b0383811690831681811015613578576135786134af565b600082198211156135cc576135cc6134af565b500190565b6000826135e0576135e06134f4565b500490565b600063ffffffff808316818516808303821115613552576135526134af565b634e487b7160e01b600052604160045260246000fd5b600063ffffffff808316818103613633576136336134af565b6001019392505050565b600063ffffffff808316818516818304811182151516156134eb576134eb6134af565b600060018201613672576136726134af565b5060010190565b6000813561067481613014565b6000813561ffff8116811461067457600080fd5b6000813561067481613360565b60008135610674816133b8565b81356136bf81613052565b81546001600160a01b0319166001600160a01b039190911617815561370d6136e960208401613679565b82805463ffffffff60a01b191660a09290921b63ffffffff60a01b16919091179055565b61374061371c60408401613679565b82805463ffffffff60c01b191660c09290921b63ffffffff60c01b16919091179055565b61376f61374f60608401613686565b82805461ffff60e01b191660e09290921b61ffff60e01b16919091179055565b6137a261377e60808401613686565b8280546001600160f01b031660f09290921b6001600160f01b031916919091179055565b600181016137d26137b560a0850161369a565b82546001600160801b0319166001600160801b0391909116178255565b6138016137e160c0850161369a565b82546001600160801b031660809190911b6001600160801b031916178255565b50600281016138156137b560e0850161369a565b6138256137e1610100850161369a565b50610d8361383661012084016136a7565b6003830160ff1981541660ff8315151681178255505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000602082840312156138ac57600080fd5b8151612e6a816133b8565b60005b838110156138d25781810151838201526020016138ba565b838111156122325750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161391b8160178501602088016138b7565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161394c8160288401602088016138b7565b01602801949350505050565b60208152600082518060208401526139778160408501602087016138b7565b601f01601f19169190910160400192915050565b60008160001904831182151516156139a5576139a56134af565b500290565b6000816139b9576139b96134af565b506000190190565b600082516139d38184602087016138b7565b919091019291505056fea26469706673582212208662d640773a45ab92c31186ceb0dee9d14d033858cb2ab0caee0e51b871e52064736f6c634300080e0033