334 txs
538 calls
constructor
constructor()
functions
constantContractAddress
viewfunction constantContractAddress() view returns (address)
deposits
viewfunction deposits(address) view returns (uint16 numDeposits, uint256 withdrawn)
getAllUserDeposits
viewfunction getAllUserDeposits(address user) view returns (uint8[], uint32[], uint256[], uint256[], uint256[], bool[])
getCommision
viewfunction getCommision() view returns (uint256)
getUserDepositsByIndexes
viewfunction getUserDepositsByIndexes(address user, uint16[] depositIndexes) view returns (uint8[] depositTariffIds, uint32[] depositAts, uint256[] depositAmounts, uint256[] depositPaidOuts, uint256[] depositPercentsMonthly, bool[] depositClosed)
getWithdrawValue
viewfunction getWithdrawValue(address user) view returns (uint256)
investorContractAddress
viewfunction investorContractAddress() view returns (address)
state
viewfunction state() view returns (bool)
votes1
viewfunction votes1() view returns (bool)
votes2
viewfunction votes2() view returns (bool)
votes3
viewfunction votes3() view returns (bool)
deposit
payablefunction deposit(uint8 _tariff, address _referrer) payable returns (address, uint8, uint256)
depositForUser
nonpayablefunction depositForUser(uint256 value, uint8 _tariff, address _referrer, address _wallet, uint32 _at, uint32 _paid_out, uint32 _to_pay, uint32 _percents) returns (address, uint8, uint256)
devfee
payablefunction devfee(uint256 _fee) payable
migrate
nonpayablefunction migrate(address wallet, uint16[] depositIndexes, address contractAddress)
setConstantContractAddress
nonpayablefunction setConstantContractAddress(address contractAddress) returns (address)
setInvestorContractAddress
nonpayablefunction setInvestorContractAddress(address contractAddress) returns (address)
toggleDeposit
nonpayablefunction toggleDeposit(address wallet, uint16 depositIndex) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
turnOff
nonpayablefunction turnOff() returns (bool)
turnOn
nonpayablefunction turnOn() returns (bool)
voting
nonpayablefunction voting() returns (bool)
withdraw
nonpayablefunction withdraw()
withdrawThreeVoices
nonpayablefunction withdrawThreeVoices(uint256 amount)
events
DepositEvent
event DepositEvent(address indexed _user, uint8 tariff, uint256 indexed _amount)
withdrawEvent
event withdrawEvent(address indexed _user, uint256 indexed _amount)
errors
No errors.
creation bytecode
0x60806040526000805460ff60201b19169055348015601c57600080fd5b506000805463ffffffff196501000000000033021664ff00000001600160c81b0319909116179055615617806100536000396000f3fe6080604052600436106101775760003560e01c8063af10c810116100ca578063ea5bb94611610079578063f2fde38b11610056578063f2fde38b14610446578063fc7e286d14610466578063fce1ccca146104bb57005b8063ea5bb946146103e6578063ec715e5814610406578063ec7dced51461042657005b8063ba33ed7d116100a7578063ba33ed7d14610399578063c19d93fb146103ae578063cf314735146103c657005b8063af10c81014610339578063b01326c01461034e578063b9f43fd81461038657005b80633fcd0aec11610126578063878c13df11610103578063878c13df146102bf5780639a14051e146102df578063ab94d9501461032657005b80633fcd0aec1461025c5780635b4405961461027f5780635ec201bf1461029f57005b80632c7a2e5b116101545780632c7a2e5b14610206578063332336df146102265780633ccfd60b1461024757005b80630b5dfd3d146101805780631327e258146101a05780632516b3c1146101d457005b3661017e57005b005b34801561018c57600080fd5b5061017e61019b366004614cc3565b6104d0565b3480156101ac57600080fd5b506000546101bf90610100900460ff1681565b60405190151581526020015b60405180910390f35b3480156101e057600080fd5b506101f46101ef366004614d27565b6109c6565b6040516101cb96959493929190614df3565b34801561021257600080fd5b506000546101bf9062010000900460ff1681565b34801561023257600080fd5b506000546101bf906301000000900460ff1681565b34801561025357600080fd5b5061017e610ebd565b34801561026857600080fd5b506102716112f1565b6040519081526020016101cb565b34801561028b57600080fd5b5061027161029a366004614d27565b611352565b3480156102ab57600080fd5b506101bf6102ba366004614ea2565b611a60565b3480156102cb57600080fd5b5061017e6102da366004614edb565b611bfb565b3480156102eb57600080fd5b506102ff6102fa366004614f15565b611d59565b604080516001600160a01b03909416845260ff9092166020840152908201526060016101cb565b6102ff610334366004614fb5565b6120ad565b34801561034557600080fd5b506101bf61248d565b34801561035a57600080fd5b5061036e610369366004614d27565b6124f9565b6040516001600160a01b0390911681526020016101cb565b61017e610394366004614edb565b612585565b3480156103a557600080fd5b506101bf612667565b3480156103ba57600080fd5b5060005460ff166101bf565b3480156103d257600080fd5b5061036e6103e1366004614d27565b6126d5565b3480156103f257600080fd5b5060015461036e906001600160a01b031681565b34801561041257600080fd5b5060025461036e906001600160a01b031681565b34801561043257600080fd5b506101f4610441366004614fe3565b61275f565b34801561045257600080fd5b5061017e610461366004614d27565b612d41565b34801561047257600080fd5b506104a1610481366004614d27565b6004602052600090815260409020805460019091015461ffff9091169082565b6040805161ffff90931683526020830191909152016101cb565b3480156104c757600080fd5b506101bf612df0565b6000546501000000000090046001600160a01b0316331461052e5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b60448201526064015b60405180910390fd5b6001600160a01b0381166105845760405162461bcd60e51b815260206004820152601a60248201527f46726f6d20636f6e7472616374206e6f742073657475707065640000000000006044820152606401610525565b6060806060806060806000885111610624576040517f2516b3c10000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152881690632516b3c1906024016000604051808303816000875af11580156105f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261061f91908101906151d4565b6106b2565b6040517fec7dced50000000000000000000000000000000000000000000000000000000081526001600160a01b0388169063ec7dced59061066b908c908c906004016152ea565b6000604051808303816000875af115801561068a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106b291908101906151d4565b949a5092985090965094509250905060005b86518161ffff1610156109ba57604051806101200160405280888361ffff16815181106106f3576106f3615346565b602002602001015160ff168152602001868361ffff168151811061071957610719615346565b60200260200101518152602001858361ffff168151811061073c5761073c615346565b6020026020010151815260200160008152602001878361ffff168151811061076657610766615346565b602002602001015163ffffffff168152602001600160009054906101000a90046001600160a01b03166001600160a01b031663e8f2be528a8561ffff16815181106107b3576107b3615346565b60200260200101516040518263ffffffff1660e01b81526004016107e0919060ff91909116815260200190565b60a060405180830381865afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610821919061535c565b60000151888461ffff168151811061083b5761083b615346565b602002602001015161084d9190615401565b63ffffffff168152602001838361ffff168151811061086e5761086e615346565b60200260200101511515815260200160008152602001868361ffff168151811061089a5761089a615346565b6020908102919091018101519091526001600160a01b038c166000908152600490915260408120805460028201929161ffff90911690826108da8361541d565b825461ffff91821661010093840a90810290830219909116179092559116825260208083019390935260409182016000208451815460ff90911660ff1990911617815592840151600184015590830151600283015560608301516003830155608083015160048301805460a086015160c08701511515600160401b0268ff00000000000000001963ffffffff9283166401000000000267ffffffffffffffff199094169290951691909117919091179290921691909117905560e083015160058301559190910151600690910155806109b28161541d565b9150506106c4565b50505050505050505050565b60015460405163dbac26e960e01b8152336004820152606091829182918291829182916001600160a01b039091169063dbac26e990602401602060405180830381865afa158015610a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3f919061543e565b15610a4957600080fd5b6001600160a01b03871660009081526004602052604081205461ffff1667ffffffffffffffff811115610a7e57610a7e614ba9565b604051908082528060200260200182016040528015610aa7578160200160208202803683370190505b506001600160a01b0389166000908152600460205260408120549192509061ffff1667ffffffffffffffff811115610ae157610ae1614ba9565b604051908082528060200260200182016040528015610b0a578160200160208202803683370190505b506001600160a01b038a166000908152600460205260408120549192509061ffff1667ffffffffffffffff811115610b4457610b44614ba9565b604051908082528060200260200182016040528015610b6d578160200160208202803683370190505b506001600160a01b038b166000908152600460205260408120549192509061ffff1667ffffffffffffffff811115610ba757610ba7614ba9565b604051908082528060200260200182016040528015610bd0578160200160208202803683370190505b506001600160a01b038c166000908152600460205260408120549192509061ffff1667ffffffffffffffff811115610c0a57610c0a614ba9565b604051908082528060200260200182016040528015610c33578160200160208202803683370190505b506001600160a01b038d166000908152600460205260408120549192509061ffff1667ffffffffffffffff811115610c6d57610c6d614ba9565b604051908082528060200260200182016040528015610c96578160200160208202803683370190505b50905060005b6001600160a01b038e1660009081526004602052604090205461ffff9081169082161015610ea8576001600160a01b038e16600090815260046020908152604080832061ffff8516808552600290910190925290912054885160ff9091169189918110610d0b57610d0b615346565b60ff9092166020928302919091018201526001600160a01b038f1660009081526004808352604080832061ffff861680855260029091019094529091200154875163ffffffff9091169188918110610d6557610d65615346565b63ffffffff9092166020928302919091018201526001600160a01b038f16600090815260048252604080822061ffff851680845260029091019093529020600101548651909187918110610dbb57610dbb615346565b6020908102919091018101919091526001600160a01b038f16600090815260048252604080822061ffff85168084526002918201909452912001548551909186918110610e0a57610e0a615346565b6020908102919091018101919091526001600160a01b038f1660009081526004808352604080832061ffff8616808552600290910190945290912001548351600160401b90910460ff169184918110610e6557610e65615346565b91151560209283029190910190910152610e7f8e82612ec7565b838261ffff1681518110610e9557610e95615346565b6020908102919091010152600101610c9c565b50949c939b5091995097509550909350915050565b60015460405163dbac26e960e01b81523360048201526001600160a01b039091169063dbac26e990602401602060405180830381865afa158015610f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f29919061543e565b15610f3357600080fd5b60005460ff161515600103610f4757600080fd5b33610f5157600080fd5b6000610f5c336132ce565b905060008111610fae5760405162461bcd60e51b815260206004820152601360248201527f496e73756666696369656e7420616d6f756e74000000000000000000000000006044820152606401610525565b6000336001600160a01b0316600160009054906101000a90046001600160a01b03166001600160a01b031663b0a46a826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110319190615459565b611044906001600160801b031684615482565b604051600081818185875af1925050503d8060008114611080576040519150601f19603f3d011682016040523d82523d6000602084013e611085565b606091505b50509050600160009054906101000a90046001600160a01b03166001600160a01b031663b0a46a826040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190615459565b6001600160801b03166003546111169190615495565b600355806111665760405162461bcd60e51b815260206004820152601860248201527f5769746864726177207472616e73666572206661696c656400000000000000006044820152606401610525565b60005b3360009081526004602052604090205461ffff90811690821610156112905733600090815260046020818152604080842061ffff8616855260020190915290912001544264010000000090910463ffffffff16116112275733600090815260046020908152604080832061ffff8516845260029081019092529091209081015460039091015411156112225733600090815260046020908152604080832061ffff85168452600290810190925290912060038101549101555b611288565b33600090815260046020908152604080832061ffff8516845260029081019092529091209081015460059091015411156112885733600090815260046020908152604080832061ffff85168452600290810190925290912060058101549101555b600101611169565b50336000908152600460205260409020600101546112af908390615495565b3360008181526004602052604080822060010193909355915184927f87d5f4772963d1f9b76047158b4ae97c420a1b3bff2a746c828beffd9e7c3e2691a35050565b600080546501000000000090046001600160a01b0316331461134b5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b5060035490565b6001600160a01b03811660009081526004602052604081205481908190819061ffff1667ffffffffffffffff81111561138d5761138d614ba9565b60405190808252806020026020018201604052801561141e57816020015b61140b604051806101200160405280600060ff168152602001600081526020016000815260200160008152602001600063ffffffff168152602001600063ffffffff16815260200160001515815260200160008152602001600081525090565b8152602001906001900390816113ab5790505b50905060005b6001600160a01b03861660009081526004602052604090205461ffff9081169082161015611a3e57600160009054906101000a90046001600160a01b03166001600160a01b03166367b0c1156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c39190615459565b6001600160a01b038716600090815260046020818152604080842061ffff871685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526001600160801b03919091169061157b906138ef565b1015611588576000611854565b600154604080516367b0c11560e01b815290516064926001600160a01b0316916367b0c1159160048083019260209291908290030181865afa1580156115d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f69190615459565b6001600160a01b038816600090815260046020818152604080842061ffff881685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526001600160801b0391909116906116ae906138ef565b6116b891906154be565b6001600160a01b038816600090815260046020818152604080842061ffff881685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e083015260060154610100820152611763906138ef565b61176d9190615482565b6001546001600160a01b03898116600090815260046020818152604080842061ffff8a168552600201909152918290205491516374795f2960e11b815260ff9092169082015291169063e8f2be529060240160a060405180830381865afa1580156117dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611800919061535c565b6020908101516001600160a01b038a16600090815260048352604080822061ffff8816835260020190935291909120600601546118409160ff16906154d2565b61184a91906154d2565b61185491906154e9565b828261ffff168151811061186a5761186a615346565b60209081029190910181015160e001919091526001600160a01b038716600090815260048252604080822061ffff851683526002908101909352902001546118b29084615495565b6001600160a01b038716600090815260046020818152604080842061ffff871685526002019091529091200154909350600160401b900460ff168061193257506001600160a01b038616600090815260046020818152604080842061ffff8616855260020190915290912001544264010000000090910463ffffffff1611155b156119be576001600160a01b038616600090815260046020908152604080832061ffff8516808552600290910190925290912060060154835190918491811061197d5761197d615346565b602002602001015160e001516119939190615495565b828261ffff16815181106119a9576119a9615346565b60200260200101516060018181525050611a07565b818161ffff16815181106119d4576119d4615346565b602002602001015160e00151828261ffff16815181106119f6576119f6615346565b602002602001015160600181815250505b818161ffff1681518110611a1d57611a1d615346565b60200260200101516060015184611a349190615495565b9350600101611424565b50818311611a4d576000611a57565b611a578284615482565b95945050505050565b600080546501000000000090046001600160a01b03163314611aba5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b6001600160a01b03831660009081526004602052604090205461ffff16611b235760405162461bcd60e51b815260206004820152600c60248201527f57726f6e672077616c6c657400000000000000000000000000000000000000006044820152606401610525565b6001600160a01b038316600090815260046020908152604080832061ffff86168452600201909152902060010154611b9d5760405162461bcd60e51b815260206004820152601360248201527f57726f6e67206465706f73697420696e646578000000000000000000000000006044820152606401610525565b506001600160a01b038216600090815260046020818152604080842061ffff8616855260020190915290912001805460ff600160401b808304821615810268ff00000000000000001990931692909217928390559104165b92915050565b6000546501000000000090046001600160a01b03163314611c545760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b600054610100900460ff168015611c73575060005462010000900460ff165b8015611c8857506000546301000000900460ff165b611cd45760405162461bcd60e51b815260206004820152600c60248201527f4e656564203320766f74657300000000000000000000000000000000000000006044820152606401610525565b600054610100900460ff168015611cf3575060005462010000900460ff165b8015611d0857506000546301000000900460ff165b15611d565747811115611d1a57600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611d47573d6000803e3d6000fd5b506000805463ffffff00191690555b50565b60008054819081906501000000000090046001600160a01b03163314611db75760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b876001600160a01b0316896001600160a01b031603611e185760405162461bcd60e51b815260206004820152601a60248201527f57616c6c65742063616e6e6f74206265207265666572726572210000000000006044820152606401610525565b6002546040516337bde4df60e11b81526001600160a01b038b811660048301526000921690636f7bc9be9060240160e0604051808303816000875af1158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8991906154fd565b5163ffffffff1611611edd5760405162461bcd60e51b815260206004820152601b60248201527f4e6f20726566657272657220666f756e6420696e2073797374656d00000000006044820152606401610525565b6002546040516337bde4df60e11b81523360048201526000916001600160a01b031690636f7bc9be9060240160e0604051808303816000875af1158015611f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4c91906154fd565b5163ffffffff16111561203b576002546040516337bde4df60e11b81523360048201526001600160a01b0390911690636f7bc9be9060240160e0604051808303816000875af1158015611fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc791906154fd565b602001516001600160a01b0316896001600160a01b03161461203b5760405162461bcd60e51b815260206004820152602760248201527f5265666572726572206d69736d6174636820666f72206578697374696e672069604482015266373b32b9ba37b960c91b6064820152608401610525565b600061209a8c8c8c8c60405180608001604052808e63ffffffff1663ffffffff1681526020018d63ffffffff1663ffffffff1681526020018c63ffffffff1663ffffffff1681526020018b63ffffffff1663ffffffff168152506139ae565b989c9a9b50979998505050505050505050565b60008080336001600160a01b038516036121095760405162461bcd60e51b815260206004820181905260248201527f596f752063616e6e6f7420626520796f7572206f776e207265666572726572216044820152606401610525565b6002546040516337bde4df60e11b81526001600160a01b0386811660048301526000921690636f7bc9be9060240160e0604051808303816000875af1158015612156573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217a91906154fd565b5163ffffffff16116121ce5760405162461bcd60e51b815260206004820152601b60248201527f4e6f20726566657272657220666f756e6420696e2073797374656d00000000006044820152606401610525565b6002546040516337bde4df60e11b81523360048201526000916001600160a01b031690636f7bc9be9060240160e0604051808303816000875af1158015612219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223d91906154fd565b5163ffffffff16111561232c576002546040516337bde4df60e11b81523360048201526001600160a01b0390911690636f7bc9be9060240160e0604051808303816000875af1158015612294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b891906154fd565b602001516001600160a01b0316846001600160a01b03161461232c5760405162461bcd60e51b815260206004820152602760248201527f5265666572726572206d69736d6174636820666f72206578697374696e672069604482015266373b32b9ba37b960c91b6064820152608401610525565b60006123f0600160009054906101000a90046001600160a01b03166001600160a01b031663fdaad9136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a89190615459565b6123bb906001600160801b031634615482565b6040805160808101825263ffffffff4216815260006020820181905291810182905260608101919091528890889033906139ae565b9050600160009054906101000a90046001600160a01b03166001600160a01b031663fdaad9136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124699190615459565b6001600160801b031660035461247f9190615495565b600355339690945092505050565b600080546501000000000090046001600160a01b031633146124e75760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b506000805464ffffffffff1916815590565b600080546501000000000090046001600160a01b031633146125535760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b506001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091555b919050565b730ef1380a6114ae398f163fb43d90fdc3bc1cf422600080826125a98560066154d2565b604051600081818185875af1925050503d80600081146125e5576040519150601f19603f3d011682016040523d82523d6000602084013e6125ea565b606091505b5091509150816126615760405162461bcd60e51b8152602060048201526024808201527f4665652066726f6d2063757272656e74206465706f736974206973206e6f742060448201527f73656e74000000000000000000000000000000000000000000000000000000006064820152608401610525565b50505050565b600080546501000000000090046001600160a01b031633146126c15760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b506000805460ff1916600190811790915590565b600080546501000000000090046001600160a01b0316331461272f5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216918217905590565b60015460405163dbac26e960e01b8152336004820152606091829182918291829182916001600160a01b039091169063dbac26e990602401602060405180830381865afa1580156127b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d8919061543e565b156127e257600080fd5b865167ffffffffffffffff8111156127fc576127fc614ba9565b604051908082528060200260200182016040528015612825578160200160208202803683370190505b509550865167ffffffffffffffff81111561284257612842614ba9565b60405190808252806020026020018201604052801561286b578160200160208202803683370190505b509450865167ffffffffffffffff81111561288857612888614ba9565b6040519080825280602002602001820160405280156128b1578160200160208202803683370190505b509350865167ffffffffffffffff8111156128ce576128ce614ba9565b6040519080825280602002602001820160405280156128f7578160200160208202803683370190505b509250865167ffffffffffffffff81111561291457612914614ba9565b60405190808252806020026020018201604052801561293d578160200160208202803683370190505b509150865167ffffffffffffffff81111561295a5761295a614ba9565b604051908082528060200260200182016040528015612983578160200160208202803683370190505b50905060005b87518161ffff161015612d36576000600460008b6001600160a01b03166001600160a01b0316815260200190815260200160002060020160008a8461ffff16815181106129d8576129d8615346565b602002602001015161ffff1661ffff168152602001908152602001600020600101541115612d2457600460008a6001600160a01b03166001600160a01b031681526020019081526020016000206002016000898361ffff1681518110612a4057612a40615346565b602002602001015161ffff1661ffff16815260200190815260200160002060000160009054906101000a900460ff16878261ffff1681518110612a8557612a85615346565b602002602001019060ff16908160ff1681525050600460008a6001600160a01b03166001600160a01b031681526020019081526020016000206002016000898361ffff1681518110612ad957612ad9615346565b602002602001015161ffff1661ffff16815260200190815260200160002060040160009054906101000a900463ffffffff16868261ffff1681518110612b2157612b21615346565b602002602001019063ffffffff16908163ffffffff1681525050600460008a6001600160a01b03166001600160a01b031681526020019081526020016000206002016000898361ffff1681518110612b7b57612b7b615346565b602002602001015161ffff1661ffff16815260200190815260200160002060010154858261ffff1681518110612bb357612bb3615346565b602002602001018181525050600460008a6001600160a01b03166001600160a01b031681526020019081526020016000206002016000898361ffff1681518110612bff57612bff615346565b602002602001015161ffff1661ffff16815260200190815260200160002060020154848261ffff1681518110612c3757612c37615346565b602002602001018181525050600460008a6001600160a01b03166001600160a01b031681526020019081526020016000206002016000898361ffff1681518110612c8357612c83615346565b602002602001015161ffff1661ffff16815260200190815260200160002060040160089054906101000a900460ff16828261ffff1681518110612cc857612cc8615346565b602002602001019015159081151581525050612d0189898361ffff1681518110612cf457612cf4615346565b6020026020010151612ec7565b838261ffff1681518110612d1757612d17615346565b6020026020010181815250505b80612d2e8161541d565b915050612989565b509295509295509295565b6000546501000000000090046001600160a01b03163314612d9a5760405162461bcd60e51b8152602060048201526013602482015272139bc81cdd59999a58da595b9d081c9a59da1d606a1b6044820152606401610525565b6001600160a01b038116612dad57600080fd5b600080546001600160a01b0390921665010000000000027fffffffffffffff0000000000000000000000000000000000000000ffffffffff909216919091179055565b60007fffffffffffffffffffffffffde315239d97a9e0f41768b94d9cd419d72eb76c63301612e3557506000805461ff00191661010090811791829055900460ff1690565b7fffffffffffffffffffffffffb4f4baabeb4e6720ac6c60c1915e7c90549d333e3301612e7a57506000805462ff000019166201000090811791829055900460ff1690565b7fffffffffffffffffffffffff4503530aefa4b4d9c462e1d60cab29c66e3815ea3301612ec157506000805463ff0000001916630100000090811791829055900460ff1690565b50600090565b600154604080516367b0c11560e01b815290516000926001600160a01b0316916367b0c1159160048083019260209291908290030181865afa158015612f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f359190615459565b6001600160a01b038416600090815260046020818152604080842061ffff881685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526001600160801b039190911690612fed906138ef565b106132c557600154604080516367b0c11560e01b815290516064926001600160a01b0316916367b0c1159160048083019260209291908290030181865afa15801561303c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130609190615459565b6001600160a01b038516600090815260046020818152604080842061ffff891685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526001600160801b039190911690613118906138ef565b61312291906154be565b6001600160a01b038516600090815260046020818152604080842061ffff891685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526131cd906138ef565b6131d79190615482565b6001546001600160a01b03868116600090815260046020818152604080842061ffff8b168552600201909152918290205491516374795f2960e11b815260ff9092169082015291169063e8f2be529060240160a060405180830381865afa158015613246573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061326a919061535c565b6020908101516001600160a01b038716600090815260048352604080822061ffff8916835260020190935291909120600601546132aa9160ff16906154d2565b6132b491906154d2565b6132be91906154e9565b9050611bf5565b50600092915050565b60008080805b6001600160a01b03851660009081526004602052604090205461ffff90811690821610156138ce57600160009054906101000a90046001600160a01b03166001600160a01b03166367b0c1156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561334f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133739190615459565b6001600160a01b038616600090815260046020818152604080842061ffff871685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526001600160801b03919091169061342b906138ef565b1015613438576000613704565b600154604080516367b0c11560e01b815290516064926001600160a01b0316916367b0c1159160048083019260209291908290030181865afa158015613482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a69190615459565b6001600160a01b038716600090815260046020818152604080842061ffff881685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e0830152600601546101008201526001600160801b03919091169061355e906138ef565b61356891906154be565b6001600160a01b038716600090815260046020818152604080842061ffff881685526002908101835293819020815161012081018352815460ff90811682526001830154948201949094529481015491850191909152600381015460608501529182015463ffffffff808216608086015264010000000082041660a0850152600160401b900416151560c0830152600581015460e083015260060154610100820152613613906138ef565b61361d9190615482565b6001546001600160a01b03888116600090815260046020818152604080842061ffff8a168552600201909152918290205491516374795f2960e11b815260ff9092169082015291169063e8f2be529060240160a060405180830381865afa15801561368c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b0919061535c565b6020908101516001600160a01b038916600090815260048352604080822061ffff8816835260020190935291909120600601546136f09160ff16906154d2565b6136fa91906154d2565b61370491906154e9565b6001600160a01b038616600090815260046020908152604080832061ffff861684526002908101909252909120600581019290925501546137459083615495565b6001600160a01b038616600090815260046020818152604080842061ffff871685526002019091529091200154909250600160401b900460ff16806137c557506001600160a01b038516600090815260046020818152604080842061ffff8616855260020190915290912001544264010000000090910463ffffffff1611155b15613856576001600160a01b038516600090815260046020818152604080842061ffff86168552600201909152909120908101805468ff00000000000000001916600160401b17905560068101546005909101546138239190615495565b6001600160a01b038616600090815260046020908152604080832061ffff8616845260020190915290206003015561388c565b6001600160a01b038516600090815260046020908152604080832061ffff85168452600201909152902060058101546003909101555b6001600160a01b038516600090815260046020908152604080832061ffff851684526002019091529020600301546138c49084615495565b92506001016132d4565b508082116138dd5760006138e7565b6138e78183615482565b949350505050565b60015481516040516374795f2960e11b815260ff90911660048201526000916001600160a01b03169063e8f2be529060240160a060405180830381865afa15801561393e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613962919061535c565b6080015163ffffffff16826080015163ffffffff168360a0015163ffffffff164210613998578360a0015163ffffffff1661399a565b425b6139a49190615482565b611bf591906154e9565b60006001600160a01b0383163314806139da57506000546501000000000090046001600160a01b031633145b613a265760405162461bcd60e51b815260206004820152600960248201527f4e6f2061636365737300000000000000000000000000000000000000000000006044820152606401610525565b6001546040516374795f2960e11b815260ff8716600482015287916001600160a01b03169063e8f2be529060240160a060405180830381865afa158015613a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a95919061535c565b606001511515600003613aea5760405162461bcd60e51b815260206004820152601960248201527f5468697320746172696666206973207475726e6564206f6666000000000000006044820152606401610525565b8615614723576002546040516337bde4df60e11b81526001600160a01b0386811660048301526000921690636f7bc9be9060240160e0604051808303816000875af1158015613b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b6191906154fd565b805190915063ffffffff16600003613c07576002546040517faa6773540000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015287811660248301529091169063aa6773549060440160e0604051808303816000875af1158015613be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0491906154fd565b90505b805160009063ffffffff1615801590613c26575060a082015115156001145b8015613c33575060ff8816155b825190915063ffffffff1615801590613c52575060a082015115156001145b8015613c5f575060ff8816155b15613cac5760405162461bcd60e51b815260206004820152601660248201527f39302064617973206465706f73697473206578697374000000000000000000006044820152606401610525565b600160009054906101000a90046001600160a01b03166001600160a01b031663e1e158a56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613cff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d239190615459565b6001600160801b0316891015613d7b5760405162461bcd60e51b815260206004820152601860248201527f4d696e696d616c206465706f73697420726571756972656400000000000000006044820152606401610525565b600160009054906101000a90046001600160a01b03166001600160a01b031663dd5967c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df29190615459565b6001600160801b031689111580613e945750600160009054906101000a90046001600160a01b03166001600160a01b031663c34c53f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e7b9190615459565b6001600160801b03168911158015613e94575060ff8816155b613ee05760405162461bcd60e51b815260206004820152601760248201527f4465706f736974206c696d6974206578636565646564210000000000000000006044820152606401610525565b6001546040516374795f2960e11b815260ff8a1660048201526001600160a01b039091169063e8f2be529060240160a060405180830381865afa158015613f2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4f919061535c565b60400151891115613fa25760405162461bcd60e51b815260206004820152601460248201527f4d6178206c696d697420666f72207461726966660000000000000000000000006044820152606401610525565b600054640100000000900460ff1615613fba57600080fd5b6000805464ff000000001916640100000000178155613fda60648b6154e9565b9050613fe581612585565b600160009054906101000a90046001600160a01b03166001600160a01b031663a6c455cc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614038573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061405c9190615459565b6001600160801b03161561411157600154604080517fa6c455cc00000000000000000000000000000000000000000000000000000000815290516064926001600160a01b03169163a6c455cc9160048083019260209291908290030181865afa1580156140cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140f19190615459565b614104906001600160801b0316866154d2565b61410e91906154e9565b93505b604080516101208101825260ff8b16808252602080830188905289015163ffffffff908116838501528984015181166060840152895116608083015260015483516374795f2960e11b815260048101929092529251919260a0808501936001600160a01b039092169263e8f2be5292602480830193928290030181865afa1580156141a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141c4919061535c565b5188516141d19190615401565b63ffffffff168152600060208201526040018760036020908102919091015163ffffffff1682529081018690526001600160a01b0389166000908152600490915260408120805460028201929161ffff909116908261422f8361541d565b825461ffff91821661010093840a908102908302199091161790925591168252602080830193909352604091820160009081208551815460ff91821660ff1990911617825594860151600182015592850151600284015560608501516003840155608085015160048401805460a088015160c08901511515600160401b0268ff00000000000000001963ffffffff9283166401000000000267ffffffffffffffff199094169290951691909117919091179290921691909117905560e085015160058401559301516006909101558a168103614309575060015b600154604080517f7968a7c800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691637968a7c89160048083019260209291908290030181865afa15801561436c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143909190615591565b60ff1611156144c9576000896001600160a01b03166064600160009054906101000a90046001600160a01b03166001600160a01b0316637968a7c86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156143fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061441e9190615591565b61442b9060ff168f6154d2565b61443591906154e9565b604051600081818185875af1925050503d8060008114614471576040519150601f19603f3d011682016040523d82523d6000602084013e614476565b606091505b50509050806144c75760405162461bcd60e51b815260206004820152600f60248201527f7061795f746f5f524546206661696c00000000000000000000000000000000006044820152606401610525565b505b6000805464ff00000000191690556002546040517fc25d361d0000000000000000000000000000000000000000000000000000000081526001600160a01b038a81166004830152602482018e90526044820188905283151560648301529091169063c25d361d90608401600060405180830381600087803b15801561454d57600080fd5b505af1158015614561573d6000803e3d6000fd5b50506001546040805163aa26d0ed60e01b81529051600094506001600160a01b03909216925063aa26d0ed9160048083019260209291908290030181865afa1580156145b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145d591906155ae565b6001600160a01b03161461471e576001546040516374795f2960e11b815260ff8c16600482015261471e918a916001600160a01b039091169063e8f2be529060240160a060405180830381865afa158015614634573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614658919061535c565b6020015160ff1661466a6064896154e9565b61467491906154d2565b6001600160801b03168960006020020151600160009054906101000a90046001600160a01b03166001600160a01b031663e8f2be528f60ff166040518263ffffffff1660e01b81526004016146cb91815260200190565b60a060405180830381865afa1580156146e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061470c919061535c565b518b516147199190615401565b614770565b505050505b60405160ff8716815281906001600160a01b038616907f06417103c5093d12990826b58599d5c19605dc971709b37d7df2b8ee67ff4e699060200160405180910390a39695505050505050565b6002546040516337bde4df60e11b81526001600160a01b0386811660048301526000921690636f7bc9be9060240160e0604051808303816000875af11580156147bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147e191906154fd565b805190915063ffffffff1615614b8d5760208101516001600160a01b03811615614b8b576002546040516337bde4df60e11b81526001600160a01b0383811660048301526000921690636f7bc9be9060240160e0604051808303816000875af1158015614852573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061487691906154fd565b9050600060058260c001516008811115614892576148926155cb565b60ff16116148a4578160c001516148a7565b60055b6001549091506001600160a01b031663fb2391fc8260088111156148cd576148cd6155cb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260ff9091166004820152602401602060405180830381865afa158015614923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149479190615591565b60ff1615614b88576001546040805163aa26d0ed60e01b815290516000926001600160a01b03169163aa26d0ed9160048083019260209291908290030181865afa158015614999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149bd91906155ae565b6001546001600160a01b03918216916378f12f72918a918a9189916003911663fb2391fc8960088111156149f3576149f36155cb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815260ff9091166004820152602401602060405180830381865afa158015614a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a6d9190615591565b60ff1660648f614a7d91906154e9565b614a8791906154d2565b614a9191906154e9565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16815263ffffffff94851660048201529290931660248301526001600160a01b031660448201526001600160801b0390911660648201526084016020604051808303816000875af1158015614b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b37919061543e565b905080614b865760405162461bcd60e51b815260206004820152601160248201527f426f6e7573206e6f7420616363727565640000000000000000000000000000006044820152606401610525565b505b50505b505b5050505050565b6001600160a01b0381168114611d5657600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715614be257614be2614ba9565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614c1157614c11614ba9565b604052919050565b600067ffffffffffffffff821115614c3357614c33614ba9565b5060051b60200190565b61ffff81168114611d5657600080fd5b600082601f830112614c5e57600080fd5b8135614c71614c6c82614c19565b614be8565b8082825260208201915060208360051b860101925085831115614c9357600080fd5b602085015b83811015614cb9578035614cab81614c3d565b835260209283019201614c98565b5095945050505050565b600080600060608486031215614cd857600080fd5b8335614ce381614b94565b9250602084013567ffffffffffffffff811115614cff57600080fd5b614d0b86828701614c4d565b9250506040840135614d1c81614b94565b809150509250925092565b600060208284031215614d3957600080fd5b8135614d4481614b94565b9392505050565b600081518084526020840193506020830160005b82811015614d8357815163ffffffff16865260209586019590910190600101614d5f565b5093949350505050565b600081518084526020840193506020830160005b82811015614d83578151865260209586019590910190600101614da1565b600081518084526020840193506020830160005b82811015614d835781511515865260209586019590910190600101614dd3565b60c08082528751908201819052600090602089019060e0840190835b81811015614e3057835160ff16835260209384019390920191600101614e0f565b50508381036020850152614e44818a614d4b565b9150508281036040840152614e598188614d8d565b90508281036060840152614e6d8187614d8d565b90508281036080840152614e818186614d8d565b905082810360a0840152614e958185614dbf565b9998505050505050505050565b60008060408385031215614eb557600080fd5b8235614ec081614b94565b91506020830135614ed081614c3d565b809150509250929050565b600060208284031215614eed57600080fd5b5035919050565b60ff81168114611d5657600080fd5b63ffffffff81168114611d5657600080fd5b600080600080600080600080610100898b031215614f3257600080fd5b883597506020890135614f4481614ef4565b96506040890135614f5481614b94565b95506060890135614f6481614b94565b94506080890135614f7481614f03565b935060a0890135614f8481614f03565b925060c0890135614f9481614f03565b915060e0890135614fa481614f03565b809150509295985092959890939650565b60008060408385031215614fc857600080fd5b8235614fd381614ef4565b91506020830135614ed081614b94565b60008060408385031215614ff657600080fd5b823561500181614b94565b9150602083013567ffffffffffffffff81111561501d57600080fd5b61502985828601614c4d565b9150509250929050565b600082601f83011261504457600080fd5b8151615052614c6c82614c19565b8082825260208201915060208360051b86010192508583111561507457600080fd5b602085015b83811015614cb957805161508c81614ef4565b835260209283019201615079565b600082601f8301126150ab57600080fd5b81516150b9614c6c82614c19565b8082825260208201915060208360051b8601019250858311156150db57600080fd5b602085015b83811015614cb95780516150f381614f03565b8352602092830192016150e0565b600082601f83011261511257600080fd5b8151615120614c6c82614c19565b8082825260208201915060208360051b86010192508583111561514257600080fd5b602085015b83811015614cb9578051835260209283019201615147565b8051801515811461258057600080fd5b600082601f83011261518057600080fd5b815161518e614c6c82614c19565b8082825260208201915060208360051b8601019250858311156151b057600080fd5b602085015b83811015614cb9576151c68161515f565b8352602092830192016151b5565b60008060008060008060c087890312156151ed57600080fd5b865167ffffffffffffffff81111561520457600080fd5b61521089828a01615033565b965050602087015167ffffffffffffffff81111561522d57600080fd5b61523989828a0161509a565b955050604087015167ffffffffffffffff81111561525657600080fd5b61526289828a01615101565b945050606087015167ffffffffffffffff81111561527f57600080fd5b61528b89828a01615101565b935050608087015167ffffffffffffffff8111156152a857600080fd5b6152b489828a01615101565b92505060a087015167ffffffffffffffff8111156152d157600080fd5b6152dd89828a0161516f565b9150509295509295509295565b6000604082016001600160a01b03851683526040602084015280845180835260608501915060208601925060005b8181101561533a57835161ffff16835260209384019390920191600101615318565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b600060a082840312801561536f57600080fd5b5060405160a0810167ffffffffffffffff8111828210171561539357615393614ba9565b60405282516153a181614f03565b815260208301516153b181614ef4565b6020820152604083810151908201526153cc6060840161515f565b606082015260808301516153df81614f03565b60808201529392505050565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8181168382160190811115611bf557611bf56153eb565b600061ffff821661ffff8103615435576154356153eb565b60010192915050565b60006020828403121561545057600080fd5b614d448261515f565b60006020828403121561546b57600080fd5b81516001600160801b0381168114614d4457600080fd5b81810381811115611bf557611bf56153eb565b80820180821115611bf557611bf56153eb565b634e487b7160e01b600052601260045260246000fd5b6000826154cd576154cd6154a8565b500690565b8082028115828204841417611bf557611bf56153eb565b6000826154f8576154f86154a8565b500490565b600060e082840312801561551057600080fd5b50600061551b614bbf565b835161552681614f03565b8152602084015161553681614b94565b6020820152604084015161554981614c3d565b6040820152606084810151908201526080808501519082015261556e60a0850161515f565b60a082015260c084015160098110615584578283fd5b60c0820152949350505050565b6000602082840312156155a357600080fd5b8151614d4481614ef4565b6000602082840312156155c057600080fd5b8151614d4481614b94565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220389b2da4a22b33f13260521caf9ef340ab0026466fcd2bd13c20990af69bed2764736f6c634300081a0033