0 txs
0 calls
constructor
constructor(address lockletTokenAddr)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getClaimByLockAndRecipient
viewfunction getClaimByLockAndRecipient(uint256 lockIndex, address recipientAddress) view returns (uint16, uint256)
getCreationFlatFeeLktAmount
viewfunction getCreationFlatFeeLktAmount() view returns (uint256)
getCreationPercentFee
viewfunction getCreationPercentFee() view returns (uint256)
getLock
viewfunction getLock(uint256 lockIndex) view returns (tuple)
getLocks
viewfunction getLocks(int256 page, int256 pageSize) view returns (tuple[])
getLocksByInitiator
viewfunction getLocksByInitiator(address initiatorAddress) view returns (tuple[])
getLocksByRecipient
viewfunction getLocksByRecipient(address recipientAddress) view returns (tuple[])
getLocksLength
viewfunction getLocksLength() view returns (uint256)
getRefundAmount
viewfunction getRefundAmount(address tokenAddress) view returns (uint256)
getRevocationFlatFeeLktAmount
viewfunction getRevocationFlatFeeLktAmount() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
GOVERNOR_ROLE
viewfunction GOVERNOR_ROLE() view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isDeprecated
viewfunction isDeprecated() view returns (bool)
lockletTokenAddress
viewfunction lockletTokenAddress() view returns (address)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addLock
nonpayablefunction addLock(address tokenAddress, uint256 totalAmount, uint16 cliffInDays, uint16 durationInDays, tuple[] recipientsData, bool isRevocable, bool payFeesWithLkt)
claimLockedTokens
nonpayablefunction claimLockedTokens(uint256 lockIndex)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
pullRefund
nonpayablefunction pullRefund(address tokenAddress)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeLock
nonpayablefunction revokeLock(uint256 lockIndex)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setCreationFlatFeeLktAmount
nonpayablefunction setCreationFlatFeeLktAmount(uint256 amount)
setCreationPercentFee
nonpayablefunction setCreationPercentFee(uint256 amount)
setDeprecated
nonpayablefunction setDeprecated(bool deprecated)
setRevocationFlatFeeLktAmount
nonpayablefunction setRevocationFlatFeeLktAmount(uint256 amount)
setStakersRedisAddress
nonpayablefunction setStakersRedisAddress(address addr)
unpause
nonpayablefunction unpause()
events
LockAdded
event LockAdded(uint256 indexed lockIndex)
LockedTokensClaimed
event LockedTokensClaimed(uint256 indexed lockIndex, address indexed recipientAddress, uint256 claimedAmount)
LockRefundPulled
event LockRefundPulled(address indexed recipientAddress, address indexed tokenAddress, uint256 refundedAmount)
LockRevoked
event LockRevoked(uint256 indexed lockIndex, uint256 unlockedAmount, uint256 remainingLockedAmount)
Paused
event Paused(address account)
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)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200461438038062004614833981016040819052620000349162000194565b6001805460ff19168155600255600380546001600160a01b0383166001600160a01b03199182161790915560006004819055600a8054909216909155600b80546001600160a81b0319167325bd291be258e90e7a0648ac5c690555aa9e8930179055600c819055600d819055600e819055620000b19033620000e4565b620000dd7f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5533620000e4565b50620001c4565b620000f08282620000f4565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000f0576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001503390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600060208284031215620001a6578081fd5b81516001600160a01b0381168114620001bd578182fd5b9392505050565b61444080620001d46000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80638456cb591161010f578063c369b89a116100a2578063d120ed5611610071578063d120ed5614610494578063d547741f146104a7578063d68f4dd1146104ba578063d848dee7146104da576101f0565b8063c369b89a14610416578063c71782301461041e578063ccc5749014610442578063cfcc64a214610469576101f0565b8063ac7a87fa116100de578063ac7a87fa146103d5578063ad8d3856146103dd578063b9b3b8a9146103f0578063bff0156814610403576101f0565b80638456cb591461037b5780638df8123e1461038357806391d1485414610396578063a217fddf146103cd576101f0565b80633f4ba83a116101875780635d306f34116101565780635d306f341461030c57806369a554631461034257806375e116931461035557806378aeee4714610368576101f0565b80633f4ba83a146102c4578063489c18b0146102cc57806351cb12b6146102d45780635c975abb14610301576101f0565b80632f2ff15d116101c35780632f2ff15d1461028157806336568abe14610296578063379ec855146102a95780633aab80d4146102bc576101f0565b806301ffc9a7146101f55780631c331b671461021d578063248a9ca31461023d57806324e3ad891461026e575b600080fd5b610208610203366004613f36565b6104ed565b60405190151581526020015b60405180910390f35b61023061022b366004613dd4565b610588565b60405161021491906140c3565b61026061024b366004613ef3565b60009081526020819052604090206001015490565b604051908152602001610214565b61023061027c366004613f76565b610778565b61029461028f366004613f0b565b610a33565b005b6102946102a4366004613f0b565b610ad0565b6102306102b7366004613dd4565b610b58565b600e54610260565b610294610d3b565b600554610260565b6102e76102e2366004613f0b565b610de9565b6040805161ffff9093168352602083019190915201610214565b60015460ff16610208565b61026061031a366004613dd4565b3360009081526009602090815260408083206001600160a01b03949094168352929052205490565b610294610350366004613ef3565b610f68565b610294610363366004613dee565b611011565b610294610376366004613ef3565b6120f4565b61029461219d565b610294610391366004613ef3565b612249565b6102086103a4366004613f0b565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610260600081565b600c54610260565b6102946103eb366004613dd4565b612b57565b6102946103fe366004613ef3565b612c8b565b610294610411366004613dd4565b612d86565b600d54610260565b610208600b5474010000000000000000000000000000000000000000900460ff1690565b6102607f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f5581565b60035461047c906001600160a01b031681565b6040516001600160a01b039091168152602001610214565b6102946104a2366004613ef3565b613022565b6102946104b5366004613f0b565b613517565b6104cd6104c8366004613ef3565b6135a4565b6040516102149190614142565b6102946104e8366004613ebb565b613836565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061058057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b90505b919050565b6001600160a01b0381166000908152600760205260409020546060908061061c5760405162461bcd60e51b815260206004820152602c60248201527f4c6f636b6c6574546f6b656e5661756c743a2054686520696e69746961746f7260448201527f20686173206e6f206c6f636b000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008167ffffffffffffffff81111561064557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156106d557816020015b6106c26040805160608082018352600080835283516101008101855281815260208181018390529481018290529182018190526080820181905260a0820181905260c0820181905260e082015290918201908152602001606081525090565b8152602001906001900390816106635790505b50905060005b82811015610770576001600160a01b038516600090815260076020526040812080548390811061071b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050610731816135a4565b83838151811061075157634e487b7160e01b600052603260045260246000fd5b6020026020010181905250508080610768906143c8565b9150506106db565b509392505050565b6060600061078560055490565b116107f85760405162461bcd60e51b815260206004820152602360248201527f4c6f636b6c6574546f6b656e5661756c743a205468657265206973206e6f206c60448201527f6f636b00000000000000000000000000000000000000000000000000000000006064820152608401610613565b600061082060016108148561081a610810828a613924565b6005545b90613937565b90613943565b905060008112156108735760405162461bcd60e51b815260206004820181905260248201527f4c6f636b6c6574546f6b656e5661756c743a204f7574206f6620626f756e64736044820152606401610613565b6000610884600161081a8487613937565b90506000811215610893575060005b816108a860016108a260055490565b9061394f565b8111156108f75760405162461bcd60e51b815260206004820181905260248201527f4c6f636b6c6574546f6b656e5661756c743a204f7574206f6620626f756e64736044820152606401610613565b60008567ffffffffffffffff81111561092057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156109b057816020015b61099d6040805160608082018352600080835283516101008101855281815260208181018390529481018290529182018190526080820181905260a0820181905260c0820181905260e082015290918201908152602001606081525090565b81526020019060019003908161093e5790505b50905060005b838312610a2857826109cc60016108a260055490565b8111610a07576109db816135a4565b8383815181106109fb57634e487b7160e01b600052603260045260246000fd5b60200260200101819052505b81610a11816143c8565b925050508280610a209061438e565b9350506109b6565b509695505050505050565b600082815260208190526040902060010154610a50905b336103a4565b610ac25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201527f2061646d696e20746f206772616e7400000000000000000000000000000000006064820152608401610613565b610acc828261395b565b5050565b6001600160a01b0381163314610b4e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610613565b610acc82826139f9565b6001600160a01b03811660009081526008602052604090205460609080610be75760405162461bcd60e51b815260206004820152602c60248201527f4c6f636b6c6574546f6b656e5661756c743a2054686520726563697069656e7460448201527f20686173206e6f206c6f636b00000000000000000000000000000000000000006064820152608401610613565b60008167ffffffffffffffff811115610c1057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ca057816020015b610c8d6040805160608082018352600080835283516101008101855281815260208181018390529481018290529182018190526080820181905260a0820181905260c0820181905260e082015290918201908152602001606081525090565b815260200190600190039081610c2e5790505b50905060005b82811015610770576001600160a01b0385166000908152600860205260408120805483908110610ce657634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050610cfc816135a4565b838381518110610d1c57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250508080610d33906143c8565b915050610ca6565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff16610ddf5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b610de7613a78565b565b600080600060058581548110610e0f57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060030160189054906101000a900460ff1615156001151514610ea95760405162461bcd60e51b8152602060048201526024808201527f4c6f636b6c6574546f6b656e5661756c743a204c6f636b206e6f74206578697360448201527f74696e67000000000000000000000000000000000000000000000000000000006064820152608401610613565b600085815260066020526040812090610ec28287613b14565b9050806000191415610f165760405162461bcd60e51b815260206004820152601c60248201527f4c6f636b6c6574546f6b656e5661756c743a20466f7262696464656e000000006044820152606401610613565b6000828281548110610f3857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502019050600080610f558684613b88565b90985096505050505050505b9250929050565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff1661100c5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b600c55565b6002805414156110635760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610613565b6002805560015460ff16156110ba5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610613565b600b5474010000000000000000000000000000000000000000900460ff161561114b5760405162461bcd60e51b815260206004820152603d60248201527f4c6f636b6c6574546f6b656e5661756c743a20546869732076657273696f6e2060448201527f6f662074686520636f6e747261637420697320646570726563617465640000006064820152608401610613565b873b6111bf5760405162461bcd60e51b815260206004820152603260248201527f4c6f636b6c6574546f6b656e5661756c743a20546f6b656e206164647265737360448201527f206973206e6f74206120636f6e747261637400000000000000000000000000006064820152608401610613565b87876112335760405162461bcd60e51b815260206004820152603460248201527f4c6f636b6c6574546f6b656e5661756c743a2054686520746f74616c20616d6f60448201527f756e7420697320657175616c20746f207a65726f0000000000000000000000006064820152608401610613565b81156117e157600061124d6003546001600160a01b031690565b600c549091501561162d57600c546040517f70a082310000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038316906370a082319060240160206040518083038186803b1580156112b357600080fd5b505afa1580156112c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112eb9190613f97565b101561135f5760405162461bcd60e51b815260206004820152602d60248201527f4c6f636b6c6574546f6b656e5661756c743a204e6f7420656e6f756768204c4b60448201527f5420746f207061792066656573000000000000000000000000000000000000006064820152608401610613565b600c546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101919091526001600160a01b038216906323b872dd90606401602060405180830381600087803b1580156113ca57600080fd5b505af11580156113de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114029190613ed7565b61140b57600080fd5b600061142e6064611428602d600c54613cf690919063ffffffff16565b90613d02565b9050600061144d6064611428602d600c54613cf690919063ffffffff16565b9050600061146c6064611428600a600c54613cf690919063ffffffff16565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018590529091506001600160a01b038516906342966c6890602401602060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115029190613ed7565b61150b57600080fd5b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529085169063a9059cbb90604401602060405180830381600087803b15801561155957600080fd5b505af115801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190613ed7565b61159a57600080fd5b600b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529085169063a9059cbb90604401602060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116209190613ed7565b61162957600080fd5b5050505b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015289906001600160a01b038416906370a082319060240160206040518083038186803b15801561168757600080fd5b505afa15801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf9190613f97565b10156117335760405162461bcd60e51b815260206004820152602d60248201527f4c6f636b6c6574546f6b656e5661756c743a20546f6b656e20696e737566666960448201527f6369656e742062616c616e6365000000000000000000000000000000000000006064820152608401610613565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018a90526001600160a01b038316906323b872dd90606401602060405180830381600087803b15801561179a57600080fd5b505af11580156117ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d29190613ed7565b6117db57600080fd5b50611b19565b600e546000901561180a57611807612710611428600e548c613cf690919063ffffffff16565b90505b60006118168a83613d0e565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015290915081906001600160a01b038516906370a082319060240160206040518083038186803b15801561187357600080fd5b505afa158015611887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ab9190613f97565b101561191f5760405162461bcd60e51b815260206004820152602d60248201527f4c6f636b6c6574546f6b656e5661756c743a20546f6b656e20696e737566666960448201527f6369656e742062616c616e6365000000000000000000000000000000000000006064820152608401610613565b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018290526001600160a01b038416906323b872dd90606401602060405180830381600087803b15801561198657600080fd5b505af115801561199a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119be9190613ed7565b6119c757600080fd5b8115611b165760006119df606461142885605a613cf6565b905060006119f3606461142886600a613cf6565b600a5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291925086169063a9059cbb90604401602060405180830381600087803b158015611a4357600080fd5b505af1158015611a57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7b9190613ed7565b611a8457600080fd5b600b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529086169063a9059cbb90604401602060405180830381600087803b158015611ad257600080fd5b505af1158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a9190613ed7565b611b1357600080fd5b50505b50505b600454611b27816001613d0e565b60045560408051610100810182524281526001600160a01b038c1660208201526000918101611b6c611b6061ffff8d16620151806142b9565b62ffffff164290613d0e565b81526020018961ffff168152602001336001600160a01b0316815260200160018a61ffff1611611b9d576000611b9f565b865b151581526000602080830182905260016040938401819052600580548083018255908452855160049091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0810191909155858301517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1820180546001600160a01b039283167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055868601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db283015560608701517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db39092018054608089015160a08a015160c08b015160e08c015115157801000000000000000000000000000000000000000000000000027fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff91151577010000000000000000000000000000000000000000000000027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff93151576010000000000000000000000000000000000000000000002939093167fffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff9490971662010000027fffffffffffffffffffff0000000000000000000000000000000000000000000090951661ffff909816979097179390931791909116939093179290921791909116919091179055338352600782529282208054938401815582528120909101849055909150805b8781101561201a5736898983818110611e0a57634e487b7160e01b600052603260045260246000fd5b90506040020190506000611e2f8c61ffff168360200135613d0290919063ffffffff16565b905060008111611ea75760405162461bcd60e51b815260206004820152603f60248201527f4c6f636b6c6574546f6b656e5661756c743a2054686520756e6c6f636b65642060448201527f616d6f756e74207065722064617920697320657175616c20746f207a65726f006064820152608401610613565b611eb5846020840135613d0e565b6040805160a0810190915290945060009080611ed46020860186613dd4565b6001600160a01b0316815260200184602001358152602001600061ffff1681526020016000815260200160011515815250905060086000846000016020810190611f1e9190613dd4565b6001600160a01b03908116825260208083019390935260409182016000908120805460018082018355918352858320018c90558b8252600685528382208054808301825590835291859020865160059093020180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169290931691909117825592840151928101929092558201516002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff909216919091179055606082015160038201556080909101516004909101805460ff191691151591909117905550819050612012816143c8565b915050611de1565b508a81146120b65760405162461bcd60e51b815260206004820152605660248201527f4c6f636b6c6574546f6b656e5661756c743a205468652063616c63756c61746560448201527f6420746f74616c20616d6f756e74206973206e6f7420657175616c20746f207460648201527f68652061637475616c20746f74616c20616d6f756e7400000000000000000000608482015260a401610613565b60405183907fae9e637442f959c48afe81f07e36a2c8be92a4cd09d5fb9a832755c98c96689790600090a25050600160025550505050505050505050565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff166121985760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b600d55565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff166122415760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b610de7613d1a565b60028054141561229b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610613565b6002805560015460ff16156122f25760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610613565b60006005828154811061231557634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060030160189054906101000a900460ff16151560011515146123af5760405162461bcd60e51b8152602060048201526024808201527f4c6f636b6c6574546f6b656e5661756c743a204c6f636b206e6f74206578697360448201527f74696e67000000000000000000000000000000000000000000000000000000006064820152608401610613565b60038101546201000090046001600160a01b031633146124115760405162461bcd60e51b815260206004820152601c60248201527f4c6f636b6c6574546f6b656e5661756c743a20466f7262696464656e000000006044820152606401610613565b6003810154760100000000000000000000000000000000000000000000900460ff1615156001146124aa5760405162461bcd60e51b815260206004820152602560248201527f4c6f636b6c6574546f6b656e5661756c743a204c6f636b206e6f74207265766f60448201527f6361626c650000000000000000000000000000000000000000000000000000006064820152608401610613565b600381015477010000000000000000000000000000000000000000000000900460ff16156125405760405162461bcd60e51b815260206004820152603560248201527f4c6f636b6c6574546f6b656e5661756c743a2054686973206c6f636b2068617360448201527f20616c7265616479206265656e207265766f6b656400000000000000000000006064820152608401610613565b6003810180547fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff1677010000000000000000000000000000000000000000000000179055600d54156129745760006125a06003546001600160a01b031690565b600d546040517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152919250906001600160a01b038316906370a082319060240160206040518083038186803b1580156125ff57600080fd5b505afa158015612613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126379190613f97565b10156126ab5760405162461bcd60e51b815260206004820152602d60248201527f4c6f636b6c6574546f6b656e5661756c743a204e6f7420656e6f756768204c4b60448201527f5420746f207061792066656573000000000000000000000000000000000000006064820152608401610613565b600d546040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101919091526001600160a01b038216906323b872dd90606401602060405180830381600087803b15801561271657600080fd5b505af115801561272a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274e9190613ed7565b61275757600080fd5b60006127746064611428602d600d54613cf690919063ffffffff16565b905060006127936064611428602d600d54613cf690919063ffffffff16565b905060006127b26064611428600a600d54613cf690919063ffffffff16565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018590529091506001600160a01b038516906342966c6890602401602060405180830381600087803b15801561281057600080fd5b505af1158015612824573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128489190613ed7565b61285157600080fd5b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529085169063a9059cbb90604401602060405180830381600087803b15801561289f57600080fd5b505af11580156128b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d79190613ed7565b6128e057600080fd5b600b5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529085169063a9059cbb90604401602060405180830381600087803b15801561292e57600080fd5b505af1158015612942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129669190613ed7565b61296f57600080fd5b505050505b60008281526006602052604081206001830154600384015491926001600160a01b03918216926201000090049091169080805b8554811015612aa45760008682815481106129d257634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020190506129f9816001015485613d0e90919063ffffffff16565b9350600080612a088a84613b88565b90925090508015612a725782546001600160a01b039081166000818152600960209081526040808320948d1683529390529190912054612a489083613d0e565b6001600160a01b039182166000908152600960209081526040808320948d16835293905291909120555b6003830154612a8c90612a859083613d0e565b8690613d0e565b94505050508080612a9c906143c8565b9150506129a7565b506000612ab1838361394f565b6001600160a01b038086166000908152600960209081526040808320938a1683529290522054909150612ae49082613d0e565b6001600160a01b038581166000908152600960209081526040808320938a1683529281529082902092909255805184815291820183905289917f1b4338dedabe0dd7bb023807b0754e50a84ff4769a658679c739104ecddc3172910160405180910390a250506001600255505050505050565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff16612bfb5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b6001600160a01b038116612c515760405162461bcd60e51b815260206004820181905260248201527f4c6f636b6c6574546f6b656e5661756c743a20496e76616c69642076616c75656044820152606401610613565b600a80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff16612d2f5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b612710811115612d815760405162461bcd60e51b815260206004820181905260248201527f4c6f636b6c6574546f6b656e5661756c743a20496e76616c69642076616c75656044820152606401610613565b600e55565b600280541415612dd85760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610613565b6002805560015460ff1615612e2f5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610613565b3360009081526009602090815260408083206001600160a01b038516845290915290205480612ec65760405162461bcd60e51b815260206004820152603160248201527f4c6f636b6c6574546f6b656e5661756c743a204e6f20726566756e6420666f7560448201527f6e6420666f72207468697320746f6b656e0000000000000000000000000000006064820152608401610613565b3360008181526009602090815260408083206001600160a01b038716808552925280832092909255905163a9059cbb60e01b8152600481019290925260248201839052839163a9059cbb90604401602060405180830381600087803b158015612f2e57600080fd5b505af1158015612f42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f669190613ed7565b612fd85760405162461bcd60e51b815260206004820152603060248201527f4c6f636b6c6574546f6b656e5661756c743a20526566756e6420746f6b656e7360448201527f207472616e73666572206661696c6564000000000000000000000000000000006064820152608401610613565b6040518281526001600160a01b0384169033907f5efeddcbae8eaffd5daf093c7d7873f1ddf12a977609e5708728596036943c3a9060200160405180910390a35050600160025550565b6002805414156130745760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610613565b6002805560015460ff16156130cb5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610613565b6000600582815481106130ee57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060030160189054906101000a900460ff16151560011515146131885760405162461bcd60e51b8152602060048201526024808201527f4c6f636b6c6574546f6b656e5661756c743a204c6f636b206e6f74206578697360448201527f74696e67000000000000000000000000000000000000000000000000000000006064820152608401610613565b600381015477010000000000000000000000000000000000000000000000900460ff161561321e5760405162461bcd60e51b815260206004820152602d60248201527f4c6f636b6c6574546f6b656e5661756c743a2054686973206c6f636b2068617360448201527f206265656e207265766f6b6564000000000000000000000000000000000000006064820152608401610613565b6000828152600660205260408120906132378233613b14565b905080600019141561328b5760405162461bcd60e51b815260206004820152601c60248201527f4c6f636b6c6574546f6b656e5661756c743a20466f7262696464656e000000006044820152606401610613565b60008282815481106132ad57634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020190506000806132ca8684613b88565b9092509050806133685760405162461bcd60e51b815260206004820152604160248201527f4c6f636b6c6574546f6b656e5661756c743a2054686520616d6f756e74206f6660448201527f20756e6c6f636b656420746f6b656e7320697320657175616c20746f207a657260648201527f6f00000000000000000000000000000000000000000000000000000000000000608482015260a401610613565b600283015461337f9061ffff908116908416613d0e565b6002840180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff9290921691909117905560038301546133c39082613d0e565b60038401556001860154835460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052911690819063a9059cbb90604401602060405180830381600087803b15801561341b57600080fd5b505af115801561342f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134539190613ed7565b6134c55760405162461bcd60e51b815260206004820152603260248201527f4c6f636b6c6574546f6b656e5661756c743a20556e6c6f636b656420746f6b6560448201527f6e73207472616e73666572206661696c656400000000000000000000000000006064820152608401610613565b83546040518381526001600160a01b039091169089907fa16e441b8abf03a5884ba01f9212fdb767480542312a70ee2db2122c07fa9ce99060200160405180910390a350506001600255505050505050565b60008281526020819052604090206001015461353290610a4a565b610b4e5760405162461bcd60e51b815260206004820152603060248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201527f2061646d696e20746f207265766f6b65000000000000000000000000000000006064820152608401610613565b6136036040805160608082018352600080835283516101008101855281815260208181018390529481018290529182018190526080820181905260a0820181905260c0820181905260e082015290918201908152602001606081525090565b60006005838154811061362657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060030160189054906101000a900460ff16151560011515146136c05760405162461bcd60e51b8152602060048201526024808201527f4c6f636b6c6574546f6b656e5661756c743a204c6f636b206e6f74206578697360448201527f74696e67000000000000000000000000000000000000000000000000000000006064820152608401610613565b60408051606080820183528582528251610100810184528454815260018501546001600160a01b03908116602083810191909152600287015483870152600387015461ffff811694840194909452620100008404909116608083015260ff76010000000000000000000000000000000000000000000084048116151560a08401527701000000000000000000000000000000000000000000000084048116151560c08401527801000000000000000000000000000000000000000000000000909304909216151560e082015281830152600086815260068252838120805485518185028101850187528181529495860194939192909184015b828210156138295760008481526020908190206040805160a0810182526005860290920180546001600160a01b0316835260018082015484860152600282015461ffff1692840192909252600381015460608401526004015460ff161515608083015290835290920191016137b9565b5050509152509392505050565b3360009081527f6f3b488caa0dc03e5f3d9fd6a25fa8755afcfd62ccffb6e436c696bfa6b866de602052604090205460ff166138da5760405162461bcd60e51b815260206004820152602b60248201527f4c6f636b6c6574546f6b656e5661756c743a2043616c6c6572206973206e6f7460448201527f206120474f5645524e4f520000000000000000000000000000000000000000006064820152608401610613565b600b805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60006139308284614201565b9392505050565b60006139308284614303565b60006139308284614155565b60006139308284614377565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610acc576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556139b53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610acc576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60015460ff16613aca5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610613565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000600019815b845481101561077057836001600160a01b0316858281548110613b4e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600590910201546001600160a01b03161415613b7657809150610770565b80613b80816143c8565b915050613b1b565b6000808260010154836003015410613c2e5760405162461bcd60e51b815260206004820152604760248201527f4c6f636b6c6574546f6b656e5661756c743a2054686520726563697069656e7460448201527f2068617320616c726561647920636c61696d656420746865206d6178696d756d60648201527f20616d6f756e7400000000000000000000000000000000000000000000000000608482015260a401610613565b6002840154421015613c4557506000905080610f61565b6000613c5d6201518061142887600201546108a24290565b600386015490915061ffff168110613ca1576000613c8c8560030154866001015461394f90919063ffffffff16565b600387015461ffff1694509250610f61915050565b6002840154600090613cb890839061ffff1661394f565b60038701546001870154919250600091613cd59161ffff16613d02565b90506000613ce761ffff841683613cf6565b929550919350610f6192505050565b600061393082846142e4565b600061393082846141e1565b600061393082846141c9565b60015460ff1615613d6d5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610613565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833613af7565b80356001600160a01b038116811461058357600080fd5b8035610583816143f9565b803561ffff8116811461058357600080fd5b600060208284031215613de5578081fd5b61393082613da0565b60008060008060008060008060e0898b031215613e09578384fd5b613e1289613da0565b975060208901359650613e2760408a01613dc2565b9550613e3560608a01613dc2565b9450608089013567ffffffffffffffff80821115613e51578586fd5b818b0191508b601f830112613e64578586fd5b813581811115613e72578687fd5b8c60208260061b8501011115613e86578687fd5b602083019650809550505050613e9e60a08a01613db7565b9150613eac60c08a01613db7565b90509295985092959890939650565b600060208284031215613ecc578081fd5b8135613930816143f9565b600060208284031215613ee8578081fd5b8151613930816143f9565b600060208284031215613f04578081fd5b5035919050565b60008060408385031215613f1d578182fd5b82359150613f2d60208401613da0565b90509250929050565b600060208284031215613f47578081fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114613930578182fd5b60008060408385031215613f88578182fd5b50508035926020909101359150565b600060208284031215613fa8578081fd5b5051919050565b6000815180845260208085019450808401835b8381101561401757815180516001600160a01b03168852838101518489015260408082015161ffff16908901526060808201519089015260809081015115159088015260a09096019590820190600101613fc2565b509495945050505050565b60006101408251845260208301518051602086015260208101516001600160a01b0380821660408801526040830151606088015261ffff60608401511660808801528060808401511660a0880152505060a081015161408560c087018215159052565b5060c081015180151560e08701525060e00151801515610100860152506040830151816101208601526140ba82860182613faf565b95945050505050565b6000602080830181845280855180835260408601915060408160051b8701019250838701855b82811015614135577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614123858351614022565b945092850192908501906001016140e9565b5092979650505050505050565b6000602082526139306020830184614022565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0384138115161561418f5761418f6143e3565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156141c3576141c36143e3565b50500190565b600082198211156141dc576141dc6143e3565b500190565b6000826141fc57634e487b7160e01b81526012600452602481fd5b500490565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81841382841385830485118282161615614240576142406143e3565b7f80000000000000000000000000000000000000000000000000000000000000008487128682058812818416161561427a5761427a6143e3565b858712925087820587128484161615614295576142956143e3565b878505871281841616156142ab576142ab6143e3565b505050929093029392505050565b600062ffffff808316818516818304811182151516156142db576142db6143e3565b02949350505050565b60008160001904831182151516156142fe576142fe6143e3565b500290565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561433d5761433d6143e3565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018313811615614371576143716143e3565b50500390565b600082821015614389576143896143e3565b500390565b60007f80000000000000000000000000000000000000000000000000000000000000008214156143c0576143c06143e3565b506000190190565b60006000198214156143dc576143dc6143e3565b5060010190565b634e487b7160e01b600052601160045260246000fd5b801515811461440757600080fd5b5056fea264697066735822122079a29f1c5e689cef6866b9bfcfc32a00fc17a0cee4da0f04f384bac27c7f093364736f6c63430008030033000000000000000000000000de8fa069707b6322ad45d001425b617f4f1930bd