0 txs
1 call
constructor
constructor(address _token, address _refundToken, address _refundReserve, address _feeReserve, uint256 _tge, uint256 _cliff, uint256 _durationInSec, uint256 _periodInSeconds, uint256 _refundPeriod)
functions
airdropAllowed
viewfunction airdropAllowed() view returns (bool)
airdropFee
viewfunction airdropFee() view returns (uint256)
AIRDROPPER
viewfunction AIRDROPPER() view returns (bytes32)
canRequestAirdrop
viewfunction canRequestAirdrop() view returns (bool)
canRequestAirdropOf
viewfunction canRequestAirdropOf(address _user) view returns (bool)
canRequestRefund
viewfunction canRequestRefund() view returns (bool)
canRequestRefundOf
viewfunction canRequestRefundOf(address _account) view returns (bool)
checkUpkeep
viewfunction checkUpkeep(bytes) view returns (bool upkeepNeeded, bytes performData)
claimableOf
viewfunction claimableOf(address _account) view returns (uint256)
claimedOf
viewfunction claimedOf(address _account) view returns (uint256)
claimFee
viewfunction claimFee() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
feeReserve
viewfunction feeReserve() view returns (address)
getAutoAirdropNumber
viewfunction getAutoAirdropNumber() view returns (uint256)
getAutoAirdrops
viewfunction getAutoAirdrops(uint256 _start, uint256 _end) view returns (address[])
getRefundeeNumber
viewfunction getRefundeeNumber() view returns (uint256)
getRefundees
viewfunction getRefundees(uint256 _start, uint256 _end) view returns (address[])
getReleaser
viewfunction getReleaser() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenAddress
viewfunction getTokenAddress() view returns (address)
getTotalShares
viewfunction getTotalShares() view returns (uint256)
hasRequestedRefund
viewfunction hasRequestedRefund(address _account) view returns (bool)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
paused
viewfunction paused() view returns (bool)
refundPeriod
viewfunction refundPeriod() view returns (uint256)
refundReserve
viewfunction refundReserve() view returns (address)
refundToken
viewfunction refundToken() view returns (address)
shares
viewfunction shares(address account) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tge
viewfunction tge() view returns (uint256)
totalClaimableOf
viewfunction totalClaimableOf(address _account) view returns (uint256)
addAirdrop
nonpayablefunction addAirdrop(address _account)
addShares
nonpayablefunction addShares(address _account, uint256 _amount)
addVestingInstances
nonpayablefunction addVestingInstances(uint256[] unlockTimes, uint256[] percents)
airdrop
nonpayablefunction airdrop(address[] _accounts)
autoAirdrop
nonpayablefunction autoAirdrop()
batchAddAirdrops
nonpayablefunction batchAddAirdrops(address[] _accounts)
batchAddShares
nonpayablefunction batchAddShares(address[] _accounts, uint256[] _shares_)
batchRemoveAirdrops
nonpayablefunction batchRemoveAirdrops(address[] _accounts)
batchRemoveShares
nonpayablefunction batchRemoveShares(address[] _accounts)
batchSetShares
nonpayablefunction batchSetShares(address[] _accounts, uint256[] _shares_)
claim
payablefunction claim() payable
claimTo
payablefunction claimTo(address _receiver) payable
deployReleaser
nonpayablefunction deployReleaser(uint256 _cliff, uint256 _durationInSec, uint256 _periodInSeconds) returns (address newReleaserAddress)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(uint256 _amount, bool _fromReleaser)
getRefund
nonpayablefunction getRefund()
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
performUpkeep
nonpayablefunction performUpkeep(bytes)
refundUsers
nonpayablefunction refundUsers(address[] _accounts)
removeAirdrop
nonpayablefunction removeAirdrop(address _account)
removeShares
nonpayablefunction removeShares(address _account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
replaceWallet
nonpayablefunction replaceWallet(address _oldWallet, address _newWallet)
requestAirdrop
nonpayablefunction requestAirdrop()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAirdropFee
nonpayablefunction setAirdropFee(uint256 _fee)
setAirdropStatus
nonpayablefunction setAirdropStatus(bool _allowed)
setClaimFee
nonpayablefunction setClaimFee(uint256 _fee)
setFeeReserve
nonpayablefunction setFeeReserve(address _feeReserve)
setRefundPeriod
nonpayablefunction setRefundPeriod(uint256 _refundPeriod)
setRefundReserve
nonpayablefunction setRefundReserve(address _refundReserve)
setShares
nonpayablefunction setShares(address _account, uint256 shares_)
unpause
nonpayablefunction unpause()
updateIterationNumber
nonpayablefunction updateIterationNumber(uint256 iteration)
updateReleaser
nonpayablefunction updateReleaser(address _releaser)
updateTimes
nonpayablefunction updateTimes(uint256 _tge, uint256 _cliff, uint256 _durationInSec, uint256 _periodInSeconds)
withdrawAccidentalTokens
nonpayablefunction withdrawAccidentalTokens(address _token, address _to, uint256 _amount)
events
Airdropped
event Airdropped(address to, uint256 amount)
Claimed
event Claimed(address account, uint256 amount)
PartialClaimed
event PartialClaimed(address indexed account, uint256 amount, uint256 percentageBasisPoints)
Paused
event Paused(address account)
PaymentReleased
event PaymentReleased(address to, uint256 amount)
Refunded
event Refunded(address account, uint256 amount)
RefundRequested
event RefundRequested(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)
SharesAdded
event SharesAdded(address account, uint256 amount)
SharesUpdated
event SharesUpdated(address account, uint256 newShares)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60a060405260326015553480156200001657600080fd5b506040516200751e3803806200751e83398101604081905262000039916200071c565b6000805460ff1916905560016002558888888888888888886001600160a01b038916620000ad5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e20616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b6001600160a01b038716620001175760405162461bcd60e51b815260206004820152602960248201527f526566756e6420726573657276652063616e6e6f7420626520746865207a65726044820152686f206164647265737360b81b6064820152608401620000a4565b6001600160a01b0386166200017e5760405162461bcd60e51b815260206004820152602660248201527f46656520726573657276652063616e6e6f7420626520746865207a65726f206160448201526564647265737360d01b6064820152608401620000a4565b6200018b60003362000370565b620001b77f78f12a009c29082657d0c0b71e1da642df0932969e5ac25f5190d1e8802d5ff53362000370565b600680546001600160a01b0319166001600160a01b038b16179055620001df848484620003df565b600580546001600160a01b03199081166001600160a01b03938416179091558982166080819052600f805483168b8516179055600e8054909216928916929092179055600386905560048281556040805163313ce56760e01b8152905163313ce567928281019260209291908290030181865afa15801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b9190620007aa565b6200029890600a620007e5565b60ff166012555050508815159550620002fa9450505050505760405162461bcd60e51b815260206004820152601460248201527f4475726174696f6e2063616e6e6f7420626520300000000000000000000000006044820152606401620000a4565b62000306828562000811565b62000312828762000811565b10620003615760405162461bcd60e51b815260206004820152601660248201527f496e76616c69642076657374696e6720706572696f64000000000000000000006044820152606401620000a4565b50505050505050505062000963565b6200037c82826200046a565b620003db5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45b5050565b600080620003ed8162000497565b600030600660009054906101000a90046001600160a01b03168787876040516200041790620006f1565b6001600160a01b03958616815294909316602085015260408401919091526060830152608082015260a001604051809103906000f0801580156200045f573d6000803e3d6000fd5b509695505050505050565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b620004a38133620004a6565b50565b620004b282826200046a565b620003db57620004cd816200051e60201b62002dde1760201c565b620004e383602062002df162000531821b17811c565b604051602001620004f69291906200084d565b60408051601f198184030181529082905262461bcd60e51b8252620000a491600401620008c6565b6060620004916001600160a01b03831660145b6060600062000542836002620008fb565b6200054f90600262000811565b6001600160401b038111156200056957620005696200091d565b6040519080825280601f01601f19166020018201604052801562000594576020820181803683370190505b509050600360fc1b81600081518110620005b257620005b262000933565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620005e457620005e462000933565b60200101906001600160f81b031916908160001a90535060006200060a846002620008fb565b6200061790600162000811565b90505b600181111562000699576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106200064f576200064f62000933565b1a60f81b82828151811062000668576200066862000933565b60200101906001600160f81b031916908160001a90535060049490941c93620006918162000949565b90506200061a565b508315620006ea5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000a4565b9392505050565b61115180620063cd83390190565b80516001600160a01b03811681146200071757600080fd5b919050565b60008060008060008060008060006101208a8c0312156200073c57600080fd5b620007478a620006ff565b98506200075760208b01620006ff565b97506200076760408b01620006ff565b96506200077760608b01620006ff565b955060808a0151945060a08a0151935060c08a0151925060e08a015191506101008a015190509295985092959850929598565b600060208284031215620007bd57600080fd5b815160ff81168114620006ea57600080fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168160ff0481118215151615620008095762000809620007cf565b029392505050565b80820180821115620004915762000491620007cf565b60005b83811015620008445781810151838201526020016200082a565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200088781601785016020880162000827565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351620008ba81602884016020880162000827565b01602801949350505050565b6020815260008251806020840152620008e781604085016020870162000827565b601f01601f19169190910160400192915050565b6000816000190483118215151615620009185762000918620007cf565b500290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000816200095b576200095b620007cf565b506000190190565b608051615a3962000994600039600081816108b40152818161119b01528181611d0801526139e90152615a396000f3fe608060405260043610620004435760003560e01c8063725b2c541162000233578063a6a3b5b4116200012f578063c012a68f11620000b9578063d547741f1162000084578063d547741f1462000d23578063d6d5e1011462000d48578063e3e1fb0f1462000d6d578063e50b2bc21462000d8f578063fa54cebd1462000db457600080fd5b8063c012a68f1462000c88578063c69b7e691462000cad578063ce7c2ac21462000cd2578063d5002f2e1462000d0c57600080fd5b8063b6168acf11620000fa578063b6168acf1462000bec578063baa3f7ee1462000c11578063bb5b3edc1462000c4b578063bfac9e721462000c7057600080fd5b8063a6a3b5b41462000b7f578063a7497fa51462000b97578063ab57c2351462000baf578063b2d5ae441462000bd457600080fd5b80638dba908c11620001bd578063986244551162000188578063986244551462000afc57806399d32fc41462000b145780639af41a221462000b2c578063a217fddf1462000b51578063a262f5f81462000b6857600080fd5b80638dba908c1462000a755780638e7e54151462000a9a57806391d148541462000ab2578063922555b41462000ad757600080fd5b8063851c17a711620001fe578063851c17a714620009e65780638903ab9d1462000a0657806389a873c81462000a2b5780638bccbf621462000a5057600080fd5b8063725b2c54146200096f578063729ad39e1462000987578063789ff0e114620009ac5780638456cb5914620009ce57600080fd5b806336568abe11620003435780634a5dc02811620002cd5780635c975abb11620002985780635c975abb14620008865780635cb732be14620008a05780635ccd447b14620008d657806366093ce314620008fb5780636e04ff0d146200092057600080fd5b80634a5dc02814620007fe5780634e71d92d146200082357806351d8804f146200082d578063596298b5146200086157600080fd5b80633f4ba83a116200030e5780633f4ba83a14620007775780634585e33b146200078f5780634792ad3514620007b45780634a426ea414620007d957600080fd5b806336568abe14620006df578063368a5e3414620007045780633cc02171146200073a5780633eef2ec1146200075257600080fd5b806310fe9ae811620003d157806329a06ff5116200039c57806329a06ff514620006335780632e75ab5014620006585780632f2ff15d146200067d57806331f94a2814620006a257806333cd801a14620006c757600080fd5b806310fe9ae81462000571578063217059a314620005a5578063248a9ca314620005ca57806324e5473b146200060e57600080fd5b80630ac26fa011620004125780630ac26fa014620004ea5780630cde3e0b146200050f5780630db1945714620005345780630e81073c146200054c57600080fd5b806301ffc9a7146200044857806303460f6c146200048257806308ed0236146200049e5780630a21b1ac14620004c5575b600080fd5b3480156200045557600080fd5b506200046d6200046736600462003f0a565b62000dd9565b60405190151581526020015b60405180910390f35b3480156200048f57600080fd5b506013546200046d9060ff1681565b348015620004ab57600080fd5b50620004c3620004bd36600462003f45565b62000e11565b005b348015620004d257600080fd5b50620004c3620004e436600462003f65565b62000e32565b348015620004f757600080fd5b506200046d6200050936600462003f9c565b62000e45565b3480156200051c57600080fd5b50620004c36200052e36600462004093565b62000e54565b3480156200054157600080fd5b506200046d62000ece565b3480156200055957600080fd5b50620004c36200056b366004620040fe565b62000f2a565b3480156200057e57600080fd5b506006546001600160a01b03165b6040516001600160a01b03909116815260200162000479565b348015620005b257600080fd5b50620004c3620005c436600462004196565b6200103e565b348015620005d757600080fd5b50620005ff620005e936600462003f65565b6000908152600160208190526040909120015490565b60405190815260200162000479565b3480156200061b57600080fd5b50620004c36200062d366004620041cf565b62001099565b3480156200064057600080fd5b50620004c36200065236600462003f65565b6200118c565b3480156200066557600080fd5b50620004c36200067736600462003f65565b62001284565b3480156200068a57600080fd5b50620004c36200069c36600462004210565b620012f0565b348015620006af57600080fd5b50620004c3620006c136600462003f9c565b6200131a565b348015620006d457600080fd5b50620005ff620013bd565b348015620006ec57600080fd5b50620004c3620006fe36600462004210565b620013cb565b3480156200071157600080fd5b50620005ff7f78f12a009c29082657d0c0b71e1da642df0932969e5ac25f5190d1e8802d5ff581565b3480156200074757600080fd5b50620005ff6200144d565b3480156200075f57600080fd5b50620005ff6200077136600462003f9c565b6200145b565b3480156200078457600080fd5b50620004c362001573565b3480156200079c57600080fd5b50620004c3620007ae3660046200423f565b6200158d565b348015620007c157600080fd5b50620004c3620007d3366004620042b6565b620015a8565b348015620007e657600080fd5b50620004c3620007f8366004620042b6565b62001661565b3480156200080b57600080fd5b50620004c36200081d36600462003f65565b6200171a565b620004c36200172d565b3480156200083a57600080fd5b50620008526200084c366004620042f1565b620019db565b60405162000479919062004314565b3480156200086e57600080fd5b50620004c36200088036600462004196565b62001b27565b3480156200089357600080fd5b5060005460ff166200046d565b348015620008ad57600080fd5b506200058c7f000000000000000000000000000000000000000000000000000000000000000081565b348015620008e357600080fd5b50620004c3620008f536600462004196565b62001b70565b3480156200090857600080fd5b506200046d6200091a36600462003f9c565b62001bc6565b3480156200092d57600080fd5b506200095f6200093f3660046200423f565b505060135460408051602081019091526000815261010090910460ff1691565b60405162000479929190620043b7565b3480156200097c57600080fd5b50620004c362001c2b565b3480156200099457600080fd5b50620004c3620009a636600462004196565b62001d42565b348015620009b957600080fd5b50600e546200058c906001600160a01b031681565b348015620009db57600080fd5b50620004c362001ec9565b348015620009f357600080fd5b506005546001600160a01b03166200058c565b34801562000a1357600080fd5b50620005ff62000a2536600462003f9c565b62001ee0565b34801562000a3857600080fd5b506200058c62000a4a366004620043d4565b62001eed565b34801562000a5d57600080fd5b50620004c362000a6f366004620040fe565b62001f78565b34801562000a8257600080fd5b506200085262000a94366004620042f1565b62002068565b34801562000aa757600080fd5b50620004c3620021aa565b34801562000abf57600080fd5b506200046d62000ad136600462004210565b620022d1565b34801562000ae457600080fd5b50620004c362000af636600462003f9c565b620022fc565b34801562000b0957600080fd5b50620005ff60125481565b34801562000b2157600080fd5b50620005ff600d5481565b34801562000b3957600080fd5b506200046d62000b4b36600462003f9c565b62002314565b34801562000b5e57600080fd5b50620005ff600081565b620004c362000b7936600462003f9c565b62002365565b34801562000b8c57600080fd5b50620005ff60045481565b34801562000ba457600080fd5b50620005ff60035481565b34801562000bbc57600080fd5b50620004c362000bce36600462003f9c565b62002611565b34801562000be157600080fd5b50620004c362002690565b34801562000bf957600080fd5b50620004c362000c0b36600462003f9c565b620027b3565b34801562000c1e57600080fd5b50620005ff62000c3036600462003f9c565b6001600160a01b03166000908152600a602052604090205490565b34801562000c5857600080fd5b50620004c362000c6a36600462004401565b62002853565b34801562000c7d57600080fd5b506200046d620028b4565b34801562000c9557600080fd5b50620004c362000ca736600462003f9c565b620028fc565b34801562000cba57600080fd5b50620004c362000ccc36600462004196565b62002942565b34801562000cdf57600080fd5b50620005ff62000cf136600462003f9c565b6001600160a01b031660009081526009602052604090205490565b34801562000d1957600080fd5b50600754620005ff565b34801562000d3057600080fd5b50620004c362000d4236600462004210565b620029cf565b34801562000d5557600080fd5b50620004c362000d6736600462003f9c565b620029f9565b34801562000d7a57600080fd5b50600f546200058c906001600160a01b031681565b34801562000d9c57600080fd5b50620004c362000dae36600462004434565b62002a96565b34801562000dc157600080fd5b50620004c362000dd336600462004463565b62002c85565b60006001600160e01b03198216637965db0b60e01b148062000e0b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600062000e1e8162002fab565b506013805460ff1916911515919091179055565b600062000e3f8162002fab565b50600455565b600062000e0b600b8362002fb7565b600062000e618162002fab565b600554604051630cde3e0b60e01b81526001600160a01b0390911690630cde3e0b9062000e959086908690600401620044d3565b600060405180830381600087803b15801562000eb057600080fd5b505af115801562000ec5573d6000803e3d6000fd5b50505050505050565b600060035460045462000ee291906200451b565b4210801562000ef357506003544210155b801562000f0e57503360009081526009602052604090205415155b801562000f25575062000f23600b3362002fb7565b155b905090565b600062000f378162002fab565b6001600160a01b03831662000f695760405162461bcd60e51b815260040162000f609062004531565b60405180910390fd5b6000821162000fb35760405162461bcd60e51b8152602060048201526015602482015274056657374696e673a2073686172657320617265203605c1b604482015260640162000f60565b6001600160a01b0383166000908152600960205260408120805484929062000fdd9084906200451b565b92505081905550816007600082825462000ff891906200451b565b90915550506040517fcede7a9903c07d938c75644b6e38f7950ae1d362fca0fc61c99f2496ec9e99219062001031908590859062004575565b60405180910390a1505050565b60006200104b8162002fab565b60005b825181101562001094576200107f8382815181106200107157620010716200458e565b602002602001015162002611565b806200108b81620045a4565b9150506200104e565b505050565b6000620010a68162002fab565b6001600160a01b038416620011095760405162461bcd60e51b815260206004820152602260248201527f56657374696e673a20746f6b656e20697320746865207a65726f206164647265604482015261737360f01b606482015260840162000f60565b6001600160a01b038316620011705760405162461bcd60e51b815260206004820152602660248201527f56657374696e673a20726563697069656e7420697320746865207a65726f206160448201526564647265737360d01b606482015260840162000f60565b620011866001600160a01b038516848462002fda565b50505050565b6000620011998162002fab565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620011f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200121e9190620045c0565b6200122b906064620045e5565b60ff1682106200127e5760405162461bcd60e51b815260206004820181905260248201527f56657374696e673a2061697264726f702066656520697320746f6f2068696768604482015260640162000f60565b50601255565b6000620012918162002fab565b670de0b6b3a76400008210620012ea5760405162461bcd60e51b815260206004820152601e60248201527f56657374696e673a20636c61696d2066656520697320746f6f20686967680000604482015260640162000f60565b50600d55565b600082815260016020819052604090912001546200130e8162002fab565b62001094838362003034565b6000620013278162002fab565b6001600160a01b0382166200139a5760405162461bcd60e51b815260206004820152603260248201527f56657374696e673a20726566756e6420726573657276652063616e6e6f7420626044820152716520746865207a65726f206164647265737360701b606482015260840162000f60565b50600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600062000f25600b620030a2565b6001600160a01b03811633146200143d5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840162000f60565b620014498282620030ad565b5050565b600062000f256010620030a2565b6008546006546005546040516370a0823160e01b81526001600160a01b0391821660048201526000938493909216906370a0823190602401602060405180830381865afa158015620014b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620014d7919062004611565b6006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801562001520573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001546919062004611565b6200155291906200451b565b6200155e91906200451b565b90506200156c838262003117565b9392505050565b6000620015808162002fab565b6200158a6200314e565b50565b601354610100900460ff1615620014495762001449620021aa565b8051825114620015fb5760405162461bcd60e51b815260206004820152601f60248201527f56657374696e673a20617272617973206c656e677468206d69736d6174636800604482015260640162000f60565b60005b825181101562001094576200164c8382815181106200162157620016216200458e565b60200260200101518383815181106200163e576200163e6200458e565b602002602001015162001f78565b806200165881620045a4565b915050620015fe565b8051825114620016b45760405162461bcd60e51b815260206004820152601f60248201527f56657374696e673a20617272617973206c656e677468206d69736d6174636800604482015260640162000f60565b60005b8251811015620010945762001705838281518110620016da57620016da6200458e565b6020026020010151838381518110620016f757620016f76200458e565b602002602001015162000f2a565b806200171181620045a4565b915050620016b7565b6000620017278162002fab565b50601555565b62001737620031a2565b62001741620031fb565b600354421015620017665760405162461bcd60e51b815260040162000f60906200462b565b600d54341015620017ba5760405162461bcd60e51b815260206004820181905260248201527f56657374696e673a20636c61696d20666565206973206e6f7420656e6f756768604482015260640162000f60565b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200180b57600080fd5b505af115801562001820573d6000803e3d6000fd5b505050506000620018313362003243565b90506200183f333362003375565b600d5415620018e857600e54600d546040516000926001600160a01b031691908381818185875af1925050503d806000811462001899576040519150601f19603f3d011682016040523d82523d6000602084013e6200189e565b606091505b5050905080620018e65760405162461bcd60e51b81526020600482015260126024820152714661696c656420746f2073656e642066656560701b604482015260640162000f60565b505b6000600d5434620018fa91906200466c565b905080156200199157604051600090339083908381818185875af1925050503d806000811462001947576040519150601f19603f3d011682016040523d82523d6000602084013e6200194c565b606091505b50509050806200198f5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640162000f60565b505b7fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a3383604051620019c492919062004575565b60405180910390a15050620019d96001600255565b565b60606000620019eb600b620030a2565b905080841062001a565760405162461bcd60e51b815260206004820152602f60248201527f56657374696e673a2073746172742069732067726561746572207468616e207260448201526e0cacceadcc8cacae640d8cadccee8d608b1b606482015260840162000f60565b8083111562001a63578092505b600062001a7185856200466c565b67ffffffffffffffff81111562001a8c5762001a8c62003fba565b60405190808252806020026020018201604052801562001ab6578160200160208202803683370190505b509050845b8481101562001b1e5762001ad1600b82620034b0565b8262001ade88846200466c565b8151811062001af15762001af16200458e565b6001600160a01b03909216602092830291909101909101528062001b1581620045a4565b91505062001abb565b50949350505050565b60005b8151811015620014495762001b5b82828151811062001b4d5762001b4d6200458e565b6020026020010151620022fc565b8062001b6781620045a4565b91505062001b2a565b600062001b7d8162002fab565b60005b8251811015620010945762001bb183828151811062001ba35762001ba36200458e565b6020026020010151620028fc565b8062001bbd81620045a4565b91505062001b80565b600060035460045462001bda91906200451b565b4210801562001beb57506003544210155b801562001c0f57506001600160a01b03821660009081526009602052604090205415155b801562000e0b575062001c24600b8362002fb7565b1592915050565b62001c35620031a2565b60135460ff1662001c895760405162461bcd60e51b815260206004820152601f60248201527f56657374696e673a2061697264726f70206973206e6f7420616c6c6f77656400604482015260640162000f60565b62001c9660103362002fb7565b1562001cb65760405162461bcd60e51b815260040162000f609062004682565b3360009081526009602052604090205462001ce55760405162461bcd60e51b815260040162000f6090620046d0565b62001cf2601033620034be565b50600e5460125462001d37916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169233929190911690620034d5565b620019d96001600255565b7f78f12a009c29082657d0c0b71e1da642df0932969e5ac25f5190d1e8802d5ff562001d6e8162002fab565b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801562001dbf57600080fd5b505af115801562001dd4573d6000803e3d6000fd5b5050505060005b82518110156200109457600062001e0e84838151811062001e005762001e006200458e565b602002602001015162003243565b9050801562001eb35762001e5b84838151811062001e305762001e306200458e565b602002602001015185848151811062001e4d5762001e4d6200458e565b602002602001015162003375565b7fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a84838151811062001e915762001e916200458e565b60200260200101518260405162001eaa92919062004575565b60405180910390a15b508062001ec081620045a4565b91505062001ddb565b600062001ed68162002fab565b6200158a6200350f565b600062000e0b8262003243565b60008062001efb8162002fab565b600030600660009054906101000a90046001600160a01b031687878760405162001f259062003efc565b6001600160a01b03958616815294909316602085015260408401919091526060830152608082015260a001604051809103906000f08015801562001f6d573d6000803e3d6000fd5b509695505050505050565b600062001f858162002fab565b6001600160a01b03831662001fae5760405162461bcd60e51b815260040162000f609062004531565b6000821162001ff85760405162461bcd60e51b8152602060048201526015602482015274056657374696e673a2073686172657320617265203605c1b604482015260640162000f60565b6001600160a01b03831660009081526009602052604090208054908390556007548190620020289085906200451b565b6200203491906200466c565b600755604051600080516020620059e4833981519152906200205a908690869062004575565b60405180910390a150505050565b60606000620020786010620030a2565b9050808410620020e25760405162461bcd60e51b815260206004820152602e60248201527f56657374696e673a2073746172742069732067726561746572207468616e206160448201526d0d2e4c8e4dee0e640d8cadccee8d60931b606482015260840162000f60565b80831115620020ef578092505b6000620020fd85856200466c565b67ffffffffffffffff81111562002118576200211862003fba565b60405190808252806020026020018201604052801562002142578160200160208202803683370190505b509050845b8481101562001b1e576200215d601082620034b0565b826200216a88846200466c565b815181106200217d576200217d6200458e565b6001600160a01b039092166020928302919091019091015280620021a181620045a4565b91505062002147565b6000601454620021bb6010620030a2565b620021c791906200466c565b90506000601454905060006015548311156200220b576013805461ff001916610100179055601554601454620021fe91906200451b565b601455506015546200221e565b506013805461ff00191690556000601455815b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200226f57600080fd5b505af115801562002284573d6000803e3d6000fd5b5084925050505b6200229782846200451b565b81101562001186576000620022ae601083620034b0565b9050620022bb816200354f565b5080620022c881620045a4565b9150506200228b565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000620023098162002fab565b620014498262003614565b60135460009060ff1680156200232c57506003544210155b80156200235057506001600160a01b03821660009081526009602052604090205415155b801562000e0b575062001c2460108362002fb7565b6200236f620031a2565b62002379620031fb565b6003544210156200239e5760405162461bcd60e51b815260040162000f60906200462b565b600d54341015620023f25760405162461bcd60e51b815260206004820181905260248201527f56657374696e673a20636c61696d20666565206973206e6f7420656e6f756768604482015260640162000f60565b600560009054906101000a90046001600160a01b03166001600160a01b03166386d1a69f6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200244357600080fd5b505af115801562002458573d6000803e3d6000fd5b505050506000620024693362003243565b905062002477338362003375565b600d54156200252057600e54600d546040516000926001600160a01b031691908381818185875af1925050503d8060008114620024d1576040519150601f19603f3d011682016040523d82523d6000602084013e620024d6565b606091505b50509050806200251e5760405162461bcd60e51b81526020600482015260126024820152714661696c656420746f2073656e642066656560701b604482015260640162000f60565b505b6000600d54346200253291906200466c565b90508015620025c957604051600090339083908381818185875af1925050503d80600081146200257f576040519150601f19603f3d011682016040523d82523d6000602084013e62002584565b606091505b5050905080620025c75760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640162000f60565b505b7fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a3383604051620025fc92919062004575565b60405180910390a150506200158a6001600255565b60006200261e8162002fab565b6200262b60108362002fb7565b156200264b5760405162461bcd60e51b815260040162000f609062004682565b6001600160a01b038216600090815260096020526040902054620026835760405162461bcd60e51b815260040162000f6090620046d0565b62001094601083620034be565b6200269a620031a2565b620026a4620031fb565b600354600454620026b691906200451b565b42108015620026c757506003544210155b6200270a5760405162461bcd60e51b81526020600482015260126024820152712932b33ab7321034b9903737ba1037b832b760711b604482015260640162000f60565b62002717600b3362002fb7565b15620027795760405162461bcd60e51b815260206004820152602a60248201527f56657374696e673a206163636f756e742068617320616c7265616479206265656044820152691b881c99599d5b99195960b21b606482015260840162000f60565b33600090815260096020526040902054620027a85760405162461bcd60e51b815260040162000f6090620046d0565b62001d3733620037e1565b6000620027c08162002fab565b6001600160a01b038216620028305760405162461bcd60e51b815260206004820152602f60248201527f56657374696e673a2066656520726573657276652063616e6e6f74206265207460448201526e6865207a65726f206164647265737360881b606482015260840162000f60565b50600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000620028608162002fab565b81156200289b576005546040516395ccea6760e01b81526001600160a01b03909116906395ccea679062000e95903390879060040162004575565b60065462001094906001600160a01b0316338562002fda565b60135460009060ff168015620028cc57506003544210155b8015620028e757503360009081526009602052604090205415155b801562000f25575062000f2360103362002fb7565b6000620029098162002fab565b6200291660108362002fb7565b620029355760405162461bcd60e51b815260040162000f609062004707565b6200109460108362003a58565b60006200294f8162002fab565b60005b825181101562001094576200298e8382815181106200297557620029756200458e565b6020026020010151600b62002fb790919063ffffffff16565b620029ba57620029ba838281518110620029ac57620029ac6200458e565b6020026020010151620037e1565b80620029c681620045a4565b91505062002952565b60008281526001602081905260409091200154620029ed8162002fab565b620010948383620030ad565b600062002a068162002fab565b6001600160a01b03821662002a735760405162461bcd60e51b815260206004820152602c60248201527f56657374696e673a2072656c65617365722063616e6e6f74206265207468652060448201526b7a65726f206164647265737360a01b606482015260840162000f60565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b600062002aa38162002fab565b6001600160a01b03831662002b0b5760405162461bcd60e51b815260206004820152602760248201527f56657374696e673a206f6c642077616c6c657420697320746865207a65726f206044820152666164647265737360c81b606482015260840162000f60565b6001600160a01b03821662002b735760405162461bcd60e51b815260206004820152602760248201527f56657374696e673a206e65772077616c6c657420697320746865207a65726f206044820152666164647265737360c81b606482015260840162000f60565b6001600160a01b03831660009081526009602052604090205462002be45760405162461bcd60e51b815260206004820152602160248201527f56657374696e673a206f6c642077616c6c657420686173206e6f2073686172656044820152607360f81b606482015260840162000f60565b6001600160a01b038084166000818152600960209081526040808320805490849055948716808452818420869055938352600a90915280822080549083905592825280822083905551600080516020620059e48339815191529162002c4c9188919062004575565b60405180910390a1600080516020620059e4833981519152848360405162002c7692919062004575565b60405180910390a15050505050565b600062002c928162002fab565b841562002c9f5760038590555b831562002d07576005546040516306bcf02f60e01b8152600481018690526001600160a01b03909116906306bcf02f90602401600060405180830381600087803b15801562002ced57600080fd5b505af115801562002d02573d6000803e3d6000fd5b505050505b821562002d6f57600554604051631b50ad0960e01b8152600481018590526001600160a01b0390911690631b50ad0990602401600060405180830381600087803b15801562002d5557600080fd5b505af115801562002d6a573d6000803e3d6000fd5b505050505b811562002dd75760055460405163bc78f6a960e01b8152600481018490526001600160a01b039091169063bc78f6a990602401600060405180830381600087803b15801562002dbd57600080fd5b505af115801562002dd2573d6000803e3d6000fd5b505050505b5050505050565b606062000e0b6001600160a01b03831660145b6060600062002e0283600262004751565b62002e0f9060026200451b565b67ffffffffffffffff81111562002e2a5762002e2a62003fba565b6040519080825280601f01601f19166020018201604052801562002e55576020820181803683370190505b509050600360fc1b8160008151811062002e735762002e736200458e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062002ea55762002ea56200458e565b60200101906001600160f81b031916908160001a905350600062002ecb84600262004751565b62002ed89060016200451b565b90505b600181111562002f5a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002f105762002f106200458e565b1a60f81b82828151811062002f295762002f296200458e565b60200101906001600160f81b031916908160001a90535060049490941c9362002f528162004773565b905062002edb565b5083156200156c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000f60565b6200158a813362003a6f565b6001600160a01b038116600090815260018301602052604081205415156200156c565b620010948363a9059cbb60e01b848460405160240162002ffc92919062004575565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262003ad3565b620030408282620022d1565b620014495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600062000e0b825490565b620030b98282620022d1565b15620014495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6007546001600160a01b03831660009081526009602052604081205490919062003142908462004751565b6200156c91906200478d565b6200315862003baf565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6002805403620031f55760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000f60565b60028055565b60005460ff1615620019d95760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640162000f60565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663fbccedae6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200329a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620032c0919062004611565b6008546006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156200330c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003332919062004611565b6200333e91906200451b565b6200334a91906200451b565b6001600160a01b0384166000908152600a60205260409020549091506200156c908490839062003bfa565b6001600160a01b038216600090815260096020526040902054620033ad5760405162461bcd60e51b815260040162000f6090620046d0565b6000620033ba8362003243565b9050806000036200341a5760405162461bcd60e51b815260206004820152602360248201527f56657374696e673a206163636f756e74206973206e6f7420647565207061796d604482015262195b9d60ea1b606482015260840162000f60565b6001600160a01b0383166000908152600a602052604081208054839290620034449084906200451b565b9250508190555080600860008282546200345f91906200451b565b90915550506006546200347d906001600160a01b0316838362002fda565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b05682826040516200103192919062004575565b60006200156c838362003c46565b60006200156c836001600160a01b03841662003c73565b6040516001600160a01b0380851660248301528316604482015260648101829052620011869085906323b872dd60e01b9060840162002ffc565b62003519620031fb565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620031853390565b6200355c60108262002fb7565b6200357b5760405162461bcd60e51b815260040162000f609062004707565b6001600160a01b038116600090815260096020526040902054620035b35760405162461bcd60e51b815260040162000f6090620046d0565b6000620035c08262003243565b905080156200144957620035d5828362003375565b7f7bd6d4be1decdc27a9ed9c7ccdf5bb7cc38e31b3647b958c6b37162a2296c0fa82826040516200360892919062004575565b60405180910390a15050565b6001600160a01b0381166200363d5760405162461bcd60e51b815260040162000f609062004531565b6007546001600160a01b038083166000908152600960209081526040808320546005548251639613252160e01b815292519496959194911692639613252192600480820193918290030181865afa1580156200369d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620036c3919062004611565b620036cf919062004751565b620036db91906200478d565b6001600160a01b0383166000908152600960205260408120805490829055600780549394509092839290620037129084906200466c565b90915550506001600160a01b0383166000908152600a60205260408120546008805491929091620037459084906200466c565b90915550506001600160a01b038381166000908152600a6020526040808220919091556005549051634920ab4560e11b815260048101859052911690639241568a90602401600060405180830381600087803b158015620037a557600080fd5b505af1158015620037ba573d6000803e3d6000fd5b50505050600080516020620059e48339815191528360006040516200103192919062004575565b620037ee600b82620034be565b506008546006546040516370a0823160e01b8152306004820152600092916001600160a01b0316906370a0823190602401602060405180830381865afa1580156200383d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003863919062004611565b6200386f91906200451b565b90506000620038818383600062003bfa565b905060008162003891856200145b565b6200389d91906200466c565b6001600160a01b0385166000908152600a602052604081205491925090620038c5866200145b565b620038d191906200466c565b90506000620038e0866200145b565b6001600160a01b0387166000908152600960205260409020546200390690849062004751565b6200391291906200478d565b6001600160a01b0387166000908152600a6020526040902054909150620039398762003614565b600554600f546040516395ccea6760e01b81526001600160a01b03928316926395ccea67926200397192911690889060040162004575565b600060405180830381600087803b1580156200398c57600080fd5b505af1158015620039a1573d6000803e3d6000fd5b5050600f54620039d792506001600160a01b03169050620039c383886200466c565b6006546001600160a01b0316919062002fda565b600f5462003a14906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168985620034d5565b7fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651878460405162003a4792919062004575565b60405180910390a150505050505050565b60006200156c836001600160a01b03841662003cc5565b62003a7b8282620022d1565b620014495762003a8b8162002dde565b62003a9883602062002df1565b60405160200162003aab929190620047b0565b60408051601f198184030181529082905262461bcd60e51b825262000f609160040162004829565b600062003b2a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662003dc99092919063ffffffff16565b905080516000148062003b4e57508080602001905181019062003b4e91906200483e565b620010945760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000f60565b60005460ff16620019d95760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640162000f60565b6007546001600160a01b0384166000908152600960205260408120549091839162003c26908662004751565b62003c3291906200478d565b62003c3e91906200466c565b949350505050565b600082600001828154811062003c605762003c606200458e565b9060005260206000200154905092915050565b600081815260018301602052604081205462003cbc5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000e0b565b50600062000e0b565b6000818152600183016020526040812054801562003dbe57600062003cec6001836200466c565b855490915060009062003d02906001906200466c565b905081811462003d6e57600086600001828154811062003d265762003d266200458e565b906000526020600020015490508087600001848154811062003d4c5762003d4c6200458e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062003d825762003d826200485e565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062000e0b565b600091505062000e0b565b606062003c3e848460008585600080866001600160a01b0316858760405162003df3919062004874565b60006040518083038185875af1925050503d806000811462003e32576040519150601f19603f3d011682016040523d82523d6000602084013e62003e37565b606091505b509150915062003e4a8783838762003e55565b979650505050505050565b6060831562003ec957825160000362003ec1576001600160a01b0385163b62003ec15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000f60565b508162003c3e565b62003c3e838381511562003ee05781518083602001fd5b8060405162461bcd60e51b815260040162000f60919062004829565b611151806200489383390190565b60006020828403121562003f1d57600080fd5b81356001600160e01b0319811681146200156c57600080fd5b80151581146200158a57600080fd5b60006020828403121562003f5857600080fd5b81356200156c8162003f36565b60006020828403121562003f7857600080fd5b5035919050565b80356001600160a01b038116811462003f9757600080fd5b919050565b60006020828403121562003faf57600080fd5b6200156c8262003f7f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562003ffc5762003ffc62003fba565b604052919050565b600067ffffffffffffffff82111562004021576200402162003fba565b5060051b60200190565b600082601f8301126200403d57600080fd5b8135602062004056620040508362004004565b62003fd0565b82815260059290921b840181019181810190868411156200407657600080fd5b8286015b8481101562001f6d57803583529183019183016200407a565b60008060408385031215620040a757600080fd5b823567ffffffffffffffff80821115620040c057600080fd5b620040ce868387016200402b565b93506020850135915080821115620040e557600080fd5b50620040f4858286016200402b565b9150509250929050565b600080604083850312156200411257600080fd5b6200411d8362003f7f565b946020939093013593505050565b600082601f8301126200413d57600080fd5b8135602062004150620040508362004004565b82815260059290921b840181019181810190868411156200417057600080fd5b8286015b8481101562001f6d57620041888162003f7f565b835291830191830162004174565b600060208284031215620041a957600080fd5b813567ffffffffffffffff811115620041c157600080fd5b62003c3e848285016200412b565b600080600060608486031215620041e557600080fd5b620041f08462003f7f565b9250620042006020850162003f7f565b9150604084013590509250925092565b600080604083850312156200422457600080fd5b82359150620042366020840162003f7f565b90509250929050565b600080602083850312156200425357600080fd5b823567ffffffffffffffff808211156200426c57600080fd5b818501915085601f8301126200428157600080fd5b8135818111156200429157600080fd5b866020828501011115620042a457600080fd5b60209290920196919550909350505050565b60008060408385031215620042ca57600080fd5b823567ffffffffffffffff80821115620042e357600080fd5b620040ce868387016200412b565b600080604083850312156200430557600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015620043575783516001600160a01b03168352928401929184019160010162004330565b50909695505050505050565b60005b838110156200438057818101518382015260200162004366565b50506000910152565b60008151808452620043a381602086016020860162004363565b601f01601f19169290920160200192915050565b821515815260406020820152600062003c3e604083018462004389565b600080600060608486031215620043ea57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156200441557600080fd5b823591506020830135620044298162003f36565b809150509250929050565b600080604083850312156200444857600080fd5b620044538362003f7f565b9150620042366020840162003f7f565b600080600080608085870312156200447a57600080fd5b5050823594602084013594506040840135936060013592509050565b600081518084526020808501945080840160005b83811015620044c857815187529582019590820190600101620044aa565b509495945050505050565b604081526000620044e8604083018562004496565b8281036020840152620044fc818562004496565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111562000e0b5762000e0b62004505565b60208082526024908201527f56657374696e673a206163636f756e7420697320746865207a65726f206164646040820152637265737360e01b606082015260800190565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b600060018201620045b957620045b962004505565b5060010190565b600060208284031215620045d357600080fd5b815160ff811681146200156c57600080fd5b600060ff821660ff84168160ff048111821515161562004609576200460962004505565b029392505050565b6000602082840312156200462457600080fd5b5051919050565b60208082526021908201527f56657374696e673a2054474520686173206e6f742068617070656e65642079656040820152601d60fa1b606082015260800190565b8181038181111562000e0b5762000e0b62004505565b6020808252602e908201527f56657374696e673a206163636f756e742068617320616c72656164792072657160408201526d07565737465642061697264726f760941b606082015260800190565b6020808252601e908201527f56657374696e673a206163636f756e7420686173206e6f207368617265730000604082015260600190565b6020808252602a908201527f56657374696e673a206163636f756e7420686173206e6f742072657175657374604082015269065642061697264726f760b41b606082015260800190565b60008160001904831182151516156200476e576200476e62004505565b500290565b60008162004785576200478562004505565b506000190190565b600082620047ab57634e487b7160e01b600052601260045260246000fd5b500490565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351620047ea81601785016020880162004363565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200481d81602884016020880162004363565b01602801949350505050565b6020815260006200156c602083018462004389565b6000602082840312156200485157600080fd5b81516200156c8162003f36565b634e487b7160e01b600052603160045260246000fd5b600082516200488881846020870162004363565b919091019291505056fe60c06040523480156200001157600080fd5b5060405162001151380380620011518339810160408190526200003491620002b7565b848462000041336200024a565b6001600160a01b038116620000b05760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a20746f6b656e2063616e6e6f7420626520746865207a65604482015269726f206164647265737360b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001165760405162461bcd60e51b815260206004820152602560248201527f52656c65617365723a2062656e6566696369617279206973207a65726f206164604482015264647265737360d81b6064820152608401620000a7565b6001600160a01b039081166080521660a05281620001795760405162461bcd60e51b815260206004820152602a6024820152600080516020620011318339815191526044820152690676572207468616e20360b41b6064820152608401620000a7565b60008111620001dc5760405162461bcd60e51b815260206004820152602860248201527f52656c65617365723a20706572696f642073686f756c64206265206c61726765604482015267072207468616e20360c41b6064820152608401620000a7565b80821015620002355760405162461bcd60e51b815260206004820152602f60248201526000805160206200113183398151915260448201526e19d95c881d1a185b881c195c9a5bd9608a1b6064820152608401620000a7565b600292909255600355600455506200030a9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002b257600080fd5b919050565b600080600080600060a08688031215620002d057600080fd5b620002db866200029a565b9450620002eb602087016200029a565b6040870151606088015160809098015196999198509695945092505050565b60805160a051610dd76200035a6000396000818161018201528181610567015261059a0152600081816101dd015281816103f3015281816104f20152818161053d01526106500152610dd76000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063920616f5116100a2578063a4caeb4211610071578063a4caeb421461022f578063bc78f6a914610237578063be9a65551461024a578063f2fde38b14610252578063fbccedae1461026557600080fd5b8063920616f5146101db5780639241568a1461020157806395ccea6714610214578063961325211461022757600080fd5b80631bfce853116100e95780631bfce8531461016d57806338af3eed14610180578063715018a6146101ba57806386d1a69f146101c25780638da5cb5b146101ca57600080fd5b806306bcf02f1461011b5780630cde3e0b146101305780630fb5a6b4146101435780631b50ad091461015a575b600080fd5b61012e610129366004610aa1565b61026d565b005b61012e61013e366004610b60565b61027a565b6003545b6040519081526020015b60405180910390f35b61012e610168366004610aa1565b6102e3565b61014761017b366004610aa1565b610375565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610151565b61012e610483565b61012e610497565b6000546001600160a01b03166101a2565b7f00000000000000000000000000000000000000000000000000000000000000006101a2565b61012e61020f366004610aa1565b61058f565b61012e610222366004610bdb565b61063b565b600154610147565b600454610147565b61012e610245366004610aa1565b61067b565b600254610147565b61012e610260366004610c05565b6106aa565b610147610720565b610275610743565b600255565b60405162461bcd60e51b815260206004820152603360248201527f56657374696e6720696e7374616e6365206e6f7420637573746f6d697a61626c6044820152721948199bdc881d1a1a5cc818dbdb9d1c9858dd606a1b60648201526084015b60405180910390fd5b6102eb610743565b6000811161034e5760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c61726044820152690676572207468616e20360b41b60648201526084016102da565b6004548110156103705760405162461bcd60e51b81526004016102da90610c27565b600355565b600061038060025490565b82101561038f57506000919050565b600060045461039d60025490565b6103a79085610c8c565b6103b19190610c9f565b90506000600454826103c39190610cc1565b6002546103d09190610ce0565b90506104766103de60015490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610442573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104669190610cf3565b6104709190610ce0565b8261079d565b949350505050565b919050565b61048b610743565b6104956000610802565b565b60006104a260015490565b6104ab42610375565b6104b59190610c8c565b905080600160008282546104c99190610ce0565b909155507fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b90507f0000000000000000000000000000000000000000000000000000000000000000604080516001600160a01b039092168252602082018490520160405180910390a1801561058c5761058c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083610852565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106215760405162461bcd60e51b815260206004820152603160248201527f52656c65617365723a206f6e6c792062656e65666963696172792063616e206360448201527030b636103a3434b990333ab731ba34b7b760791b60648201526084016102da565b80600160008282546106339190610c8c565b909155505050565b610643610743565b6106776001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610852565b5050565b610683610743565b8060035410156106a55760405162461bcd60e51b81526004016102da90610c27565b600455565b6106b2610743565b6001600160a01b0381166107175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102da565b61058c81610802565b600061072b60015490565b61073442610375565b61073e9190610c8c565b905090565b6000546001600160a01b031633146104955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102da565b60006107a860025490565b8210156107b7575060006107fc565b6003546002546107c79190610ce0565b8211156107d55750816107fc565b6003546002546107e59084610c8c565b6107ef9085610cc1565b6107f99190610c9f565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526108a49084906108a9565b505050565b60006108fe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661097e9092919063ffffffff16565b905080516000148061091f57508080602001905181019061091f9190610d0c565b6108a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102da565b6060610476848460008585600080866001600160a01b031685876040516109a59190610d52565b60006040518083038185875af1925050503d80600081146109e2576040519150601f19603f3d011682016040523d82523d6000602084013e6109e7565b606091505b50915091506109f887838387610a03565b979650505050505050565b60608315610a72578251600003610a6b576001600160a01b0385163b610a6b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102da565b5081610476565b6104768383815115610a875781518083602001fd5b8060405162461bcd60e51b81526004016102da9190610d6e565b600060208284031215610ab357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610ae157600080fd5b8135602067ffffffffffffffff80831115610afe57610afe610aba565b8260051b604051601f19603f83011681018181108482111715610b2357610b23610aba565b604052938452858101830193838101925087851115610b4157600080fd5b83870191505b848210156109f857813583529183019190830190610b47565b60008060408385031215610b7357600080fd5b823567ffffffffffffffff80821115610b8b57600080fd5b610b9786838701610ad0565b93506020850135915080821115610bad57600080fd5b50610bba85828601610ad0565b9150509250929050565b80356001600160a01b038116811461047e57600080fd5b60008060408385031215610bee57600080fd5b610bf783610bc4565b946020939093013593505050565b600060208284031215610c1757600080fd5b610c2082610bc4565b9392505050565b6020808252602f908201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c617260408201526e19d95c881d1a185b881c195c9a5bd9608a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc610c76565b600082610cbc57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610cdb57610cdb610c76565b500290565b808201808211156107fc576107fc610c76565b600060208284031215610d0557600080fd5b5051919050565b600060208284031215610d1e57600080fd5b81518015158114610c2057600080fd5b60005b83811015610d49578181015183820152602001610d31565b50506000910152565b60008251610d64818460208701610d2e565b9190910192915050565b6020815260008251806020840152610d8d816040850160208701610d2e565b601f01601f1916919091016040019291505056fea26469706673582212207a7680cec90f0d84c6c0248c8351b5e535528db022c0db46303ead7581526e6b64736f6c6343000810003352656c65617365723a206475726174696f6e2073686f756c64206265206c6172e6382c9ed5c0c33bb05042f73cf6cbe9cb25639f9a711e094ee563bc9cb80e2ca2646970667358221220374c4be8e9bc4a4d6d253a177554c153f11d9ecc1dbfee6b13b42049d2598e3064736f6c6343000810003360c06040523480156200001157600080fd5b5060405162001151380380620011518339810160408190526200003491620002b7565b848462000041336200024a565b6001600160a01b038116620000b05760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a20746f6b656e2063616e6e6f7420626520746865207a65604482015269726f206164647265737360b01b60648201526084015b60405180910390fd5b6001600160a01b038216620001165760405162461bcd60e51b815260206004820152602560248201527f52656c65617365723a2062656e6566696369617279206973207a65726f206164604482015264647265737360d81b6064820152608401620000a7565b6001600160a01b039081166080521660a05281620001795760405162461bcd60e51b815260206004820152602a6024820152600080516020620011318339815191526044820152690676572207468616e20360b41b6064820152608401620000a7565b60008111620001dc5760405162461bcd60e51b815260206004820152602860248201527f52656c65617365723a20706572696f642073686f756c64206265206c61726765604482015267072207468616e20360c41b6064820152608401620000a7565b80821015620002355760405162461bcd60e51b815260206004820152602f60248201526000805160206200113183398151915260448201526e19d95c881d1a185b881c195c9a5bd9608a1b6064820152608401620000a7565b600292909255600355600455506200030a9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002b257600080fd5b919050565b600080600080600060a08688031215620002d057600080fd5b620002db866200029a565b9450620002eb602087016200029a565b6040870151606088015160809098015196999198509695945092505050565b60805160a051610dd76200035a6000396000818161018201528181610567015261059a0152600081816101dd015281816103f3015281816104f20152818161053d01526106500152610dd76000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063920616f5116100a2578063a4caeb4211610071578063a4caeb421461022f578063bc78f6a914610237578063be9a65551461024a578063f2fde38b14610252578063fbccedae1461026557600080fd5b8063920616f5146101db5780639241568a1461020157806395ccea6714610214578063961325211461022757600080fd5b80631bfce853116100e95780631bfce8531461016d57806338af3eed14610180578063715018a6146101ba57806386d1a69f146101c25780638da5cb5b146101ca57600080fd5b806306bcf02f1461011b5780630cde3e0b146101305780630fb5a6b4146101435780631b50ad091461015a575b600080fd5b61012e610129366004610aa1565b61026d565b005b61012e61013e366004610b60565b61027a565b6003545b6040519081526020015b60405180910390f35b61012e610168366004610aa1565b6102e3565b61014761017b366004610aa1565b610375565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610151565b61012e610483565b61012e610497565b6000546001600160a01b03166101a2565b7f00000000000000000000000000000000000000000000000000000000000000006101a2565b61012e61020f366004610aa1565b61058f565b61012e610222366004610bdb565b61063b565b600154610147565b600454610147565b61012e610245366004610aa1565b61067b565b600254610147565b61012e610260366004610c05565b6106aa565b610147610720565b610275610743565b600255565b60405162461bcd60e51b815260206004820152603360248201527f56657374696e6720696e7374616e6365206e6f7420637573746f6d697a61626c6044820152721948199bdc881d1a1a5cc818dbdb9d1c9858dd606a1b60648201526084015b60405180910390fd5b6102eb610743565b6000811161034e5760405162461bcd60e51b815260206004820152602a60248201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c61726044820152690676572207468616e20360b41b60648201526084016102da565b6004548110156103705760405162461bcd60e51b81526004016102da90610c27565b600355565b600061038060025490565b82101561038f57506000919050565b600060045461039d60025490565b6103a79085610c8c565b6103b19190610c9f565b90506000600454826103c39190610cc1565b6002546103d09190610ce0565b90506104766103de60015490565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610442573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104669190610cf3565b6104709190610ce0565b8261079d565b949350505050565b919050565b61048b610743565b6104956000610802565b565b60006104a260015490565b6104ab42610375565b6104b59190610c8c565b905080600160008282546104c99190610ce0565b909155507fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b90507f0000000000000000000000000000000000000000000000000000000000000000604080516001600160a01b039092168252602082018490520160405180910390a1801561058c5761058c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083610852565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106215760405162461bcd60e51b815260206004820152603160248201527f52656c65617365723a206f6e6c792062656e65666963696172792063616e206360448201527030b636103a3434b990333ab731ba34b7b760791b60648201526084016102da565b80600160008282546106339190610c8c565b909155505050565b610643610743565b6106776001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610852565b5050565b610683610743565b8060035410156106a55760405162461bcd60e51b81526004016102da90610c27565b600455565b6106b2610743565b6001600160a01b0381166107175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102da565b61058c81610802565b600061072b60015490565b61073442610375565b61073e9190610c8c565b905090565b6000546001600160a01b031633146104955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102da565b60006107a860025490565b8210156107b7575060006107fc565b6003546002546107c79190610ce0565b8211156107d55750816107fc565b6003546002546107e59084610c8c565b6107ef9085610cc1565b6107f99190610c9f565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526108a49084906108a9565b505050565b60006108fe826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661097e9092919063ffffffff16565b905080516000148061091f57508080602001905181019061091f9190610d0c565b6108a45760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102da565b6060610476848460008585600080866001600160a01b031685876040516109a59190610d52565b60006040518083038185875af1925050503d80600081146109e2576040519150601f19603f3d011682016040523d82523d6000602084013e6109e7565b606091505b50915091506109f887838387610a03565b979650505050505050565b60608315610a72578251600003610a6b576001600160a01b0385163b610a6b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102da565b5081610476565b6104768383815115610a875781518083602001fd5b8060405162461bcd60e51b81526004016102da9190610d6e565b600060208284031215610ab357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610ae157600080fd5b8135602067ffffffffffffffff80831115610afe57610afe610aba565b8260051b604051601f19603f83011681018181108482111715610b2357610b23610aba565b604052938452858101830193838101925087851115610b4157600080fd5b83870191505b848210156109f857813583529183019190830190610b47565b60008060408385031215610b7357600080fd5b823567ffffffffffffffff80821115610b8b57600080fd5b610b9786838701610ad0565b93506020850135915080821115610bad57600080fd5b50610bba85828601610ad0565b9150509250929050565b80356001600160a01b038116811461047e57600080fd5b60008060408385031215610bee57600080fd5b610bf783610bc4565b946020939093013593505050565b600060208284031215610c1757600080fd5b610c2082610bc4565b9392505050565b6020808252602f908201527f52656c65617365723a206475726174696f6e2073686f756c64206265206c617260408201526e19d95c881d1a185b881c195c9a5bd9608a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156107fc576107fc610c76565b600082610cbc57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610cdb57610cdb610c76565b500290565b808201808211156107fc576107fc610c76565b600060208284031215610d0557600080fd5b5051919050565b600060208284031215610d1e57600080fd5b81518015158114610c2057600080fd5b60005b83811015610d49578181015183820152602001610d31565b50506000910152565b60008251610d64818460208701610d2e565b9190910192915050565b6020815260008251806020840152610d8d816040850160208701610d2e565b601f01601f1916919091016040019291505056fea26469706673582212207a7680cec90f0d84c6c0248c8351b5e535528db022c0db46303ead7581526e6b64736f6c6343000810003352656c65617365723a206475726174696f6e2073686f756c64206265206c6172000000000000000000000000e2974172c402341f0a91d74814dcffc11280e150000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f000000000000000000000000cca3d9b1fdc927030a9adce6cee83fbf8b02d651000000000000000000000000cca3d9b1fdc927030a9adce6cee83fbf8b02d651000000000000000000000000000000000000000000000000000000006863df54000000000000000000000000000000000000000000000000000000006863df540000000000000000000000000000000000000000000000000000000000c5c1000000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000001517b