ETH Price: $2,315.25 (+1.72%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

RewardEscrowV2

Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled
Yes with 1000000 runs
Other Settings
paris EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"_kwenta","type":"address"},{"internalType":"address","name":"_rewardsNotifier","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CannotTransferToSelf","type":"error"},{"inputs":[],"name":"EarlyVestingFeeTooHigh","type":"error"},{"inputs":[],"name":"EarlyVestingFeeTooLow","type":"error"},{"inputs":[{"internalType":"uint256","name":"escrowAmount","type":"uint256"},{"internalType":"uint256","name":"unstakedBalance","type":"uint256"}],"name":"InsufficientUnstakedBalance","type":"error"},{"inputs":[],"name":"InvalidDuration","type":"error"},{"inputs":[],"name":"OnlyEscrowMigrator","type":"error"},{"inputs":[],"name":"OnlyStakingRewards","type":"error"},{"inputs":[],"name":"StakingRewardsAlreadySet","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountToTreasury","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToNotifier","type":"uint256"}],"name":"EarlyVestFeeSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"escrowMigrator","type":"address"}],"name":"EscrowMigratorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakingRewards","type":"address"}],"name":"StakingRewardsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"treasuryDAO","type":"address"}],"name":"TreasuryDAOSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Vested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"entryID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"earlyVestingFee","type":"uint256"}],"name":"VestingEntryCreated","type":"event"},{"inputs":[],"name":"DEFAULT_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_EARLY_VESTING_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_EARLY_VESTING_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_EARLY_VESTING_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"appendVestingEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256[]","name":"_entryIDs","type":"uint256[]"}],"name":"bulkTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_deposit","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"uint256","name":"_earlyVestingFee","type":"uint256"}],"name":"createEscrowEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"escrowMigrator","outputs":[{"internalType":"contract IEscrowMigrator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"escrowedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_pageSize","type":"uint256"}],"name":"getAccountVestingEntryIDs","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getKwentaAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_entryID","type":"uint256"}],"name":"getVestingEntry","outputs":[{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"escrowAmount","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"earlyVestingFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_entryID","type":"uint256"}],"name":"getVestingEntryClaimable","outputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_entryIDs","type":"uint256[]"}],"name":"getVestingQuantity","outputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"totalFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"uint256","name":"_pageSize","type":"uint256"}],"name":"getVestingSchedules","outputs":[{"components":[{"internalType":"uint256","name":"escrowAmount","type":"uint256"},{"internalType":"uint256","name":"entryID","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"}],"internalType":"struct IRewardEscrowV2.VestingEntryWithID[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"components":[{"internalType":"uint256","name":"escrowAmount","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"earlyVestingFee","type":"uint256"}],"internalType":"struct IRewardEscrowV2.VestingEntry","name":"_entry","type":"tuple"}],"name":"importEscrowEntry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kwenta","outputs":[{"internalType":"contract IKwenta","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEntryId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseRewardEscrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsNotifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_escrowMigrator","type":"address"}],"name":"setEscrowMigrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakingRewards","type":"address"}],"name":"setStakingRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasuryDAO","type":"address"}],"name":"setTreasuryDAO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingRewards","outputs":[{"internalType":"contract IStakingRewardsV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalEscrowedAccountBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEscrowedBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalVestedAccountBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryDAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpauseRewardEscrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"unstakedEscrowedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_entryIDs","type":"uint256[]"}],"name":"vest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"vestingSchedules","outputs":[{"internalType":"uint144","name":"escrowAmount","type":"uint144"},{"internalType":"uint40","name":"duration","type":"uint40"},{"internalType":"uint64","name":"endTime","type":"uint64"},{"internalType":"uint8","name":"earlyVestingFee","type":"uint8"}],"stateMutability":"view","type":"function"}]
60e0604052306080523480156200001557600080fd5b5060405162005f1c38038062005f1c833981016040819052620000389162000179565b6001600160a01b03821615806200005657506001600160a01b038116155b15620000755760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0380831660a052811660c052620000926200009a565b5050620001b1565b600054610100900460ff1615620001075760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156200015a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200017457600080fd5b919050565b600080604083850312156200018d57600080fd5b62000198836200015c565b9150620001a8602084016200015c565b90509250929050565b60805160a05160c051615cee6200022e60003960008181610c6201526117e601526000818161039f0152818161098c0152818161127b0152818161173b01528181611815015281816118fa01526131a60152600081816119d201528181611a8201528181611bf201528181611ca20152611ea90152615cee6000f3fe60806040526004361061038b5760003560e01c80636fb83a57116101dc578063ad18e97e11610102578063ca2c7f76116100a0578063e6b2cf6c1161006f578063e6b2cf6c14610c84578063e985e9c514610c9b578063eac6248914610cf1578063f2fde38b14610d1e57600080fd5b8063ca2c7f7614610be5578063daf3807314610c05578063e30c397814610c25578063e509584314610c5057600080fd5b8063b88d4fde116100dc578063b88d4fde14610b6d578063c297fa0f14610b8d578063c4d66de814610ba5578063c87b56dd14610bc557600080fd5b8063ad18e97e14610b07578063b1724b4614610b35578063b5ddb9c714610b4d57600080fd5b80638da5cb5b1161017a578063a22cb46511610149578063a22cb465146109e3578063a4116a7e14610a03578063a46eddcf14610ad2578063ac2fdb1a14610af257600080fd5b80638da5cb5b1461094f5780639034802b1461097a57806395d89b41146109ae57806398ab1e3d146109c357600080fd5b806371e780f3116101b657806371e780f3146108e1578063773ab39f146108f857806379ba5097146109255780637d5ff94d1461093a57600080fd5b80636fb83a571461088c57806370a08231146108ac578063715018a6146108cc57600080fd5b806334c7fec9116102c157806352d1902d1161025f5780635c975abb1161022e5780635c975abb1461072a5780636352211e1461074357806364b87a70146107635780636d3cbe211461079157600080fd5b806352d1902d146106c0578063534c0842146106d557806353a535d3146106ea5780635414408d1461070a57600080fd5b806342842e0e1161029b57806342842e0e1461063f57806348591dd71461065f5780634f1ef2861461068d5780634f6ccce7146106a057600080fd5b806334c7fec9146105ea5780633659cfe61461060a5780633e7f4c091461062a57600080fd5b806318160ddd1161032e57806323b872dd1161030857806323b872dd1461056757806324c0f5b5146105875780632f745c591461059c578063326a3cfb146105bc57600080fd5b806318160ddd1461050457806318c1cb5214610519578063227d517a1461053957600080fd5b8063057a601b1161036a578063057a601b1461044e57806306fdde03146104a0578063081812fc146104c2578063095ea7b3146104e257600080fd5b80624d37e21461039057806301ffc9a7146103e957806303df264014610419575b600080fd5b34801561039c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156103f557600080fd5b50610409610404366004615282565b610d3e565b60405190151581526020016103e0565b34801561042557600080fd5b506104396104343660046152eb565b610d9a565b604080519283526020830191909152016103e0565b34801561045a57600080fd5b50610492610469366004615356565b73ffffffffffffffffffffffffffffffffffffffff1660009081526101c8602052604090205490565b6040519081526020016103e0565b3480156104ac57600080fd5b506104b5610e0d565b6040516103e091906153df565b3480156104ce57600080fd5b506103bf6104dd3660046153f2565b610e9f565b3480156104ee57600080fd5b506105026104fd36600461540b565b610ed3565b005b34801561051057600080fd5b50609954610492565b34801561052557600080fd5b50610502610534366004615435565b611064565b34801561054557600080fd5b50610492610554366004615356565b6101c96020526000908152604090205481565b34801561057357600080fd5b5061050261058236600461546e565b611321565b34801561059357600080fd5b50610492606481565b3480156105a857600080fd5b506104926105b736600461540b565b6113c3565b3480156105c857600080fd5b506104926105d7366004615356565b6101c86020526000908152604090205481565b3480156105f657600080fd5b506105026106053660046152eb565b611492565b34801561061657600080fd5b50610502610625366004615356565b6119bb565b34801561063657600080fd5b50610492603281565b34801561064b57600080fd5b5061050261065a36600461546e565b611bc0565b34801561066b57600080fd5b506101c4546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b61050261069b366004615584565b611bdb565b3480156106ac57600080fd5b506104926106bb3660046153f2565b611dd1565b3480156106cc57600080fd5b50610492611e8f565b3480156106e157600080fd5b50610502611f7b565b3480156106f657600080fd5b506105026107053660046155d2565b611f8d565b34801561071657600080fd5b50610502610725366004615356565b612084565b34801561073657600080fd5b5061012d5460ff16610409565b34801561074f57600080fd5b506103bf61075e3660046153f2565b612154565b34801561076f57600080fd5b506101c3546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561079d57600080fd5b5061083f6107ac3660046153f2565b6101c66020526000908152604090205471ffffffffffffffffffffffffffffffffffff8116907201000000000000000000000000000000000000810464ffffffffff169077010000000000000000000000000000000000000000000000810467ffffffffffffffff16907f0100000000000000000000000000000000000000000000000000000000000000900460ff1684565b6040805171ffffffffffffffffffffffffffffffffffff909516855264ffffffffff909316602085015267ffffffffffffffff9091169183019190915260ff1660608201526080016103e0565b34801561089857600080fd5b506105026108a7366004615356565b6121e0565b3480156108b857600080fd5b506104926108c7366004615356565b6122fa565b3480156108d857600080fd5b506105026123c8565b3480156108ed57600080fd5b506104926101ca5481565b34801561090457600080fd5b50610918610913366004615633565b6123da565b6040516103e09190615666565b34801561093157600080fd5b506105026125f1565b34801561094657600080fd5b50610492605a81565b34801561095b57600080fd5b5060c95473ffffffffffffffffffffffffffffffffffffffff166103bf565b34801561098657600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109ba57600080fd5b506104b56126a3565b3480156109cf57600080fd5b506104396109de3660046153f2565b6126b2565b3480156109ef57600080fd5b506105026109fe3660046156cd565b6126d6565b348015610a0f57600080fd5b50610ab2610a1e3660046153f2565b60009081526101c6602052604090205477010000000000000000000000000000000000000000000000810467ffffffffffffffff169171ffffffffffffffffffffffffffffffffffff8216917201000000000000000000000000000000000000810464ffffffffff16917f010000000000000000000000000000000000000000000000000000000000000090910460ff1690565b6040805194855260208501939093529183015260608201526080016103e0565b348015610ade57600080fd5b50610502610aed366004615356565b6126e1565b348015610afe57600080fd5b506105026127aa565b348015610b1357600080fd5b506101c5546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610b4157600080fd5b5061049263077f880081565b348015610b5957600080fd5b50610502610b6836600461540b565b6127ba565b348015610b7957600080fd5b50610502610b88366004615704565b6127e6565b348015610b9957600080fd5b506104926301dfe20081565b348015610bb157600080fd5b50610502610bc0366004615356565b61288e565b348015610bd157600080fd5b506104b5610be03660046153f2565b612b00565b348015610bf157600080fd5b50610502610c0036600461576c565b612b73565b348015610c1157600080fd5b50610492610c20366004615356565b612be2565b348015610c3157600080fd5b5060fb5473ffffffffffffffffffffffffffffffffffffffff166103bf565b348015610c5c57600080fd5b506103bf7f000000000000000000000000000000000000000000000000000000000000000081565b348015610c9057600080fd5b506104926101c75481565b348015610ca757600080fd5b50610409610cb6366004615814565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b348015610cfd57600080fd5b50610d11610d0c366004615633565b612ca9565b6040516103e09190615847565b348015610d2a57600080fd5b50610502610d39366004615356565b612d80565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610d945750610d9482612e30565b92915050565b60008082815b81811015610e04576000610dcb878784818110610dbf57610dbf61588b565b90506020020135612f13565b9050600080610dd983612ff1565b9092509050610de882886158e9565b9650610df481876158e9565b9550836001019350505050610da0565b50509250929050565b606060658054610e1c906158fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e48906158fc565b8015610e955780601f10610e6a57610100808354040283529160200191610e95565b820191906000526020600020905b815481529060010190602001808311610e7857829003601f168201915b5050505050905090565b6000610eaa82613029565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610ede82612154565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610fc95750610fc98133610cb6565b611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610f97565b61105f83836130b4565b505050565b73ffffffffffffffffffffffffffffffffffffffff84166110b1576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60648111156110ec576040517f30aed3ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032811015611127576040517f6eede11900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003611161576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c354604080517f04646a49000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916304646a499160048083019260209291908290030181865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f6919061594f565b905080831080611209575063077f880083115b15611240576040517f7616640100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af11580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fd9190615968565b50600061130a84426158e9565b90506113198682878787613154565b505050505050565b61132c335b8261341d565b6113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610f97565b61105f8383836134dd565b60006113ce836122fa565b821061145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610f97565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152609760209081526040808320938352929052205490565b61149a61351f565b60008082815b818110156115ac5760008686838181106114bc576114bc61588b565b9050602002013590503373ffffffffffffffffffffffffffffffffffffffff166115088260009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611529575061159c565b60008061153d61153884612f13565b612ff1565b60008581526101c66020526040902080547fffffffffffffffffffffffffffff00000000000000000000000000000000000016905590925090506115808361358d565b61158a82886158e9565b965061159681876158e9565b95505050505b6115a581615985565b90506114a0565b5060006115b983856158e9565b905080156113195760006115cc33612be2565b905080821115611665576101c3546040517f7f94e8ff000000000000000000000000000000000000000000000000000000008152336004820152828403602482018190529173ffffffffffffffffffffffffffffffffffffffff1690637f94e8ff90604401600060405180830381600087803b15801561164b57600080fd5b505af115801561165f573d6000803e3d6000fd5b50505050505b816101ca600082825461167891906159bd565b90915550503360009081526101c860205260408120805484929061169d9084906159bd565b90915550503360009081526101c96020526040812080548792906116c29084906158e9565b909155505083156118bf5760006116da6002866159d0565b905060006116e882876159bd565b6101c5546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018590529192507f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af1158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a89190615968565b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561185e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118829190615968565b5060408051838152602081018390527fadd2755028f410fd28d5b98415bb469e4a5f7824d30429ca1c0c8a54de1eb537910160405180910390a150505b841561197e576040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303816000875af1158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c9190615968565b505b60405185815233907ed5958799b183a7b738d3ad5e711305293dd5076a37a4e3b7e6611dea6114f39060200160405180910390a250505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003611a80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610f97565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611af57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611b98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f97565b611ba181613673565b60408051600080825260208201909252611bbd9183919061367b565b50565b61105f838383604051806020016040528060008152506127e6565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003611ca0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610f97565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611d157f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611db8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f97565b611dc182613673565b611dcd8282600161367b565b5050565b6000611ddc60995490565b8210611e6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610f97565b60998281548110611e7d57611e7d61588b565b90600052602060002001549050919050565b60003073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f97565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611f8361387a565b611f8b6138fb565b565b611f9561351f565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ffa576040517fdad89dca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815b8181101561207857600085858381811061201b5761201b61588b565b6020908102929092013560008181526101c69093526040909220549192506120599171ffffffffffffffffffffffffffffffffffff169050856158e9565b935061206481613979565b61206f888883613a0e565b50600101611fff565b50611319868684613d16565b61208c61387a565b73ffffffffffffffffffffffffffffffffffffffff81166120d9576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f790bf62e04348d5f5d45f86cb3a270b9b281e2e4e11f54a24eca40cf4dea5703906020015b60405180910390a150565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610f97565b6121e861387a565b73ffffffffffffffffffffffffffffffffffffffff8116612235576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c35473ffffffffffffffffffffffffffffffffffffffff1615612286576040517fa32250de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fb63c81227c62f4cb3e2b1120e3afbf3a2ed5dd8b9d99b8bef7275b084e6a98cb90602001612149565b600073ffffffffffffffffffffffffffffffffffffffff821661239f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610f97565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6123d061387a565b611f8b6000613db9565b606081600003612439576040805160008082526020820190925290612431565b61241e60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816123fa5790505b5090506125ea565b600061244583856158e9565b90506000612452866122fa565b905080821115612460578091505b848210156124bf5760408051600080825260208201909252906124b5565b6124a260405180606001604052806000815260200160008152602001600081525090565b81526020019060019003908161247e5790505b50925050506125ea565b84820360008167ffffffffffffffff8111156124dd576124dd6154aa565b60405190808252806020026020018201604052801561253257816020015b61251f60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816124fb5790505b50905060005b828110156125e357600061254e8a8a84016113c3565b60008181526101c660209081526040918290208251606081018452815471ffffffffffffffffffffffffffffffffffff811682529281018590527701000000000000000000000000000000000000000000000090920467ffffffffffffffff1692820192909252855192935090918590859081106125ce576125ce61588b565b60209081029190910101525050600101612538565b5093505050505b9392505050565b60fb54339073ffffffffffffffffffffffffffffffffffffffff16811461269a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610f97565b611bbd81613db9565b606060668054610e1c906158fc565b60008060006126c084612f13565b90506126cb81612ff1565b909590945092505050565b611dcd338383613dea565b6126e961387a565b73ffffffffffffffffffffffffffffffffffffffff8116612736576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd780e06c55efd6b3157e8c26704d2fd7bd2750bd9d0e71d2e5f675572dfad7a290602001612149565b6127b261387a565b611f8b613f17565b6127c2613f73565b60006127d26301dfe200426158e9565b905061105f8382846301dfe200605a613154565b6127f0338361341d565b61287c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610f97565b61288884848484613fc5565b50505050565b600054610100900460ff16158080156128ae5750600054600160ff909116105b806128c85750303b1580156128c8575060005460ff166001145b612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f97565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156129b257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff82166129ff576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a736040518060400160405280601481526020017f4b77656e74612052657761726420457363726f770000000000000000000000008152506040518060400160405280600381526020017f4b52450000000000000000000000000000000000000000000000000000000000815250614068565b612a7b614109565b612a836141a8565b612a8b614247565b612a9482613db9565b60016101c7558015611dcd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060612b0b82613029565b6000612b2260408051602081019091526000815290565b90506000815111612b4257604051806020016040528060008152506125ea565b80612b4c846142de565b604051602001612b5d929190615a0b565b6040516020818303038152906040529392505050565b6101c45473ffffffffffffffffffffffffffffffffffffffff163314612bc5576040517f8f8a680600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dcd828260400151836000015184602001518560600151613154565b6101c3546040517f057a601b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152600092169063057a601b90602401602060405180830381865afa158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c78919061594f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526101c86020526040902054610d9491906159bd565b60606000612cb783856158e9565b90506000612cc4866122fa565b905080821115612cd2578091505b848211612cef5760408051600080825260208201909252906124b5565b6000612cfb86846159bd565b905060008167ffffffffffffffff811115612d1857612d186154aa565b604051908082528060200260200182016040528015612d41578160200160208202803683370190505b50905060005b828110156125e357612d5b898983016113c3565b828281518110612d6d57612d6d61588b565b6020908102919091010152600101612d47565b612d8861387a565b60fb805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155612deb60c95473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480612ec357507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610d9457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610d94565b612f3e6040518060800160405280600081526020016000815260200160008152602001600081525090565b5060009081526101c660209081526040918290208251608081018452905471ffffffffffffffffffffffffffffffffffff811682527201000000000000000000000000000000000000810464ffffffffff169282019290925277010000000000000000000000000000000000000000000000820467ffffffffffffffff16928101929092527f0100000000000000000000000000000000000000000000000000000000000000900460ff16606082015290565b805160408201516000918291421061300b57809250613023565b6130148461439c565b915061302082826159bd565b92505b50915091565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610f97565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155819061310e82612154565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61315c61351f565b826101ca600082825461316f91906158e9565b90915550506101ca546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613226919061594f565b101561323457613234615a3a565b73ffffffffffffffffffffffffffffffffffffffff851660009081526101c860205260408120805485929061326a9084906158e9565b90915550506101c78054604080516080808201835271ffffffffffffffffffffffffffffffffffff888116835264ffffffffff888116602080860191825267ffffffffffffffff8d811687890190815260ff8c81166060808b0191825260008d81526101c687528c90209a518b549751945192519093167f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9290951677010000000000000000000000000000000000000000000000029190911676ffffffffffffffffffffffffffffffffffffffffffffff939097167201000000000000000000000000000000000000027fffffffffffffffffff000000000000000000000000000000000000000000000090961691909716179390931792909216929092171790935585546001019095558251888152918201879052918101839052928301849052909173ffffffffffffffffffffffffffffffffffffffff8816917f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc0910160405180910390a261131986826143e8565b60008061342983612154565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613497575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b806134d557508373ffffffffffffffffffffffffffffffffffffffff166134bd84610e9f565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b6134e561351f565b60008181526101c6602052604090205471ffffffffffffffffffffffffffffffffffff16613514848483613d16565b612888848484613a0e565b61012d5460ff1615611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f97565b600061359882612154565b90506135a881600084600161461b565b6135b182612154565b600083815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611bbd61387a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156136ae5761105f836147bf565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613733575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526137309181019061594f565b60015b6137bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610f97565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461386e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610f97565b5061105f8383836148c9565b60c95473ffffffffffffffffffffffffffffffffffffffff163314611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f97565b6139036148ee565b61012d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61398233611326565b611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610f97565b8273ffffffffffffffffffffffffffffffffffffffff16613a2e82612154565b73ffffffffffffffffffffffffffffffffffffffff1614613ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610f97565b73ffffffffffffffffffffffffffffffffffffffff8216613b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610f97565b613b80838383600161461b565b8273ffffffffffffffffffffffffffffffffffffffff16613ba082612154565b73ffffffffffffffffffffffffffffffffffffffff1614613c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610f97565b600081815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000613d2184612be2565b905081811015613d67576040517f89906d5e0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610f97565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526101c860205260408082208054869003905591851681529081208054849290613dae9084906158e9565b909155505050505050565b60fb80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055611bbd8161495b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610f97565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613f1f61351f565b61012d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861394f3390565b6101c35473ffffffffffffffffffffffffffffffffffffffff163314611f8b576040517f18bc9fde00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613fd08484846134dd565b613fdc848484846149d2565b612888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610f97565b600054610100900460ff166140ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611dcd8282614bc5565b600054610100900460ff166141a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611f8b614c75565b600054610100900460ff1661423f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611f8b614d15565b600054610100900460ff16611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b606060006142eb83614dd7565b600101905060008167ffffffffffffffff81111561430b5761430b6154aa565b6040519080825280601f01601f191660200182016040528015614335576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461433f57509392505050565b6000804283604001516143af91906159bd565b9050826020015160646143c29190615a69565b6060840151845183916143d491615a69565b6143de9190615a69565b6125ea91906159d0565b73ffffffffffffffffffffffffffffffffffffffff8216614465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610f97565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16156144f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610f97565b6144ff60008383600161461b565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff161561458b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610f97565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60018111156146ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610f97565b8173ffffffffffffffffffffffffffffffffffffffff85166147155761471081609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b614752565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614614752576147528582614eb9565b73ffffffffffffffffffffffffffffffffffffffff841661477b5761477681614f70565b6147b8565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146147b8576147b8848261501f565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff81163b614863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610f97565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6148d283615070565b6000825111806148df5750805b1561105f5761288883836150bd565b61012d5460ff16611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f97565b60c9805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600073ffffffffffffffffffffffffffffffffffffffff84163b15614bba576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290614a49903390899088908890600401615a80565b6020604051808303816000875af1925050508015614aa2575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252614a9f91810190615ac9565b60015b614b6f573d808015614ad0576040519150601f19603f3d011682016040523d82523d6000602084013e614ad5565b606091505b508051600003614b67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610f97565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506134d5565b506001949350505050565b600054610100900460ff16614c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b6065614c688382615b2c565b50606661105f8282615b2c565b600054610100900460ff16614d0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611f8b33613db9565b600054610100900460ff16614dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b61012d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310614e20577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310614e4c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310614e6a57662386f26fc10000830492506010015b6305f5e1008310614e82576305f5e100830492506008015b6127108310614e9657612710830492506004015b60648310614ea8576064830492506002015b600a8310610d945760010192915050565b60006001614ec6846122fa565b614ed091906159bd565b600083815260986020526040902054909150808214614f305773ffffffffffffffffffffffffffffffffffffffff841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b50600091825260986020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352609781528383209183525290812055565b609954600090614f82906001906159bd565b6000838152609a602052604081205460998054939450909284908110614faa57614faa61588b565b906000526020600020015490508060998381548110614fcb57614fcb61588b565b6000918252602080832090910192909255828152609a9091526040808220849055858252812055609980548061500357615003615c46565b6001900381819060005260206000200160009055905550505050565b600061502a836122fa565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b615079816147bf565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606073ffffffffffffffffffffffffffffffffffffffff83163b615163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610f97565b6000808473ffffffffffffffffffffffffffffffffffffffff168460405161518b9190615c75565b600060405180830381855af49150503d80600081146151c6576040519150601f19603f3d011682016040523d82523d6000602084013e6151cb565b606091505b50915091506151f38282604051806060016040528060278152602001615c92602791396151fc565b95945050505050565b6060831561520b5750816125ea565b6125ea83838151156152205781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9791906153df565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611bbd57600080fd5b60006020828403121561529457600080fd5b81356125ea81615254565b60008083601f8401126152b157600080fd5b50813567ffffffffffffffff8111156152c957600080fd5b6020830191508360208260051b85010111156152e457600080fd5b9250929050565b600080602083850312156152fe57600080fd5b823567ffffffffffffffff81111561531557600080fd5b6153218582860161529f565b90969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461535157600080fd5b919050565b60006020828403121561536857600080fd5b6125ea8261532d565b60005b8381101561538c578181015183820152602001615374565b50506000910152565b600081518084526153ad816020860160208601615371565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006125ea6020830184615395565b60006020828403121561540457600080fd5b5035919050565b6000806040838503121561541e57600080fd5b6154278361532d565b946020939093013593505050565b6000806000806080858703121561544b57600080fd5b6154548561532d565b966020860135965060408601359560600135945092505050565b60008060006060848603121561548357600080fd5b61548c8461532d565b925061549a6020850161532d565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126154ea57600080fd5b813567ffffffffffffffff80821115615505576155056154aa565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561554b5761554b6154aa565b8160405283815286602085880101111561556457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561559757600080fd5b6155a08361532d565b9150602083013567ffffffffffffffff8111156155bc57600080fd5b6155c8858286016154d9565b9150509250929050565b600080600080606085870312156155e857600080fd5b6155f18561532d565b93506155ff6020860161532d565b9250604085013567ffffffffffffffff81111561561b57600080fd5b6156278782880161529f565b95989497509550505050565b60008060006060848603121561564857600080fd5b6156518461532d565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b828110156156b25781518051855286810151878601528501518585015260609093019290850190600101615683565b5091979650505050505050565b8015158114611bbd57600080fd5b600080604083850312156156e057600080fd5b6156e98361532d565b915060208301356156f9816156bf565b809150509250929050565b6000806000806080858703121561571a57600080fd5b6157238561532d565b93506157316020860161532d565b925060408501359150606085013567ffffffffffffffff81111561575457600080fd5b615760878288016154d9565b91505092959194509250565b60008082840360a081121561578057600080fd5b6157898461532d565b925060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820112156157bb57600080fd5b506040516080810181811067ffffffffffffffff821117156157df576157df6154aa565b806040525060208401358152604084013560208201526060840135604082015260808401356060820152809150509250929050565b6000806040838503121561582757600080fd5b6158308361532d565b915061583e6020840161532d565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561587f57835183529284019291840191600101615863565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610d9457610d946158ba565b600181811c9082168061591057607f821691505b602082108103615949577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561596157600080fd5b5051919050565b60006020828403121561597a57600080fd5b81516125ea816156bf565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036159b6576159b66158ba565b5060010190565b81810381811115610d9457610d946158ba565b600082615a06577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008351615a1d818460208801615371565b835190830190615a31818360208801615371565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8082028115828204841417610d9457610d946158ba565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152615abf6080830184615395565b9695505050505050565b600060208284031215615adb57600080fd5b81516125ea81615254565b601f82111561105f57600081815260208120601f850160051c81016020861015615b0d5750805b601f850160051c820191505b8181101561131957828155600101615b19565b815167ffffffffffffffff811115615b4657615b466154aa565b615b5a81615b5484546158fc565b84615ae6565b602080601f831160018114615bad5760008415615b775750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611319565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615bfa57888601518255948401946001909101908401615bdb565b5085821015615c3657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251615c87818460208701615371565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207d47b5b8b003956bd605d161e66e5a5ddf96b1b53c8b5c833cc032c61903dac364736f6c63430008130033000000000000000000000000920cf626a271321c151d027030d5d08af699456b000000000000000000000000b176dad2916db0905cd2d65ed54fdc3a878affe4
Deployed Bytecode
0x60806040526004361061038b5760003560e01c80636fb83a57116101dc578063ad18e97e11610102578063ca2c7f76116100a0578063e6b2cf6c1161006f578063e6b2cf6c14610c84578063e985e9c514610c9b578063eac6248914610cf1578063f2fde38b14610d1e57600080fd5b8063ca2c7f7614610be5578063daf3807314610c05578063e30c397814610c25578063e509584314610c5057600080fd5b8063b88d4fde116100dc578063b88d4fde14610b6d578063c297fa0f14610b8d578063c4d66de814610ba5578063c87b56dd14610bc557600080fd5b8063ad18e97e14610b07578063b1724b4614610b35578063b5ddb9c714610b4d57600080fd5b80638da5cb5b1161017a578063a22cb46511610149578063a22cb465146109e3578063a4116a7e14610a03578063a46eddcf14610ad2578063ac2fdb1a14610af257600080fd5b80638da5cb5b1461094f5780639034802b1461097a57806395d89b41146109ae57806398ab1e3d146109c357600080fd5b806371e780f3116101b657806371e780f3146108e1578063773ab39f146108f857806379ba5097146109255780637d5ff94d1461093a57600080fd5b80636fb83a571461088c57806370a08231146108ac578063715018a6146108cc57600080fd5b806334c7fec9116102c157806352d1902d1161025f5780635c975abb1161022e5780635c975abb1461072a5780636352211e1461074357806364b87a70146107635780636d3cbe211461079157600080fd5b806352d1902d146106c0578063534c0842146106d557806353a535d3146106ea5780635414408d1461070a57600080fd5b806342842e0e1161029b57806342842e0e1461063f57806348591dd71461065f5780634f1ef2861461068d5780634f6ccce7146106a057600080fd5b806334c7fec9146105ea5780633659cfe61461060a5780633e7f4c091461062a57600080fd5b806318160ddd1161032e57806323b872dd1161030857806323b872dd1461056757806324c0f5b5146105875780632f745c591461059c578063326a3cfb146105bc57600080fd5b806318160ddd1461050457806318c1cb5214610519578063227d517a1461053957600080fd5b8063057a601b1161036a578063057a601b1461044e57806306fdde03146104a0578063081812fc146104c2578063095ea7b3146104e257600080fd5b80624d37e21461039057806301ffc9a7146103e957806303df264014610419575b600080fd5b34801561039c57600080fd5b507f000000000000000000000000920cf626a271321c151d027030d5d08af699456b5b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156103f557600080fd5b50610409610404366004615282565b610d3e565b60405190151581526020016103e0565b34801561042557600080fd5b506104396104343660046152eb565b610d9a565b604080519283526020830191909152016103e0565b34801561045a57600080fd5b50610492610469366004615356565b73ffffffffffffffffffffffffffffffffffffffff1660009081526101c8602052604090205490565b6040519081526020016103e0565b3480156104ac57600080fd5b506104b5610e0d565b6040516103e091906153df565b3480156104ce57600080fd5b506103bf6104dd3660046153f2565b610e9f565b3480156104ee57600080fd5b506105026104fd36600461540b565b610ed3565b005b34801561051057600080fd5b50609954610492565b34801561052557600080fd5b50610502610534366004615435565b611064565b34801561054557600080fd5b50610492610554366004615356565b6101c96020526000908152604090205481565b34801561057357600080fd5b5061050261058236600461546e565b611321565b34801561059357600080fd5b50610492606481565b3480156105a857600080fd5b506104926105b736600461540b565b6113c3565b3480156105c857600080fd5b506104926105d7366004615356565b6101c86020526000908152604090205481565b3480156105f657600080fd5b506105026106053660046152eb565b611492565b34801561061657600080fd5b50610502610625366004615356565b6119bb565b34801561063657600080fd5b50610492603281565b34801561064b57600080fd5b5061050261065a36600461546e565b611bc0565b34801561066b57600080fd5b506101c4546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b61050261069b366004615584565b611bdb565b3480156106ac57600080fd5b506104926106bb3660046153f2565b611dd1565b3480156106cc57600080fd5b50610492611e8f565b3480156106e157600080fd5b50610502611f7b565b3480156106f657600080fd5b506105026107053660046155d2565b611f8d565b34801561071657600080fd5b50610502610725366004615356565b612084565b34801561073657600080fd5b5061012d5460ff16610409565b34801561074f57600080fd5b506103bf61075e3660046153f2565b612154565b34801561076f57600080fd5b506101c3546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561079d57600080fd5b5061083f6107ac3660046153f2565b6101c66020526000908152604090205471ffffffffffffffffffffffffffffffffffff8116907201000000000000000000000000000000000000810464ffffffffff169077010000000000000000000000000000000000000000000000810467ffffffffffffffff16907f0100000000000000000000000000000000000000000000000000000000000000900460ff1684565b6040805171ffffffffffffffffffffffffffffffffffff909516855264ffffffffff909316602085015267ffffffffffffffff9091169183019190915260ff1660608201526080016103e0565b34801561089857600080fd5b506105026108a7366004615356565b6121e0565b3480156108b857600080fd5b506104926108c7366004615356565b6122fa565b3480156108d857600080fd5b506105026123c8565b3480156108ed57600080fd5b506104926101ca5481565b34801561090457600080fd5b50610918610913366004615633565b6123da565b6040516103e09190615666565b34801561093157600080fd5b506105026125f1565b34801561094657600080fd5b50610492605a81565b34801561095b57600080fd5b5060c95473ffffffffffffffffffffffffffffffffffffffff166103bf565b34801561098657600080fd5b506103bf7f000000000000000000000000920cf626a271321c151d027030d5d08af699456b81565b3480156109ba57600080fd5b506104b56126a3565b3480156109cf57600080fd5b506104396109de3660046153f2565b6126b2565b3480156109ef57600080fd5b506105026109fe3660046156cd565b6126d6565b348015610a0f57600080fd5b50610ab2610a1e3660046153f2565b60009081526101c6602052604090205477010000000000000000000000000000000000000000000000810467ffffffffffffffff169171ffffffffffffffffffffffffffffffffffff8216917201000000000000000000000000000000000000810464ffffffffff16917f010000000000000000000000000000000000000000000000000000000000000090910460ff1690565b6040805194855260208501939093529183015260608201526080016103e0565b348015610ade57600080fd5b50610502610aed366004615356565b6126e1565b348015610afe57600080fd5b506105026127aa565b348015610b1357600080fd5b506101c5546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610b4157600080fd5b5061049263077f880081565b348015610b5957600080fd5b50610502610b6836600461540b565b6127ba565b348015610b7957600080fd5b50610502610b88366004615704565b6127e6565b348015610b9957600080fd5b506104926301dfe20081565b348015610bb157600080fd5b50610502610bc0366004615356565b61288e565b348015610bd157600080fd5b506104b5610be03660046153f2565b612b00565b348015610bf157600080fd5b50610502610c0036600461576c565b612b73565b348015610c1157600080fd5b50610492610c20366004615356565b612be2565b348015610c3157600080fd5b5060fb5473ffffffffffffffffffffffffffffffffffffffff166103bf565b348015610c5c57600080fd5b506103bf7f000000000000000000000000b176dad2916db0905cd2d65ed54fdc3a878affe481565b348015610c9057600080fd5b506104926101c75481565b348015610ca757600080fd5b50610409610cb6366004615814565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b348015610cfd57600080fd5b50610d11610d0c366004615633565b612ca9565b6040516103e09190615847565b348015610d2a57600080fd5b50610502610d39366004615356565b612d80565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610d945750610d9482612e30565b92915050565b60008082815b81811015610e04576000610dcb878784818110610dbf57610dbf61588b565b90506020020135612f13565b9050600080610dd983612ff1565b9092509050610de882886158e9565b9650610df481876158e9565b9550836001019350505050610da0565b50509250929050565b606060658054610e1c906158fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e48906158fc565b8015610e955780601f10610e6a57610100808354040283529160200191610e95565b820191906000526020600020905b815481529060010190602001808311610e7857829003601f168201915b5050505050905090565b6000610eaa82613029565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610ede82612154565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff82161480610fc95750610fc98133610cb6565b611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610f97565b61105f83836130b4565b505050565b73ffffffffffffffffffffffffffffffffffffffff84166110b1576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60648111156110ec576040517f30aed3ff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6032811015611127576040517f6eede11900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82600003611161576040517f1f2a200500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c354604080517f04646a49000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff16916304646a499160048083019260209291908290030181865afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f6919061594f565b905080831080611209575063077f880083115b15611240576040517f7616640100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590527f000000000000000000000000920cf626a271321c151d027030d5d08af699456b73ffffffffffffffffffffffffffffffffffffffff16906323b872dd906064016020604051808303816000875af11580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fd9190615968565b50600061130a84426158e9565b90506113198682878787613154565b505050505050565b61132c335b8261341d565b6113b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610f97565b61105f8383836134dd565b60006113ce836122fa565b821061145c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610f97565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152609760209081526040808320938352929052205490565b61149a61351f565b60008082815b818110156115ac5760008686838181106114bc576114bc61588b565b9050602002013590503373ffffffffffffffffffffffffffffffffffffffff166115088260009081526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611529575061159c565b60008061153d61153884612f13565b612ff1565b60008581526101c66020526040902080547fffffffffffffffffffffffffffff00000000000000000000000000000000000016905590925090506115808361358d565b61158a82886158e9565b965061159681876158e9565b95505050505b6115a581615985565b90506114a0565b5060006115b983856158e9565b905080156113195760006115cc33612be2565b905080821115611665576101c3546040517f7f94e8ff000000000000000000000000000000000000000000000000000000008152336004820152828403602482018190529173ffffffffffffffffffffffffffffffffffffffff1690637f94e8ff90604401600060405180830381600087803b15801561164b57600080fd5b505af115801561165f573d6000803e3d6000fd5b50505050505b816101ca600082825461167891906159bd565b90915550503360009081526101c860205260408120805484929061169d9084906159bd565b90915550503360009081526101c96020526040812080548792906116c29084906158e9565b909155505083156118bf5760006116da6002866159d0565b905060006116e882876159bd565b6101c5546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018590529192507f000000000000000000000000920cf626a271321c151d027030d5d08af699456b169063a9059cbb906044016020604051808303816000875af1158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a89190615968565b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000b176dad2916db0905cd2d65ed54fdc3a878affe481166004830152602482018390527f000000000000000000000000920cf626a271321c151d027030d5d08af699456b169063a9059cbb906044016020604051808303816000875af115801561185e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118829190615968565b5060408051838152602081018390527fadd2755028f410fd28d5b98415bb469e4a5f7824d30429ca1c0c8a54de1eb537910160405180910390a150505b841561197e576040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690527f000000000000000000000000920cf626a271321c151d027030d5d08af699456b73ffffffffffffffffffffffffffffffffffffffff169063a9059cbb906044016020604051808303816000875af1158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c9190615968565b505b60405185815233907ed5958799b183a7b738d3ad5e711305293dd5076a37a4e3b7e6611dea6114f39060200160405180910390a250505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000fbf7d647e94780f2787f8d80da59dce74d40c5cc163003611a80576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610f97565b7f000000000000000000000000fbf7d647e94780f2787f8d80da59dce74d40c5cc73ffffffffffffffffffffffffffffffffffffffff16611af57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611b98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f97565b611ba181613673565b60408051600080825260208201909252611bbd9183919061367b565b50565b61105f838383604051806020016040528060008152506127e6565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000fbf7d647e94780f2787f8d80da59dce74d40c5cc163003611ca0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610f97565b7f000000000000000000000000fbf7d647e94780f2787f8d80da59dce74d40c5cc73ffffffffffffffffffffffffffffffffffffffff16611d157f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614611db8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610f97565b611dc182613673565b611dcd8282600161367b565b5050565b6000611ddc60995490565b8210611e6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610f97565b60998281548110611e7d57611e7d61588b565b90600052602060002001549050919050565b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000fbf7d647e94780f2787f8d80da59dce74d40c5cc1614611f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f97565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611f8361387a565b611f8b6138fb565b565b611f9561351f565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ffa576040517fdad89dca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815b8181101561207857600085858381811061201b5761201b61588b565b6020908102929092013560008181526101c69093526040909220549192506120599171ffffffffffffffffffffffffffffffffffff169050856158e9565b935061206481613979565b61206f888883613a0e565b50600101611fff565b50611319868684613d16565b61208c61387a565b73ffffffffffffffffffffffffffffffffffffffff81166120d9576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f790bf62e04348d5f5d45f86cb3a270b9b281e2e4e11f54a24eca40cf4dea5703906020015b60405180910390a150565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610f97565b6121e861387a565b73ffffffffffffffffffffffffffffffffffffffff8116612235576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c35473ffffffffffffffffffffffffffffffffffffffff1615612286576040517fa32250de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fb63c81227c62f4cb3e2b1120e3afbf3a2ed5dd8b9d99b8bef7275b084e6a98cb90602001612149565b600073ffffffffffffffffffffffffffffffffffffffff821661239f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610f97565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6123d061387a565b611f8b6000613db9565b606081600003612439576040805160008082526020820190925290612431565b61241e60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816123fa5790505b5090506125ea565b600061244583856158e9565b90506000612452866122fa565b905080821115612460578091505b848210156124bf5760408051600080825260208201909252906124b5565b6124a260405180606001604052806000815260200160008152602001600081525090565b81526020019060019003908161247e5790505b50925050506125ea565b84820360008167ffffffffffffffff8111156124dd576124dd6154aa565b60405190808252806020026020018201604052801561253257816020015b61251f60405180606001604052806000815260200160008152602001600081525090565b8152602001906001900390816124fb5790505b50905060005b828110156125e357600061254e8a8a84016113c3565b60008181526101c660209081526040918290208251606081018452815471ffffffffffffffffffffffffffffffffffff811682529281018590527701000000000000000000000000000000000000000000000090920467ffffffffffffffff1692820192909252855192935090918590859081106125ce576125ce61588b565b60209081029190910101525050600101612538565b5093505050505b9392505050565b60fb54339073ffffffffffffffffffffffffffffffffffffffff16811461269a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610f97565b611bbd81613db9565b606060668054610e1c906158fc565b60008060006126c084612f13565b90506126cb81612ff1565b909590945092505050565b611dcd338383613dea565b6126e961387a565b73ffffffffffffffffffffffffffffffffffffffff8116612736576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101c580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd780e06c55efd6b3157e8c26704d2fd7bd2750bd9d0e71d2e5f675572dfad7a290602001612149565b6127b261387a565b611f8b613f17565b6127c2613f73565b60006127d26301dfe200426158e9565b905061105f8382846301dfe200605a613154565b6127f0338361341d565b61287c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610f97565b61288884848484613fc5565b50505050565b600054610100900460ff16158080156128ae5750600054600160ff909116105b806128c85750303b1580156128c8575060005460ff166001145b612954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610f97565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156129b257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff82166129ff576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a736040518060400160405280601481526020017f4b77656e74612052657761726420457363726f770000000000000000000000008152506040518060400160405280600381526020017f4b52450000000000000000000000000000000000000000000000000000000000815250614068565b612a7b614109565b612a836141a8565b612a8b614247565b612a9482613db9565b60016101c7558015611dcd57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060612b0b82613029565b6000612b2260408051602081019091526000815290565b90506000815111612b4257604051806020016040528060008152506125ea565b80612b4c846142de565b604051602001612b5d929190615a0b565b6040516020818303038152906040529392505050565b6101c45473ffffffffffffffffffffffffffffffffffffffff163314612bc5576040517f8f8a680600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dcd828260400151836000015184602001518560600151613154565b6101c3546040517f057a601b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152600092169063057a601b90602401602060405180830381865afa158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c78919061594f565b73ffffffffffffffffffffffffffffffffffffffff831660009081526101c86020526040902054610d9491906159bd565b60606000612cb783856158e9565b90506000612cc4866122fa565b905080821115612cd2578091505b848211612cef5760408051600080825260208201909252906124b5565b6000612cfb86846159bd565b905060008167ffffffffffffffff811115612d1857612d186154aa565b604051908082528060200260200182016040528015612d41578160200160208202803683370190505b50905060005b828110156125e357612d5b898983016113c3565b828281518110612d6d57612d6d61588b565b6020908102919091010152600101612d47565b612d8861387a565b60fb805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155612deb60c95473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480612ec357507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610d9457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610d94565b612f3e6040518060800160405280600081526020016000815260200160008152602001600081525090565b5060009081526101c660209081526040918290208251608081018452905471ffffffffffffffffffffffffffffffffffff811682527201000000000000000000000000000000000000810464ffffffffff169282019290925277010000000000000000000000000000000000000000000000820467ffffffffffffffff16928101929092527f0100000000000000000000000000000000000000000000000000000000000000900460ff16606082015290565b805160408201516000918291421061300b57809250613023565b6130148461439c565b915061302082826159bd565b92505b50915091565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610f97565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155819061310e82612154565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61315c61351f565b826101ca600082825461316f91906158e9565b90915550506101ca546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f000000000000000000000000920cf626a271321c151d027030d5d08af699456b73ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015613202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613226919061594f565b101561323457613234615a3a565b73ffffffffffffffffffffffffffffffffffffffff851660009081526101c860205260408120805485929061326a9084906158e9565b90915550506101c78054604080516080808201835271ffffffffffffffffffffffffffffffffffff888116835264ffffffffff888116602080860191825267ffffffffffffffff8d811687890190815260ff8c81166060808b0191825260008d81526101c687528c90209a518b549751945192519093167f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9290951677010000000000000000000000000000000000000000000000029190911676ffffffffffffffffffffffffffffffffffffffffffffff939097167201000000000000000000000000000000000000027fffffffffffffffffff000000000000000000000000000000000000000000000090961691909716179390931792909216929092171790935585546001019095558251888152918201879052918101839052928301849052909173ffffffffffffffffffffffffffffffffffffffff8816917f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc0910160405180910390a261131986826143e8565b60008061342983612154565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613497575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b806134d557508373ffffffffffffffffffffffffffffffffffffffff166134bd84610e9f565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b6134e561351f565b60008181526101c6602052604090205471ffffffffffffffffffffffffffffffffffff16613514848483613d16565b612888848484613a0e565b61012d5460ff1615611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610f97565b600061359882612154565b90506135a881600084600161461b565b6135b182612154565b600083815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526068845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b611bbd61387a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156136ae5761105f836147bf565b8273ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613733575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526137309181019061594f565b60015b6137bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610f97565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461386e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610f97565b5061105f8383836148c9565b60c95473ffffffffffffffffffffffffffffffffffffffff163314611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f97565b6139036148ee565b61012d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b61398233611326565b611bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610f97565b8273ffffffffffffffffffffffffffffffffffffffff16613a2e82612154565b73ffffffffffffffffffffffffffffffffffffffff1614613ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610f97565b73ffffffffffffffffffffffffffffffffffffffff8216613b73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610f97565b613b80838383600161461b565b8273ffffffffffffffffffffffffffffffffffffffff16613ba082612154565b73ffffffffffffffffffffffffffffffffffffffff1614613c43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610f97565b600081815260696020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526068855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000613d2184612be2565b905081811015613d67576040517f89906d5e0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610f97565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526101c860205260408082208054869003905591851681529081208054849290613dae9084906158e9565b909155505050505050565b60fb80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055611bbd8161495b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610f97565b73ffffffffffffffffffffffffffffffffffffffff8381166000818152606a602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613f1f61351f565b61012d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861394f3390565b6101c35473ffffffffffffffffffffffffffffffffffffffff163314611f8b576040517f18bc9fde00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613fd08484846134dd565b613fdc848484846149d2565b612888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610f97565b600054610100900460ff166140ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611dcd8282614bc5565b600054610100900460ff166141a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611f8b614c75565b600054610100900460ff1661423f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611f8b614d15565b600054610100900460ff16611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b606060006142eb83614dd7565b600101905060008167ffffffffffffffff81111561430b5761430b6154aa565b6040519080825280601f01601f191660200182016040528015614335576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461433f57509392505050565b6000804283604001516143af91906159bd565b9050826020015160646143c29190615a69565b6060840151845183916143d491615a69565b6143de9190615a69565b6125ea91906159d0565b73ffffffffffffffffffffffffffffffffffffffff8216614465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610f97565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff16156144f1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610f97565b6144ff60008383600161461b565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff161561458b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610f97565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260686020908152604080832080546001019055848352606790915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60018111156146ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e736563757469766520747260448201527f616e7366657273206e6f7420737570706f7274656400000000000000000000006064820152608401610f97565b8173ffffffffffffffffffffffffffffffffffffffff85166147155761471081609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b614752565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614614752576147528582614eb9565b73ffffffffffffffffffffffffffffffffffffffff841661477b5761477681614f70565b6147b8565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146147b8576147b8848261501f565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff81163b614863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610f97565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6148d283615070565b6000825111806148df5750805b1561105f5761288883836150bd565b61012d5460ff16611f8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610f97565b60c9805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600073ffffffffffffffffffffffffffffffffffffffff84163b15614bba576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290614a49903390899088908890600401615a80565b6020604051808303816000875af1925050508015614aa2575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252614a9f91810190615ac9565b60015b614b6f573d808015614ad0576040519150601f19603f3d011682016040523d82523d6000602084013e614ad5565b606091505b508051600003614b67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610f97565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506134d5565b506001949350505050565b600054610100900460ff16614c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b6065614c688382615b2c565b50606661105f8282615b2c565b600054610100900460ff16614d0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b611f8b33613db9565b600054610100900460ff16614dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610f97565b61012d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310614e20577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310614e4c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310614e6a57662386f26fc10000830492506010015b6305f5e1008310614e82576305f5e100830492506008015b6127108310614e9657612710830492506004015b60648310614ea8576064830492506002015b600a8310610d945760010192915050565b60006001614ec6846122fa565b614ed091906159bd565b600083815260986020526040902054909150808214614f305773ffffffffffffffffffffffffffffffffffffffff841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b50600091825260986020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352609781528383209183525290812055565b609954600090614f82906001906159bd565b6000838152609a602052604081205460998054939450909284908110614faa57614faa61588b565b906000526020600020015490508060998381548110614fcb57614fcb61588b565b6000918252602080832090910192909255828152609a9091526040808220849055858252812055609980548061500357615003615c46565b6001900381819060005260206000200160009055905550505050565b600061502a836122fa565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b615079816147bf565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606073ffffffffffffffffffffffffffffffffffffffff83163b615163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610f97565b6000808473ffffffffffffffffffffffffffffffffffffffff168460405161518b9190615c75565b600060405180830381855af49150503d80600081146151c6576040519150601f19603f3d011682016040523d82523d6000602084013e6151cb565b606091505b50915091506151f38282604051806060016040528060278152602001615c92602791396151fc565b95945050505050565b6060831561520b5750816125ea565b6125ea83838151156152205781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9791906153df565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611bbd57600080fd5b60006020828403121561529457600080fd5b81356125ea81615254565b60008083601f8401126152b157600080fd5b50813567ffffffffffffffff8111156152c957600080fd5b6020830191508360208260051b85010111156152e457600080fd5b9250929050565b600080602083850312156152fe57600080fd5b823567ffffffffffffffff81111561531557600080fd5b6153218582860161529f565b90969095509350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461535157600080fd5b919050565b60006020828403121561536857600080fd5b6125ea8261532d565b60005b8381101561538c578181015183820152602001615374565b50506000910152565b600081518084526153ad816020860160208601615371565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006125ea6020830184615395565b60006020828403121561540457600080fd5b5035919050565b6000806040838503121561541e57600080fd5b6154278361532d565b946020939093013593505050565b6000806000806080858703121561544b57600080fd5b6154548561532d565b966020860135965060408601359560600135945092505050565b60008060006060848603121561548357600080fd5b61548c8461532d565b925061549a6020850161532d565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126154ea57600080fd5b813567ffffffffffffffff80821115615505576155056154aa565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561554b5761554b6154aa565b8160405283815286602085880101111561556457600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561559757600080fd5b6155a08361532d565b9150602083013567ffffffffffffffff8111156155bc57600080fd5b6155c8858286016154d9565b9150509250929050565b600080600080606085870312156155e857600080fd5b6155f18561532d565b93506155ff6020860161532d565b9250604085013567ffffffffffffffff81111561561b57600080fd5b6156278782880161529f565b95989497509550505050565b60008060006060848603121561564857600080fd5b6156518461532d565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b828110156156b25781518051855286810151878601528501518585015260609093019290850190600101615683565b5091979650505050505050565b8015158114611bbd57600080fd5b600080604083850312156156e057600080fd5b6156e98361532d565b915060208301356156f9816156bf565b809150509250929050565b6000806000806080858703121561571a57600080fd5b6157238561532d565b93506157316020860161532d565b925060408501359150606085013567ffffffffffffffff81111561575457600080fd5b615760878288016154d9565b91505092959194509250565b60008082840360a081121561578057600080fd5b6157898461532d565b925060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820112156157bb57600080fd5b506040516080810181811067ffffffffffffffff821117156157df576157df6154aa565b806040525060208401358152604084013560208201526060840135604082015260808401356060820152809150509250929050565b6000806040838503121561582757600080fd5b6158308361532d565b915061583e6020840161532d565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561587f57835183529284019291840191600101615863565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610d9457610d946158ba565b600181811c9082168061591057607f821691505b602082108103615949577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561596157600080fd5b5051919050565b60006020828403121561597a57600080fd5b81516125ea816156bf565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036159b6576159b66158ba565b5060010190565b81810381811115610d9457610d946158ba565b600082615a06577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008351615a1d818460208801615371565b835190830190615a31818360208801615371565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8082028115828204841417610d9457610d946158ba565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152615abf6080830184615395565b9695505050505050565b600060208284031215615adb57600080fd5b81516125ea81615254565b601f82111561105f57600081815260208120601f850160051c81016020861015615b0d5750805b601f850160051c820191505b8181101561131957828155600101615b19565b815167ffffffffffffffff811115615b4657615b466154aa565b615b5a81615b5484546158fc565b84615ae6565b602080601f831160018114615bad5760008415615b775750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611319565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015615bfa57888601518255948401946001909101908401615bdb565b5085821015615c3657878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008251615c87818460208701615371565b919091019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207d47b5b8b003956bd605d161e66e5a5ddf96b1b53c8b5c833cc032c61903dac364736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000920cf626a271321c151d027030d5d08af699456b000000000000000000000000b176dad2916db0905cd2d65ed54fdc3a878affe4

-----Decoded View---------------
Arg [0] : _kwenta (address): 0x920Cf626a271321C151D027030D5d08aF699456b
Arg [1] : _rewardsNotifier (address): 0xb176DaD2916db0905cd2D65ed54FDC3a878aFFe4

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000920cf626a271321c151d027030d5d08af699456b
Arg [1] : 000000000000000000000000b176dad2916db0905cd2d65ed54fdc3a878affe4

🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.