More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 686 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unlock Token | 19114157 | 349 days ago | IN | 0 ETH | 0.00078564 | ||||
Unlock Token | 18915182 | 377 days ago | IN | 0 ETH | 0.00093616 | ||||
Unlock Token | 18915175 | 377 days ago | IN | 0 ETH | 0.00105038 | ||||
Unlock Token | 18915169 | 377 days ago | IN | 0 ETH | 0.00104433 | ||||
Unlock Token | 18915159 | 377 days ago | IN | 0 ETH | 0.00106103 | ||||
Unlock Token | 18904324 | 378 days ago | IN | 0 ETH | 0.0007795 | ||||
Unlock Token | 18904309 | 378 days ago | IN | 0 ETH | 0.00075399 | ||||
Unlock Token | 18904301 | 378 days ago | IN | 0 ETH | 0.00088414 | ||||
Unlock Token | 18846228 | 386 days ago | IN | 0 ETH | 0.00210834 | ||||
Unlock Token | 18832559 | 388 days ago | IN | 0 ETH | 0.00118969 | ||||
Unlock Token | 18832558 | 388 days ago | IN | 0 ETH | 0.00218942 | ||||
Unlock Token | 18796153 | 393 days ago | IN | 0 ETH | 0.00349659 | ||||
Unlock Token | 18796145 | 393 days ago | IN | 0 ETH | 0.00189581 | ||||
Unlock Token | 18750941 | 400 days ago | IN | 0 ETH | 0.00175037 | ||||
Unlock Token | 18746571 | 400 days ago | IN | 0 ETH | 0.00200322 | ||||
Unlock Token | 18746517 | 400 days ago | IN | 0 ETH | 0.00184201 | ||||
Unlock Token | 18742553 | 401 days ago | IN | 0 ETH | 0.00273631 | ||||
Unlock Token | 18742534 | 401 days ago | IN | 0 ETH | 0.00274532 | ||||
Unlock Token | 18725472 | 403 days ago | IN | 0 ETH | 0.00273466 | ||||
Unlock Token | 18720756 | 404 days ago | IN | 0 ETH | 0.00690369 | ||||
Unlock Token | 18714026 | 405 days ago | IN | 0 ETH | 0.00285678 | ||||
Unlock Token | 18699921 | 407 days ago | IN | 0 ETH | 0.00227878 | ||||
Unlock Token | 18679785 | 410 days ago | IN | 0 ETH | 0.00313076 | ||||
Unlock Token | 18679771 | 410 days ago | IN | 0 ETH | 0.00261547 | ||||
Unlock Token | 18644757 | 415 days ago | IN | 0 ETH | 0.00185276 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
VictoriaVRVesting
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-06-02 */ // SPDX-License-Identifier: MIT pragma solidity 0.6.12; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } contract VictoriaVRVesting { using SafeMath for uint256; IERC20 public token = IERC20(0x7d5121505149065b562C789A0145eD750e6E8cdD); address public owner; uint256 public startUnlockTime = 1654174800; //2022-06-02 13:00:00 UTC uint256 public maxUnlockDay = 3 * 365; uint256 public unlockCycle = 1 days; uint256 public totalTokenLock = 0; struct UnlockInfo { bool status; uint256 amount; uint256 unlockDayAmount; uint256 unlockTotal; } mapping(address => UnlockInfo) public userUnlockInfos; event EventUnlockToken(address indexed _address, uint256 _amount); modifier onlyOwner() { require( msg.sender == owner, "You don't have permission." ); _; } constructor() public { owner = msg.sender; } function initializeDefaultWallet() public onlyOwner { addAddressInfo(0x35ea0493e66724fb333180E5cB12cAadFaf96E70, tokenDecimals(915254)); addAddressInfo(0x395b5010425e814E6dCAfBcF2aA97703cD16CE5a, tokenDecimals(1525424)); addAddressInfo(0x68e41f435a7b5E64deb5eb2992dAd631d2778516, tokenDecimals(915254)); addAddressInfo(0x86D55d842c4E08bf30429b4363301A4F7427897b, tokenDecimals(1220339)); addAddressInfo(0x497a2566F804e36eEc34C3dffF79d66761D9B330, tokenDecimals(1220339)); addAddressInfo(0x90BBCbe91a042558ed9589ddf9f180E736886FC3, tokenDecimals(1220339)); addAddressInfo(0x228B858cFEE0EAe28231B6AFFb92eec6feca23a2, tokenDecimals(762712)); addAddressInfo(0x7694eeC0387d0C63C0483D33F48D7DB5b4077c83, tokenDecimals(1525424)); addAddressInfo(0x96F89B37334dBA99b867ab812C1bbDf2E2103D23, tokenDecimals(610169)); addAddressInfo(0xe92D80a90bc050A12F1c6fBE0e50e1B5A874B595, tokenDecimals(1830508)); addAddressInfo(0x565FF310603E3CE035a8433DE6b54Bf2ED925882, tokenDecimals(762712)); addAddressInfo(0x181348D19d4c5eDdb9383C34bdc7eAfacA6d127D, tokenDecimals(1830508)); addAddressInfo(0xBBd6e8B4a644a1a511fd95f6a0e81Db3C03a7E16, tokenDecimals(1372881)); addAddressInfo(0x31ac5eb1Dfe36C8981BCA66Fe0ab962fFE8E2b13, tokenDecimals(457627)); addAddressInfo(0x0036d68CCab1677179cD7A5c8c8568Dc7907eAc8, tokenDecimals(305085)); addAddressInfo(0x5bDdac61eF3549041B58347aC4615434E0898f84, tokenDecimals(610169)); addAddressInfo(0xd98d95dcA7e33bd5725ef56180bDAEe69877d819, tokenDecimals(1830508)); addAddressInfo(0xa29B56729C9a2F0bcCbD46eacf7DF7C07D9E2f6E, tokenDecimals(1525424)); addAddressInfo(0xBA715566ebB933102651465B02e8dBa50B29DD43, tokenDecimals(61017)); addAddressInfo(0x5b1aBc65B45C035108A17638AaC5eA53a83e9B88, tokenDecimals(15254237)); addAddressInfo(0x754A2193fe7Ede8e4630063E588cb0Ff5a02Fc28, tokenDecimals(15254237)); addAddressInfo(0x0Ae21aa1EfC542CF183aD0Ef8CD969bb11040aA8, tokenDecimals(15254237)); addAddressInfo(0xD35504BA8397a9f9ade45E7F20725F7987415425, tokenDecimals(3050847)); addAddressInfo(0xA47F5DfB53f617cBCE164f29B26273e9332631C4, tokenDecimals(6101695)); addAddressInfo(0x65Ac6d86c6bEBBfC84522b4E28861eBF66f6A1bA, tokenDecimals(3050847)); addAddressInfo(0x41E3FE77DE1EcA115902eB058b1FB57395358d62, tokenDecimals(3050847)); addAddressInfo(0xb73f8AbC0371b1AB67f9dAAEdb7eCBc1b1dD7e79, tokenDecimals(6711864)); addAddressInfo(0xA938924AA74Db378d77A1639e76D2cCc2226FB67, tokenDecimals(3050847)); addAddressInfo(0x40e400325Cff0833bcE814ddAEEF8EC6C6f24963, tokenDecimals(30508475)); addAddressInfo(0xB1799600bB5DB171760C2a9fF6e9795d46EB700D, tokenDecimals(14338983)); addAddressInfo(0x70031213C95DeECfa44a6C438BcA25134A292eef, tokenDecimals(9152542)); addAddressInfo(0x1b75c6DC2C2cff9E6eAF54c5d72b3447740f1e76, tokenDecimals(4423729)); addAddressInfo(0x505Ffa6194f6e443b86F2028b2a97A588c17b962, tokenDecimals(30508475)); addAddressInfo(0xc6717341508568AC9Da4821BE8e31ca650c42C79, tokenDecimals(15254237)); addAddressInfo(0x0aD7A09575e3eC4C109c4FaA3BE7cdafc5a4aDBa, tokenDecimals(173076712)); addAddressInfo(0x6782Be6D8e69C8790EA6079328DA96B7358093C5, tokenDecimals(17602780)); addAddressInfo(0x52B40914d9d42e0070CbA75A6879E65022D5B218, tokenDecimals(3050847)); addAddressInfo(0x86B337Be60C942e80f31e7Be097De1cA821c5f7F, tokenDecimals(15254237)); addAddressInfo(0xE9090c96795F8936b3bF5c72B23D4A244Cd0Db13, tokenDecimals(22881356)); addAddressInfo(0xfeD3a086D43B60D97E5CEF9E7C34F2c6BB11d2C7, tokenDecimals(7627119)); addAddressInfo(0x037B1624848Abfc22552f445475CeBb7e2414F18, tokenDecimals(7627119)); addAddressInfo(0xE72EB31b59F85b19499A0F3b3260011894FA0d65, tokenDecimals(7627119)); addAddressInfo(0xd61951E5983646AE63d1236cdd112BBB5E10E159, tokenDecimals(6101695)); addAddressInfo(0xa0fF757077B5D796259582b2b9Db99c906277007, tokenDecimals(9152542)); addAddressInfo(0xc11B259aF1B7791Ee1D78b19D35a3Caf1fd90cbD, tokenDecimals(3050847)); addAddressInfo(0xf6269806D9f8cc48B87167a19dbCF0214026D22D, tokenDecimals(342884746)); addAddressInfo(0xd999074F947f9813bDD161Fb2452332ac6a4D695, tokenDecimals(7932203)); addAddressInfo(0x704c7A3d5Cf7289751d2B5e2F129982b854C939d, tokenDecimals(15254237)); addAddressInfo(0xfb4334A5704e29DF37efc9F16255759670018D9A, tokenDecimals(9152542)); } function tokenDecimals(uint256 _amount) public view returns(uint256) { return _amount * (10 ** uint256(token.decimals())); } function tokenBalanceOf() public view returns(uint256) { return token.balanceOf(address(this)); } function addAddressInfoNoDecimals(address _address, uint256 _amount) public onlyOwner { addAddressInfo(_address, tokenDecimals(_amount)); } function addAddressInfo(address _address, uint256 _amount) public onlyOwner { totalTokenLock = totalTokenLock.add(_amount); UnlockInfo storage ui = userUnlockInfos[_address]; require( ui.status == false, "This wallet has been added to the unlock contract." ); ui.status = true; ui.amount = _amount; ui.unlockDayAmount = _amount.div(maxUnlockDay); } function deleteAddressInfo(address _address) public onlyOwner { UnlockInfo storage ui = userUnlockInfos[_address]; require( ui.status == true, "This wallet is not in the current unlocking plan." ); delete userUnlockInfos[_address]; } function blockTimestamp() public virtual view returns(uint256) { return block.timestamp; } function getAvailableDay() public virtual view returns(uint256) { require( blockTimestamp() > startUnlockTime, "Unlocking time has not started yet." ); return blockTimestamp().sub(startUnlockTime).div(unlockCycle); } function unlockToken() public { uint256 availableDay = getAvailableDay(); require( availableDay > 0, "Unlocking time has not started yet." ); UnlockInfo storage ui = userUnlockInfos[msg.sender]; require( ui.status == true, "This wallet is not in the current unlocking plan." ); require( ui.amount > ui.unlockTotal, "The user has no available unlocking limit." ); uint256 availableAmount = availableDay.mul(ui.unlockDayAmount); if(availableAmount > ui.amount) { availableAmount = ui.amount; } availableAmount = availableAmount.sub(ui.unlockTotal); require( availableAmount > 0, "The user has no available unlocking limit." ); ui.unlockTotal = ui.unlockTotal.add(availableAmount); _safeTransfer(msg.sender, availableAmount); } function _safeTransfer(address _address, uint256 _amount) private { token.transfer(_address, _amount); totalTokenLock = totalTokenLock.sub(_amount); emit EventUnlockToken(_address, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"EventUnlockToken","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addAddressInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addAddressInfoNoDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"deleteAddressInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAvailableDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initializeDefaultWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxUnlockDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"tokenDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokenLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userUnlockInfos","outputs":[{"internalType":"bool","name":"status","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockDayAmount","type":"uint256"},{"internalType":"uint256","name":"unlockTotal","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052737d5121505149065b562c789a0145ed750e6e8cdd6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550636298b45060025561044760035562015180600455600060055534801561007e57600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b86806100cf6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80639d1aaa0c11610097578063d6bdbf7811610066578063d6bdbf7814610330578063dd14ad411461034e578063f11b16ca14610392578063fc0c546a146103b057610100565b80639d1aaa0c14610237578063a0a129ea14610285578063ab8e2dcb146102f4578063adb618321461031257610100565b806385af4c4e116100d357806385af4c4e146101555780638609f458146101a35780638ba2332e146101e55780638da5cb5b1461020357610100565b806318a24b5b1461010557806367b8e02b1461010f57806373ab57161461012d578063842d6ce61461014b575b600080fd5b61010d6103e4565b005b610117610629565b6040518082815260200191505060405180910390f35b61013561062f565b6040518082815260200191505060405180910390f35b610153610635565b005b6101a16004803603604081101561016b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed7565b005b6101cf600480360360208110156101b957600080fd5b8101908080359060200190929190505050610fb0565b6040518082815260200191505060405180910390f35b6101ed611063565b6040518082815260200191505060405180910390f35b61020b611069565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102836004803603604081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061108f565b005b6102c76004803603602081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611266565b60405180851515815260200184815260200183815260200182815260200194505050505060405180910390f35b6102fc6112a3565b6040518082815260200191505060405180910390f35b61031a6112a9565b6040518082815260200191505060405180910390f35b6103386112b1565b6040518082815260200191505060405180910390f35b6103906004803603602081101561036457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137b565b005b61039a611561565b6040518082815260200191505060405180910390f35b6103b86115f9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006103ee611561565b905060008111610449576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611adb6023913960400191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600115158160000160009054906101000a900460ff161515146104fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611a806031913960400191505060405180910390fd5b806003015481600101541161055a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ab1602a913960400191505060405180910390fd5b600061057382600201548461161d90919063ffffffff16565b9050816001015481111561058957816001015490505b6105a08260030154826116a390919063ffffffff16565b9050600081116105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ab1602a913960400191505060405180910390fd5b6106128183600301546116ed90919063ffffffff16565b82600301819055506106243382611775565b505050565b60055481565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b6107217335ea0493e66724fb333180e5cb12caadfaf96e7061071c620df736610fb0565b61108f565b61074a73395b5010425e814e6dcafbcf2aa97703cd16ce5a610745621746b0610fb0565b61108f565b6107737368e41f435a7b5e64deb5eb2992dad631d277851661076e620df736610fb0565b61108f565b61079c7386d55d842c4e08bf30429b4363301a4f7427897b61079762129ef3610fb0565b61108f565b6107c573497a2566f804e36eec34c3dfff79d66761d9b3306107c062129ef3610fb0565b61108f565b6107ee7390bbcbe91a042558ed9589ddf9f180e736886fc36107e962129ef3610fb0565b61108f565b61081773228b858cfee0eae28231b6affb92eec6feca23a2610812620ba358610fb0565b61108f565b610840737694eec0387d0c63c0483d33f48d7db5b4077c8361083b621746b0610fb0565b61108f565b6108697396f89b37334dba99b867ab812c1bbdf2e2103d2361086462094f79610fb0565b61108f565b61089273e92d80a90bc050a12f1c6fbe0e50e1b5a874b59561088d621bee6c610fb0565b61108f565b6108bb73565ff310603e3ce035a8433de6b54bf2ed9258826108b6620ba358610fb0565b61108f565b6108e473181348d19d4c5eddb9383c34bdc7eafaca6d127d6108df621bee6c610fb0565b61108f565b61090d73bbd6e8b4a644a1a511fd95f6a0e81db3c03a7e166109086214f2d1610fb0565b61108f565b6109367331ac5eb1dfe36c8981bca66fe0ab962ffe8e2b136109316206fb9b610fb0565b61108f565b61095e7236d68ccab1677179cd7a5c8c8568dc7907eac86109596204a7bd610fb0565b61108f565b610987735bddac61ef3549041b58347ac4615434e0898f8461098262094f79610fb0565b61108f565b6109b073d98d95dca7e33bd5725ef56180bdaee69877d8196109ab621bee6c610fb0565b61108f565b6109d973a29b56729c9a2f0bccbd46eacf7df7c07d9e2f6e6109d4621746b0610fb0565b61108f565b610a0173ba715566ebb933102651465b02e8dba50b29dd436109fc61ee59610fb0565b61108f565b610a2a735b1abc65b45c035108a17638aac5ea53a83e9b88610a2562e8c2dd610fb0565b61108f565b610a5373754a2193fe7ede8e4630063e588cb0ff5a02fc28610a4e62e8c2dd610fb0565b61108f565b610a7c730ae21aa1efc542cf183ad0ef8cd969bb11040aa8610a7762e8c2dd610fb0565b61108f565b610aa573d35504ba8397a9f9ade45e7f20725f7987415425610aa0622e8d5f610fb0565b61108f565b610ace73a47f5dfb53f617cbce164f29b26273e9332631c4610ac9625d1abf610fb0565b61108f565b610af77365ac6d86c6bebbfc84522b4e28861ebf66f6a1ba610af2622e8d5f610fb0565b61108f565b610b207341e3fe77de1eca115902eb058b1fb57395358d62610b1b622e8d5f610fb0565b61108f565b610b4973b73f8abc0371b1ab67f9daaedb7ecbc1b1dd7e79610b4462666a38610fb0565b61108f565b610b7273a938924aa74db378d77a1639e76d2ccc2226fb67610b6d622e8d5f610fb0565b61108f565b610b9c7340e400325cff0833bce814ddaeef8ec6c6f24963610b976301d185bb610fb0565b61108f565b610bc573b1799600bb5db171760c2a9ff6e9795d46eb700d610bc062dacba7610fb0565b61108f565b610bee7370031213c95deecfa44a6c438bca25134a292eef610be9628ba81e610fb0565b61108f565b610c17731b75c6dc2c2cff9e6eaf54c5d72b3447740f1e76610c1262438031610fb0565b61108f565b610c4173505ffa6194f6e443b86f2028b2a97a588c17b962610c3c6301d185bb610fb0565b61108f565b610c6a73c6717341508568ac9da4821be8e31ca650c42c79610c6562e8c2dd610fb0565b61108f565b610c94730ad7a09575e3ec4c109c4faa3be7cdafc5a4adba610c8f630a50f0e8610fb0565b61108f565b610cbe736782be6d8e69c8790ea6079328da96b7358093c5610cb963010c98dc610fb0565b61108f565b610ce77352b40914d9d42e0070cba75a6879e65022d5b218610ce2622e8d5f610fb0565b61108f565b610d107386b337be60c942e80f31e7be097de1ca821c5f7f610d0b62e8c2dd610fb0565b61108f565b610d3a73e9090c96795f8936b3bf5c72b23d4a244cd0db13610d3563015d244c610fb0565b61108f565b610d6373fed3a086d43b60d97e5cef9e7c34f2c6bb11d2c7610d5e6274616f610fb0565b61108f565b610d8c73037b1624848abfc22552f445475cebb7e2414f18610d876274616f610fb0565b61108f565b610db573e72eb31b59f85b19499a0f3b3260011894fa0d65610db06274616f610fb0565b61108f565b610dde73d61951e5983646ae63d1236cdd112bbb5e10e159610dd9625d1abf610fb0565b61108f565b610e0773a0ff757077b5d796259582b2b9db99c906277007610e02628ba81e610fb0565b61108f565b610e3073c11b259af1b7791ee1d78b19d35a3caf1fd90cbd610e2b622e8d5f610fb0565b61108f565b610e5a73f6269806d9f8cc48b87167a19dbcf0214026d22d610e55631470018a610fb0565b61108f565b610e8373d999074f947f9813bdd161fb2452332ac6a4d695610e7e6279092b610fb0565b61108f565b610eac73704c7a3d5cf7289751d2b5e2f129982b854c939d610ea762e8c2dd610fb0565b61108f565b610ed573fb4334a5704e29df37efc9f16255759670018d9a610ed0628ba81e610fb0565b61108f565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b610fac82610fa783610fb0565b61108f565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561101957600080fd5b505afa15801561102d573d6000803e3d6000fd5b505050506040513d602081101561104357600080fd5b810190808051906020019092919050505060ff16600a0a82029050919050565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b611167816005546116ed90919063ffffffff16565b6005819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff1615151461121e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611afe6032913960400191505060405180910390fd5b60018160000160006101000a81548160ff021916908315150217905550818160010181905550611259600354836118af90919063ffffffff16565b8160020181905550505050565b60066020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154908060030154905084565b60035481565b600042905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561133b57600080fd5b505afa15801561134f573d6000803e3d6000fd5b505050506040513d602081101561136557600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600115158160000160009054906101000a900460ff161515146114ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611a806031913960400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff021916905560018201600090556002820160009055600382016000905550505050565b600060025461156e6112a9565b116115c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611adb6023913960400191505060405180910390fd5b6115f46004546115e66002546115d86112a9565b6116a390919063ffffffff16565b6118af90919063ffffffff16565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611630576000905061169d565b600082840290508284828161164157fe5b0414611698576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611b306021913960400191505060405180910390fd5b809150505b92915050565b60006116e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118f9565b905092915050565b60008082840190508381101561176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d602081101561183057600080fd5b810190808051906020019092919050505050611857816005546116a390919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff167f4b79452661fdab199677c3f8f7f9381f1744f449fe2af79c630ba582946d845b826040518082815260200191505060405180910390a25050565b60006118f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b9565b905092915050565b60008383111582906119a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561196b578082015181840152602081019050611950565b50505050905090810190601f1680156119985780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611a65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a2a578082015181840152602081019050611a0f565b50505050905090810190601f168015611a575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611a7157fe5b04905080915050939250505056fe546869732077616c6c6574206973206e6f7420696e207468652063757272656e7420756e6c6f636b696e6720706c616e2e546865207573657220686173206e6f20617661696c61626c6520756e6c6f636b696e67206c696d69742e556e6c6f636b696e672074696d6520686173206e6f742073746172746564207965742e546869732077616c6c657420686173206265656e20616464656420746f2074686520756e6c6f636b20636f6e74726163742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122020bed32c5d9be5d93f10b48d2c52fa5b3694f78886082cd48fd16266212d7bc364736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c80639d1aaa0c11610097578063d6bdbf7811610066578063d6bdbf7814610330578063dd14ad411461034e578063f11b16ca14610392578063fc0c546a146103b057610100565b80639d1aaa0c14610237578063a0a129ea14610285578063ab8e2dcb146102f4578063adb618321461031257610100565b806385af4c4e116100d357806385af4c4e146101555780638609f458146101a35780638ba2332e146101e55780638da5cb5b1461020357610100565b806318a24b5b1461010557806367b8e02b1461010f57806373ab57161461012d578063842d6ce61461014b575b600080fd5b61010d6103e4565b005b610117610629565b6040518082815260200191505060405180910390f35b61013561062f565b6040518082815260200191505060405180910390f35b610153610635565b005b6101a16004803603604081101561016b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed7565b005b6101cf600480360360208110156101b957600080fd5b8101908080359060200190929190505050610fb0565b6040518082815260200191505060405180910390f35b6101ed611063565b6040518082815260200191505060405180910390f35b61020b611069565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102836004803603604081101561024d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061108f565b005b6102c76004803603602081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611266565b60405180851515815260200184815260200183815260200182815260200194505050505060405180910390f35b6102fc6112a3565b6040518082815260200191505060405180910390f35b61031a6112a9565b6040518082815260200191505060405180910390f35b6103386112b1565b6040518082815260200191505060405180910390f35b6103906004803603602081101561036457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061137b565b005b61039a611561565b6040518082815260200191505060405180910390f35b6103b86115f9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006103ee611561565b905060008111610449576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611adb6023913960400191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600115158160000160009054906101000a900460ff161515146104fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611a806031913960400191505060405180910390fd5b806003015481600101541161055a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ab1602a913960400191505060405180910390fd5b600061057382600201548461161d90919063ffffffff16565b9050816001015481111561058957816001015490505b6105a08260030154826116a390919063ffffffff16565b9050600081116105fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ab1602a913960400191505060405180910390fd5b6106128183600301546116ed90919063ffffffff16565b82600301819055506106243382611775565b505050565b60055481565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b6107217335ea0493e66724fb333180e5cb12caadfaf96e7061071c620df736610fb0565b61108f565b61074a73395b5010425e814e6dcafbcf2aa97703cd16ce5a610745621746b0610fb0565b61108f565b6107737368e41f435a7b5e64deb5eb2992dad631d277851661076e620df736610fb0565b61108f565b61079c7386d55d842c4e08bf30429b4363301a4f7427897b61079762129ef3610fb0565b61108f565b6107c573497a2566f804e36eec34c3dfff79d66761d9b3306107c062129ef3610fb0565b61108f565b6107ee7390bbcbe91a042558ed9589ddf9f180e736886fc36107e962129ef3610fb0565b61108f565b61081773228b858cfee0eae28231b6affb92eec6feca23a2610812620ba358610fb0565b61108f565b610840737694eec0387d0c63c0483d33f48d7db5b4077c8361083b621746b0610fb0565b61108f565b6108697396f89b37334dba99b867ab812c1bbdf2e2103d2361086462094f79610fb0565b61108f565b61089273e92d80a90bc050a12f1c6fbe0e50e1b5a874b59561088d621bee6c610fb0565b61108f565b6108bb73565ff310603e3ce035a8433de6b54bf2ed9258826108b6620ba358610fb0565b61108f565b6108e473181348d19d4c5eddb9383c34bdc7eafaca6d127d6108df621bee6c610fb0565b61108f565b61090d73bbd6e8b4a644a1a511fd95f6a0e81db3c03a7e166109086214f2d1610fb0565b61108f565b6109367331ac5eb1dfe36c8981bca66fe0ab962ffe8e2b136109316206fb9b610fb0565b61108f565b61095e7236d68ccab1677179cd7a5c8c8568dc7907eac86109596204a7bd610fb0565b61108f565b610987735bddac61ef3549041b58347ac4615434e0898f8461098262094f79610fb0565b61108f565b6109b073d98d95dca7e33bd5725ef56180bdaee69877d8196109ab621bee6c610fb0565b61108f565b6109d973a29b56729c9a2f0bccbd46eacf7df7c07d9e2f6e6109d4621746b0610fb0565b61108f565b610a0173ba715566ebb933102651465b02e8dba50b29dd436109fc61ee59610fb0565b61108f565b610a2a735b1abc65b45c035108a17638aac5ea53a83e9b88610a2562e8c2dd610fb0565b61108f565b610a5373754a2193fe7ede8e4630063e588cb0ff5a02fc28610a4e62e8c2dd610fb0565b61108f565b610a7c730ae21aa1efc542cf183ad0ef8cd969bb11040aa8610a7762e8c2dd610fb0565b61108f565b610aa573d35504ba8397a9f9ade45e7f20725f7987415425610aa0622e8d5f610fb0565b61108f565b610ace73a47f5dfb53f617cbce164f29b26273e9332631c4610ac9625d1abf610fb0565b61108f565b610af77365ac6d86c6bebbfc84522b4e28861ebf66f6a1ba610af2622e8d5f610fb0565b61108f565b610b207341e3fe77de1eca115902eb058b1fb57395358d62610b1b622e8d5f610fb0565b61108f565b610b4973b73f8abc0371b1ab67f9daaedb7ecbc1b1dd7e79610b4462666a38610fb0565b61108f565b610b7273a938924aa74db378d77a1639e76d2ccc2226fb67610b6d622e8d5f610fb0565b61108f565b610b9c7340e400325cff0833bce814ddaeef8ec6c6f24963610b976301d185bb610fb0565b61108f565b610bc573b1799600bb5db171760c2a9ff6e9795d46eb700d610bc062dacba7610fb0565b61108f565b610bee7370031213c95deecfa44a6c438bca25134a292eef610be9628ba81e610fb0565b61108f565b610c17731b75c6dc2c2cff9e6eaf54c5d72b3447740f1e76610c1262438031610fb0565b61108f565b610c4173505ffa6194f6e443b86f2028b2a97a588c17b962610c3c6301d185bb610fb0565b61108f565b610c6a73c6717341508568ac9da4821be8e31ca650c42c79610c6562e8c2dd610fb0565b61108f565b610c94730ad7a09575e3ec4c109c4faa3be7cdafc5a4adba610c8f630a50f0e8610fb0565b61108f565b610cbe736782be6d8e69c8790ea6079328da96b7358093c5610cb963010c98dc610fb0565b61108f565b610ce77352b40914d9d42e0070cba75a6879e65022d5b218610ce2622e8d5f610fb0565b61108f565b610d107386b337be60c942e80f31e7be097de1ca821c5f7f610d0b62e8c2dd610fb0565b61108f565b610d3a73e9090c96795f8936b3bf5c72b23d4a244cd0db13610d3563015d244c610fb0565b61108f565b610d6373fed3a086d43b60d97e5cef9e7c34f2c6bb11d2c7610d5e6274616f610fb0565b61108f565b610d8c73037b1624848abfc22552f445475cebb7e2414f18610d876274616f610fb0565b61108f565b610db573e72eb31b59f85b19499a0f3b3260011894fa0d65610db06274616f610fb0565b61108f565b610dde73d61951e5983646ae63d1236cdd112bbb5e10e159610dd9625d1abf610fb0565b61108f565b610e0773a0ff757077b5d796259582b2b9db99c906277007610e02628ba81e610fb0565b61108f565b610e3073c11b259af1b7791ee1d78b19d35a3caf1fd90cbd610e2b622e8d5f610fb0565b61108f565b610e5a73f6269806d9f8cc48b87167a19dbcf0214026d22d610e55631470018a610fb0565b61108f565b610e8373d999074f947f9813bdd161fb2452332ac6a4d695610e7e6279092b610fb0565b61108f565b610eac73704c7a3d5cf7289751d2b5e2f129982b854c939d610ea762e8c2dd610fb0565b61108f565b610ed573fb4334a5704e29df37efc9f16255759670018d9a610ed0628ba81e610fb0565b61108f565b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b610fac82610fa783610fb0565b61108f565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561101957600080fd5b505afa15801561102d573d6000803e3d6000fd5b505050506040513d602081101561104357600080fd5b810190808051906020019092919050505060ff16600a0a82029050919050565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b611167816005546116ed90919063ffffffff16565b6005819055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600015158160000160009054906101000a900460ff1615151461121e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180611afe6032913960400191505060405180910390fd5b60018160000160006101000a81548160ff021916908315150217905550818160010181905550611259600354836118af90919063ffffffff16565b8160020181905550505050565b60066020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020154908060030154905084565b60035481565b600042905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561133b57600080fd5b505afa15801561134f573d6000803e3d6000fd5b505050506040513d602081101561136557600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461143e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f596f7520646f6e27742068617665207065726d697373696f6e2e00000000000081525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600115158160000160009054906101000a900460ff161515146114ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180611a806031913960400191505060405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549060ff021916905560018201600090556002820160009055600382016000905550505050565b600060025461156e6112a9565b116115c4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611adb6023913960400191505060405180910390fd5b6115f46004546115e66002546115d86112a9565b6116a390919063ffffffff16565b6118af90919063ffffffff16565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080831415611630576000905061169d565b600082840290508284828161164157fe5b0414611698576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611b306021913960400191505060405180910390fd5b809150505b92915050565b60006116e583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118f9565b905092915050565b60008082840190508381101561176b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d602081101561183057600080fd5b810190808051906020019092919050505050611857816005546116a390919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff167f4b79452661fdab199677c3f8f7f9381f1744f449fe2af79c630ba582946d845b826040518082815260200191505060405180910390a25050565b60006118f183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b9565b905092915050565b60008383111582906119a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561196b578082015181840152602081019050611950565b50505050905090810190601f1680156119985780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290611a65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a2a578082015181840152602081019050611a0f565b50505050905090810190601f168015611a575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611a7157fe5b04905080915050939250505056fe546869732077616c6c6574206973206e6f7420696e207468652063757272656e7420756e6c6f636b696e6720706c616e2e546865207573657220686173206e6f20617661696c61626c6520756e6c6f636b696e67206c696d69742e556e6c6f636b696e672074696d6520686173206e6f742073746172746564207965742e546869732077616c6c657420686173206265656e20616464656420746f2074686520756e6c6f636b20636f6e74726163742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122020bed32c5d9be5d93f10b48d2c52fa5b3694f78886082cd48fd16266212d7bc364736f6c634300060c0033
Deployed Bytecode Sourcemap
7558:8331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14664:990;;;:::i;:::-;;7908:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7739:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8452:4622;;;:::i;:::-;;13351:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13082:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7864:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7710:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13512:442;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8095:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7818:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14270:104;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13228:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13962:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14382:274;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7629:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14664:990;14705:20;14728:17;:15;:17::i;:::-;14705:40;;14793:1;14778:12;:16;14756:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14868:21;14892:15;:27;14908:10;14892:27;;;;;;;;;;;;;;;14868:51;;14965:4;14952:17;;:2;:9;;;;;;;;;;;;:17;;;14930:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15091:2;:14;;;15079:2;:9;;;:26;15057:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15186:23;15212:36;15229:2;:18;;;15212:12;:16;;:36;;;;:::i;:::-;15186:62;;15280:2;:9;;;15262:15;:27;15259:86;;;15324:2;:9;;;15306:27;;15259:86;15373:35;15393:2;:14;;;15373:15;:19;;:35;;;;:::i;:::-;15355:53;;15459:1;15441:15;:19;15419:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15558:35;15577:15;15558:2;:14;;;:18;;:35;;;;:::i;:::-;15541:2;:14;;:52;;;;15604:42;15618:10;15630:15;15604:13;:42::i;:::-;14664:990;;;:::o;7908:33::-;;;;:::o;7739:43::-;;;;:::o;8452:4622::-;8299:5;;;;;;;;;;;8285:19;;:10;:19;;;8263:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8515:81:::1;8530:42;8574:21;8588:6;8574:13;:21::i;:::-;8515:14;:81::i;:::-;8607:82;8622:42;8666:22;8680:7;8666:13;:22::i;:::-;8607:14;:82::i;:::-;8700:81;8715:42;8759:21;8773:6;8759:13;:21::i;:::-;8700:14;:81::i;:::-;8792:82;8807:42;8851:22;8865:7;8851:13;:22::i;:::-;8792:14;:82::i;:::-;8885;8900:42;8944:22;8958:7;8944:13;:22::i;:::-;8885:14;:82::i;:::-;8978;8993:42;9037:22;9051:7;9037:13;:22::i;:::-;8978:14;:82::i;:::-;9071:81;9086:42;9130:21;9144:6;9130:13;:21::i;:::-;9071:14;:81::i;:::-;9163:82;9178:42;9222:22;9236:7;9222:13;:22::i;:::-;9163:14;:82::i;:::-;9256:81;9271:42;9315:21;9329:6;9315:13;:21::i;:::-;9256:14;:81::i;:::-;9348:82;9363:42;9407:22;9421:7;9407:13;:22::i;:::-;9348:14;:82::i;:::-;9441:81;9456:42;9500:21;9514:6;9500:13;:21::i;:::-;9441:14;:81::i;:::-;9533:82;9548:42;9592:22;9606:7;9592:13;:22::i;:::-;9533:14;:82::i;:::-;9626;9641:42;9685:22;9699:7;9685:13;:22::i;:::-;9626:14;:82::i;:::-;9719:81;9734:42;9778:21;9792:6;9778:13;:21::i;:::-;9719:14;:81::i;:::-;9811;9826:42;9870:21;9884:6;9870:13;:21::i;:::-;9811:14;:81::i;:::-;9903;9918:42;9962:21;9976:6;9962:13;:21::i;:::-;9903:14;:81::i;:::-;9995:82;10010:42;10054:22;10068:7;10054:13;:22::i;:::-;9995:14;:82::i;:::-;10088;10103:42;10147:22;10161:7;10147:13;:22::i;:::-;10088:14;:82::i;:::-;10181:80;10196:42;10240:20;10254:5;10240:13;:20::i;:::-;10181:14;:80::i;:::-;10272:83;10287:42;10331:23;10345:8;10331:13;:23::i;:::-;10272:14;:83::i;:::-;10366;10381:42;10425:23;10439:8;10425:13;:23::i;:::-;10366:14;:83::i;:::-;10460;10475:42;10519:23;10533:8;10519:13;:23::i;:::-;10460:14;:83::i;:::-;10554:82;10569:42;10613:22;10627:7;10613:13;:22::i;:::-;10554:14;:82::i;:::-;10647;10662:42;10706:22;10720:7;10706:13;:22::i;:::-;10647:14;:82::i;:::-;10740;10755:42;10799:22;10813:7;10799:13;:22::i;:::-;10740:14;:82::i;:::-;10833;10848:42;10892:22;10906:7;10892:13;:22::i;:::-;10833:14;:82::i;:::-;10926;10941:42;10985:22;10999:7;10985:13;:22::i;:::-;10926:14;:82::i;:::-;11019;11034:42;11078:22;11092:7;11078:13;:22::i;:::-;11019:14;:82::i;:::-;11112:83;11127:42;11171:23;11185:8;11171:13;:23::i;:::-;11112:14;:83::i;:::-;11206;11221:42;11265:23;11279:8;11265:13;:23::i;:::-;11206:14;:83::i;:::-;11300:82;11315:42;11359:22;11373:7;11359:13;:22::i;:::-;11300:14;:82::i;:::-;11393;11408:42;11452:22;11466:7;11452:13;:22::i;:::-;11393:14;:82::i;:::-;11486:83;11501:42;11545:23;11559:8;11545:13;:23::i;:::-;11486:14;:83::i;:::-;11580;11595:42;11639:23;11653:8;11639:13;:23::i;:::-;11580:14;:83::i;:::-;11674:84;11689:42;11733:24;11747:9;11733:13;:24::i;:::-;11674:14;:84::i;:::-;11769:83;11784:42;11828:23;11842:8;11828:13;:23::i;:::-;11769:14;:83::i;:::-;11863:82;11878:42;11922:22;11936:7;11922:13;:22::i;:::-;11863:14;:82::i;:::-;11956:83;11971:42;12015:23;12029:8;12015:13;:23::i;:::-;11956:14;:83::i;:::-;12050;12065:42;12109:23;12123:8;12109:13;:23::i;:::-;12050:14;:83::i;:::-;12144:82;12159:42;12203:22;12217:7;12203:13;:22::i;:::-;12144:14;:82::i;:::-;12237;12252:42;12296:22;12310:7;12296:13;:22::i;:::-;12237:14;:82::i;:::-;12330;12345:42;12389:22;12403:7;12389:13;:22::i;:::-;12330:14;:82::i;:::-;12423;12438:42;12482:22;12496:7;12482:13;:22::i;:::-;12423:14;:82::i;:::-;12516;12531:42;12575:22;12589:7;12575:13;:22::i;:::-;12516:14;:82::i;:::-;12609;12624:42;12668:22;12682:7;12668:13;:22::i;:::-;12609:14;:82::i;:::-;12702:84;12717:42;12761:24;12775:9;12761:13;:24::i;:::-;12702:14;:84::i;:::-;12797:82;12812:42;12856:22;12870:7;12856:13;:22::i;:::-;12797:14;:82::i;:::-;12890:83;12905:42;12949:23;12963:8;12949:13;:23::i;:::-;12890:14;:83::i;:::-;12984:82;12999:42;13043:22;13057:7;13043:13;:22::i;:::-;12984:14;:82::i;:::-;8452:4622::o:0;13351:153::-;8299:5;;;;;;;;;;;8285:19;;:10;:19;;;8263:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13448:48:::1;13463:8;13473:22;13487:7;13473:13;:22::i;:::-;13448:14;:48::i;:::-;13351:153:::0;;:::o;13082:138::-;13142:7;13194:5;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13186:25;;13180:2;:31;13169:7;:43;13162:50;;13082:138;;;:::o;7864:35::-;;;;:::o;7710:20::-;;;;;;;;;;;;;:::o;13512:442::-;8299:5;;;;;;;;;;;8285:19;;:10;:19;;;8263:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13616:27:::1;13635:7;13616:14;;:18;;:27;;;;:::i;:::-;13599:14;:44;;;;13654:21;13678:15;:25;13694:8;13678:25;;;;;;;;;;;;;;;13654:49;;13749:5;13736:18;;:2;:9;;;;;;;;;;;;:18;;;13714:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13855:4;13843:2;:9;;;:16;;;;;;;;;;;;;;;;;;13882:7;13870:2;:9;;:19;;;;13921:25;13933:12;;13921:7;:11;;:25;;;;:::i;:::-;13900:2;:18;;:46;;;;8369:1;13512:442:::0;;:::o;8095:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7818:37::-;;;;:::o;14270:104::-;14324:7;14351:15;14344:22;;14270:104;:::o;13228:111::-;13274:7;13301:5;;;;;;;;;;;:15;;;13325:4;13301:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13294:37;;13228:111;:::o;13962:300::-;8299:5;;;;;;;;;;;8285:19;;:10;:19;;;8263:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14035:21:::1;14059:15;:25;14075:8;14059:25;;;;;;;;;;;;;;;14035:49;;14130:4;14117:17;;:2;:9;;;;;;;;;;;;:17;;;14095:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14229:15;:25;14245:8;14229:25;;;;;;;;;;;;;;;;14222:32:::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8369:1;13962:300:::0;:::o;14382:274::-;14437:7;14498:15;;14479:16;:14;:16::i;:::-;:34;14457:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14594:54;14636:11;;14594:37;14615:15;;14594:16;:14;:16::i;:::-;:20;;:37;;;;:::i;:::-;:41;;:54;;;;:::i;:::-;14587:61;;14382:274;:::o;7629:72::-;;;;;;;;;;;;:::o;1647:471::-;1705:7;1955:1;1950;:6;1946:47;;;1980:1;1973:8;;;;1946:47;2005:9;2021:1;2017;:5;2005:17;;2050:1;2045;2041;:5;;;;;;:10;2033:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2109:1;2102:8;;;1647:471;;;;;:::o;773:136::-;831:7;858:43;862:1;865;858:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;851:50;;773:136;;;;:::o;317:181::-;375:7;395:9;411:1;407;:5;395:17;;436:1;431;:6;;423:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;489:1;482:8;;;317:181;;;;:::o;15662:224::-;15739:5;;;;;;;;;;:14;;;15754:8;15764:7;15739:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15800:27;15819:7;15800:14;;:18;;:27;;;;:::i;:::-;15783:14;:44;;;;15860:8;15843:35;;;15870:7;15843:35;;;;;;;;;;;;;;;;;;15662:224;;:::o;2586:132::-;2644:7;2671:39;2675:1;2678;2671:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2664:46;;2586:132;;;;:::o;1204:192::-;1290:7;1323:1;1318;:6;;1326:12;1310:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:9;1366:1;1362;:5;1350:17;;1387:1;1380:8;;;1204:192;;;;;:::o;3206:345::-;3292:7;3391:1;3387;:5;3394:12;3379:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3418:9;3434:1;3430;:5;;;;;;3418:17;;3542:1;3535:8;;;3206:345;;;;;:::o
Swarm Source
ipfs://20bed32c5d9be5d93f10b48d2c52fa5b3694f78886082cd48fd16266212d7bc3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.011121 | 616.7817 | $6.86 |
Loading...
Loading
[ Download: CSV Export ]
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.