Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,065 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Reward | 19899380 | 196 days ago | IN | 0 ETH | 0.0009649 | ||||
Stake | 19859733 | 201 days ago | IN | 0 ETH | 0.00456764 | ||||
Unstake | 19859659 | 201 days ago | IN | 0 ETH | 0.00395237 | ||||
Withdraw Reward | 19819340 | 207 days ago | IN | 0 ETH | 0.00189541 | ||||
Withdraw Reward | 19751215 | 216 days ago | IN | 0 ETH | 0.00177206 | ||||
Unstake | 19724138 | 220 days ago | IN | 0 ETH | 0.00195621 | ||||
Stake | 19454841 | 258 days ago | IN | 0 ETH | 0.00901352 | ||||
Stake | 19260275 | 285 days ago | IN | 0 ETH | 0.00075069 | ||||
Stake | 19232151 | 289 days ago | IN | 0 ETH | 0.00054864 | ||||
Stake | 19232097 | 289 days ago | IN | 0 ETH | 0.00055046 | ||||
Stake | 19230338 | 289 days ago | IN | 0 ETH | 0.0006167 | ||||
Stake | 19230333 | 289 days ago | IN | 0 ETH | 0.000672 | ||||
Unstake | 19092169 | 309 days ago | IN | 0 ETH | 0.00173401 | ||||
Withdraw Reward | 18909429 | 334 days ago | IN | 0 ETH | 0.0010667 | ||||
Unstake | 18878934 | 339 days ago | IN | 0 ETH | 0.00665933 | ||||
Unstake | 18498286 | 392 days ago | IN | 0 ETH | 0.00474656 | ||||
Withdraw Reward | 18450584 | 399 days ago | IN | 0 ETH | 0.00440701 | ||||
Stake | 18176041 | 437 days ago | IN | 0 ETH | 0.00126655 | ||||
Withdraw Reward | 18106329 | 447 days ago | IN | 0 ETH | 0.00488709 | ||||
Stake | 18103828 | 447 days ago | IN | 0 ETH | 0.00131133 | ||||
Stake | 18059206 | 454 days ago | IN | 0 ETH | 0.00181376 | ||||
Stake | 17714661 | 502 days ago | IN | 0 ETH | 0.01124414 | ||||
Unstake | 17660330 | 509 days ago | IN | 0 ETH | 0.00203318 | ||||
Withdraw Reward | 17660328 | 509 days ago | IN | 0 ETH | 0.00149636 | ||||
Stake | 17428548 | 542 days ago | IN | 0 ETH | 0.00419638 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SYAC_NFT_Staking
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-16 */ /** *Submitted for verification at BscScan.com on 2022-02-19 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // File: openzeppelin-solidity/contracts/token/ERC20/IERC20.sol /** * @title ERC20 interface * @dev see https://eips.ethereum.org/EIPS/eip-20 */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function burnbyContract(uint256 _amount) external; function withdrawStakingReward(address _address,uint256 _amount) external; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } // File: openzeppelin-solidity/contracts/math/SafeMath.sol /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on 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-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } // File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://eips.ethereum.org/EIPS/eip-20 * * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for * all accounts just by listening to said events. Note that this isn't required by the specification, and other * compliant implementations may not do it. */ interface IERC721 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } contract Ownable { address public _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: contracts/EDM.sol contract SYAC_NFT_Staking is Ownable{ //----------------------------------------- //Variables using SafeMath for uint256; IERC721 NFTToken; IERC20 token; //----------------------------------------- //Structs struct userInfo { uint256 totlaWithdrawn; uint256 withdrawable; uint256 totalStaked; uint256 availableToWithdraw; } //----------------------------------------- //Mappings mapping(address => mapping(uint256 => uint256)) public stakingTime; mapping(address => userInfo ) public User; mapping(address => uint256[] ) public Tokenid; mapping(address=>uint256) public totalStakedNft; mapping(uint256=>bool) public alreadyAwarded; mapping(address=>mapping(uint256=>uint256)) public depositTime; uint256 time= 1 days; uint256 lockingtime= 1 days; uint256 public firstReward =300 ether; //----------------------------------------- //constructor constructor(IERC721 _NFTToken,IERC20 _token) { NFTToken =_NFTToken; token=_token; } //----------------------------------------- //Stake NFTS to earn Reward in coca coin function Stake(uint256[] memory tokenId) external { for(uint256 i=0;i<tokenId.length;i++){ require(NFTToken.ownerOf(tokenId[i]) == msg.sender,"nft not found"); NFTToken.transferFrom(msg.sender,address(this),tokenId[i]); Tokenid[msg.sender].push(tokenId[i]); stakingTime[msg.sender][tokenId[i]]=block.timestamp; if(!alreadyAwarded[tokenId[i]]){ depositTime[msg.sender][tokenId[i]]=block.timestamp; } } User[msg.sender].totalStaked+=tokenId.length; totalStakedNft[msg.sender]+=tokenId.length; } //----------------------------------------- //check your Reward By this function function rewardOfUser(address Add) public view returns(uint256) { uint256 RewardToken; for(uint256 i = 0 ; i < Tokenid[Add].length ; i++){ if(Tokenid[Add][i] > 0) { if((block.timestamp>depositTime[Add][Tokenid[Add][i]]+1 days)&&!alreadyAwarded[Tokenid[Add][i]]){ RewardToken+=firstReward; } RewardToken += (((block.timestamp - (stakingTime[Add][Tokenid[Add][i]])).div(time)))*15 ether; } } return RewardToken+User[Add].availableToWithdraw; } //----------------------------------------- //Returns all NFT user staked function userStakedNFT(address _staker)public view returns(uint256[] memory) { return Tokenid[_staker]; } //----------------------------------------- //Withdraw your reward function WithdrawReward() public { uint256 reward = rewardOfUser(msg.sender); require(reward > 0,"you don't have reward yet!"); require(token.balanceOf(address(token))>=reward,"Contract Don't have enough tokens to give reward"); token.withdrawStakingReward(msg.sender,reward); for(uint8 i=0;i<Tokenid[msg.sender].length;i++){ stakingTime[msg.sender][Tokenid[msg.sender][i]]=block.timestamp; } User[msg.sender].totlaWithdrawn += reward; User[msg.sender].availableToWithdraw = 0; for(uint256 i = 0 ; i < Tokenid[msg.sender].length ; i++){ alreadyAwarded[Tokenid[msg.sender][i]]=true; } } //----------------------------------------- //Get index by Value function find(uint value) internal view returns(uint) { uint i = 0; while (Tokenid[msg.sender][i] != value) { i++; } return i; } //----------------------------------------- //User have to pass tokenID to unstake token function unstake(uint256[] memory _tokenId) external { User[msg.sender].availableToWithdraw+=rewardOfUser(msg.sender); for(uint256 i=0;i<_tokenId.length;i++){ if(rewardOfUser(msg.sender)>0)alreadyAwarded[_tokenId[i]]=true; uint256 _index=find(_tokenId[i]); require(Tokenid[msg.sender][_index] ==_tokenId[i] ,"NFT with this _tokenId not found"); NFTToken.transferFrom(address(this),msg.sender,_tokenId[i]); delete Tokenid[msg.sender][_index]; Tokenid[msg.sender][_index]=Tokenid[msg.sender][Tokenid[msg.sender].length-1]; stakingTime[msg.sender][_tokenId[i]]=0; Tokenid[msg.sender].pop(); } User[msg.sender].totalStaked-=_tokenId.length; totalStakedNft[msg.sender]>0?totalStakedNft[msg.sender]-=_tokenId.length:totalStakedNft[msg.sender]=0; } function isStaked(address _stakeHolder)public view returns(bool){ if(totalStakedNft[_stakeHolder]>0){ return true; }else{ return false; } } //----------------------------------------- //Only Owner function WithdrawToken()public onlyOwner{ require(token.transfer(msg.sender,token.balanceOf(address(this))),"Token transfer Error!"); } function changeFirstReward(uint256 _reward)external onlyOwner{ firstReward=_reward; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IERC721","name":"_NFTToken","type":"address"},{"internalType":"contract IERC20","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256[]","name":"tokenId","type":"uint256[]"}],"name":"Stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"Tokenid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"User","outputs":[{"internalType":"uint256","name":"totlaWithdrawn","type":"uint256"},{"internalType":"uint256","name":"withdrawable","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"availableToWithdraw","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WithdrawReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"alreadyAwarded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"changeFirstReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"depositTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"firstReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_stakeHolder","type":"address"}],"name":"isStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"Add","type":"address"}],"name":"rewardOfUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalStakedNft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tokenId","type":"uint256[]"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"userStakedNFT","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526201518060095562015180600a55681043561a8829300000600b553480156200002c57600080fd5b5060405162002b8438038062002b848339818101604052810190620000529190620001c5565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a381600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620002a1565b600081519050620001a8816200026d565b92915050565b600081519050620001bf8162000287565b92915050565b60008060408385031215620001df57620001de62000268565b5b6000620001ef85828601620001ae565b9250506020620002028582860162000197565b9150509250929050565b6000620002198262000248565b9050919050565b60006200022d826200020c565b9050919050565b600062000241826200020c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620002788162000220565b81146200028457600080fd5b50565b620002928162000234565b81146200029e57600080fd5b50565b6128d380620002b16000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063c241f39711610071578063c241f3971461030a578063cc1d08d41461033a578063e449f3411461036a578063f2450ece14610386578063f2fde38b1461039057610116565b80638da5cb5b1461026e57806397e17cd71461028c578063a911941c146102bc578063b2bdfa7b146102ec57610116565b806352cac94d116100e957806352cac94d146101a65780636177fd18146101c257806361f9181f146101f257806370b68cf614610222578063799324751461023e57610116565b8063230eb9c61461011b5780632c07f74f1461014e5780632e23dc8f1461015857806340376ba214610176575b600080fd5b61013560048036038101906101309190611e2b565b6103ac565b60405161014594939291906122ef565b60405180910390f35b6101566103dc565b005b61016061086d565b60405161016d91906122d4565b60405180910390f35b610190600480360381019061018b9190611e2b565b610873565b60405161019d91906121b7565b60405180910390f35b6101c060048036038101906101bb9190611f3b565b61090a565b005b6101dc60048036038101906101d79190611e2b565b6109a2565b6040516101e991906121d9565b60405180910390f35b61020c60048036038101906102079190611e85565b6109fe565b60405161021991906122d4565b60405180910390f35b61023c60048036038101906102379190611ec5565b610a23565b005b61025860048036038101906102539190611f3b565b610e72565b60405161026591906121d9565b60405180910390f35b610276610e92565b604051610283919061213c565b60405180910390f35b6102a660048036038101906102a19190611e2b565b610ebb565b6040516102b391906122d4565b60405180910390f35b6102d660048036038101906102d19190611e2b565b61121c565b6040516102e391906122d4565b60405180910390f35b6102f4611234565b604051610301919061213c565b60405180910390f35b610324600480360381019061031f9190611e85565b611258565b60405161033191906122d4565b60405180910390f35b610354600480360381019061034f9190611e85565b61127d565b60405161036191906122d4565b60405180910390f35b610384600480360381019061037f9190611ec5565b6112ae565b005b61038e611893565b005b6103aa60048036038101906103a59190611e2b565b611abb565b005b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b60006103e733610ebb565b90506000811161042c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610423906121f4565b60405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016104aa919061213c565b60206040518083038186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa9190611f68565b101561053b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610532906122b4565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166361ee195533836040518363ffffffff1660e01b815260040161059892919061218e565b600060405180830381600087803b1580156105b257600080fd5b505af11580156105c6573d6000803e3d6000fd5b5050505060005b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508160ff1610156106e05742600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460ff16815481106106b0576106af61266a565b5b906000526020600020015481526020019081526020016000208190555080806106d8906125b3565b9150506105cd565b5080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461073391906123cf565b925050819055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555060005b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561086957600160076000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106108265761082561266a565b5b9060005260206000200154815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108619061256a565b915050610785565b5050565b600b5481565b6060600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156108fe57602002820191906000526020600020905b8154815260200190600101908083116108ea575b50505050509050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f90612294565b60405180910390fd5b80600b8190555050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156109f457600190506109f9565b600090505b919050565b6008602052816000526040600020602052806000526040600020600091509150505481565b60005b8151811015610dbd573373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e848481518110610a9757610a9661266a565b5b60200260200101516040518263ffffffff1660e01b8152600401610abb91906122d4565b60206040518083038186803b158015610ad357600080fd5b505afa158015610ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0b9190611e58565b73ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612234565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330858581518110610bb457610bb361266a565b5b60200260200101516040518463ffffffff1660e01b8152600401610bda93929190612157565b600060405180830381600087803b158015610bf457600080fd5b505af1158015610c08573d6000803e3d6000fd5b50505050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828281518110610c5e57610c5d61266a565b5b6020026020010151908060018154018082558091505060019003906000526020600020016000909190919091505542600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848481518110610ce157610ce061266a565b5b602002602001015181526020019081526020016000208190555060076000838381518110610d1257610d1161266a565b5b6020026020010151815260200190815260200160002060009054906101000a900460ff16610daa5742600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848481518110610d8f57610d8e61266a565b5b60200260200101518152602001908152602001600020819055505b8080610db59061256a565b915050610a26565b508051600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610e1191906123cf565b925050819055508051600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e6891906123cf565b9250508190555050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060005b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156111c5576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610f5e57610f5d61266a565b5b906000526020600020015411156111b25762015180600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106110055761100461266a565b5b906000526020600020015481526020019081526020016000205461102991906123cf565b421180156110b0575060076000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106110875761108661266a565b5b9060005260206000200154815260200190815260200160002060009054906101000a900460ff16155b156110c657600b54826110c391906123cf565b91505b67d02ab486cedc000061119a600954600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481106111675761116661266a565b5b90600052602060002001548152602001908152602001600020544261118c91906124b0565b611c7690919063ffffffff16565b6111a49190612456565b826111af91906123cf565b91505b80806111bd9061256a565b915050610ec1565b50600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301548161121491906123cf565b915050919050565b60066020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052816000526040600020602052806000526040600020600091509150505481565b6005602052816000526040600020818154811061129957600080fd5b90600052602060002001600091509150505481565b6112b733610ebb565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461130891906123cf565b9250508190555060005b815181101561174d57600061132633610ebb565b1115611373576001600760008484815181106113455761134461266a565b5b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600061139883838151811061138b5761138a61266a565b5b6020026020010151611c9e565b90508282815181106113ad576113ac61266a565b5b6020026020010151600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106114065761140561266a565b5b906000526020600020015414611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890612254565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30338686815181106114a4576114a361266a565b5b60200260200101516040518463ffffffff1660e01b81526004016114ca93929190612157565b600060405180830381600087803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b50505050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061154d5761154c61266a565b5b9060005260206000200160009055600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506115e991906124b0565b815481106115fa576115f961266a565b5b9060005260206000200154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106116565761165561266a565b5b90600052602060002001819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008585815181106116ba576116b961266a565b5b6020026020010151815260200190815260200160002081905550600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806117235761172261263b565b5b600190038181906000526020600020016000905590555080806117459061256a565b915050611312565b508051600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546117a191906124b0565b925050819055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611838576000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905561188f565b8051600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188891906124b0565b9250508190555b5050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612294565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119bb919061213c565b60206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0b9190611f68565b6040518363ffffffff1660e01b8152600401611a2892919061218e565b602060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7a9190611f0e565b611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090612274565b60405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090612294565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090612214565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808211611c8457600080fd5b60008284611c929190612425565b90508091505092915050565b600080600090505b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611cf857611cf761266a565b5b906000526020600020015414611d1b578080611d139061256a565b915050611ca6565b80915050919050565b6000611d37611d3284612359565b612334565b90508083825260208201905082856020860282011115611d5a57611d596126cd565b5b60005b85811015611d8a5781611d708882611e01565b845260208401935060208301925050600181019050611d5d565b5050509392505050565b600081359050611da381612858565b92915050565b600081519050611db881612858565b92915050565b600082601f830112611dd357611dd26126c8565b5b8135611de3848260208601611d24565b91505092915050565b600081519050611dfb8161286f565b92915050565b600081359050611e1081612886565b92915050565b600081519050611e2581612886565b92915050565b600060208284031215611e4157611e406126d7565b5b6000611e4f84828501611d94565b91505092915050565b600060208284031215611e6e57611e6d6126d7565b5b6000611e7c84828501611da9565b91505092915050565b60008060408385031215611e9c57611e9b6126d7565b5b6000611eaa85828601611d94565b9250506020611ebb85828601611e01565b9150509250929050565b600060208284031215611edb57611eda6126d7565b5b600082013567ffffffffffffffff811115611ef957611ef86126d2565b5b611f0584828501611dbe565b91505092915050565b600060208284031215611f2457611f236126d7565b5b6000611f3284828501611dec565b91505092915050565b600060208284031215611f5157611f506126d7565b5b6000611f5f84828501611e01565b91505092915050565b600060208284031215611f7e57611f7d6126d7565b5b6000611f8c84828501611e16565b91505092915050565b6000611fa1838361211e565b60208301905092915050565b611fb6816124e4565b82525050565b6000611fc782612395565b611fd181856123ad565b9350611fdc83612385565b8060005b8381101561200d578151611ff48882611f95565b9750611fff836123a0565b925050600181019050611fe0565b5085935050505092915050565b612023816124f6565b82525050565b6000612036601a836123be565b9150612041826126ed565b602082019050919050565b60006120596026836123be565b915061206482612716565b604082019050919050565b600061207c600d836123be565b915061208782612765565b602082019050919050565b600061209f6020836123be565b91506120aa8261278e565b602082019050919050565b60006120c26015836123be565b91506120cd826127b7565b602082019050919050565b60006120e56020836123be565b91506120f0826127e0565b602082019050919050565b60006121086030836123be565b915061211382612809565b604082019050919050565b61212781612522565b82525050565b61213681612522565b82525050565b60006020820190506121516000830184611fad565b92915050565b600060608201905061216c6000830186611fad565b6121796020830185611fad565b612186604083018461212d565b949350505050565b60006040820190506121a36000830185611fad565b6121b0602083018461212d565b9392505050565b600060208201905081810360008301526121d18184611fbc565b905092915050565b60006020820190506121ee600083018461201a565b92915050565b6000602082019050818103600083015261220d81612029565b9050919050565b6000602082019050818103600083015261222d8161204c565b9050919050565b6000602082019050818103600083015261224d8161206f565b9050919050565b6000602082019050818103600083015261226d81612092565b9050919050565b6000602082019050818103600083015261228d816120b5565b9050919050565b600060208201905081810360008301526122ad816120d8565b9050919050565b600060208201905081810360008301526122cd816120fb565b9050919050565b60006020820190506122e9600083018461212d565b92915050565b6000608082019050612304600083018761212d565b612311602083018661212d565b61231e604083018561212d565b61232b606083018461212d565b95945050505050565b600061233e61234f565b905061234a8282612539565b919050565b6000604051905090565b600067ffffffffffffffff82111561237457612373612699565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006123da82612522565b91506123e583612522565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561241a576124196125dd565b5b828201905092915050565b600061243082612522565b915061243b83612522565b92508261244b5761244a61260c565b5b828204905092915050565b600061246182612522565b915061246c83612522565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a5576124a46125dd565b5b828202905092915050565b60006124bb82612522565b91506124c683612522565b9250828210156124d9576124d86125dd565b5b828203905092915050565b60006124ef82612502565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b612542826126dc565b810181811067ffffffffffffffff8211171561256157612560612699565b5b80604052505050565b600061257582612522565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156125a8576125a76125dd565b5b600182019050919050565b60006125be8261252c565b915060ff8214156125d2576125d16125dd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f796f7520646f6e27742068617665207265776172642079657421000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f6e6674206e6f7420666f756e6400000000000000000000000000000000000000600082015250565b7f4e465420776974682074686973205f746f6b656e4964206e6f7420666f756e64600082015250565b7f546f6b656e207472616e73666572204572726f72210000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f6e747261637420446f6e2774206861766520656e6f75676820746f6b656e60008201527f7320746f20676976652072657761726400000000000000000000000000000000602082015250565b612861816124e4565b811461286c57600080fd5b50565b612878816124f6565b811461288357600080fd5b50565b61288f81612522565b811461289a57600080fd5b5056fea2646970667358221220f942a3708bb913c29a4a9257e8785c379e21c3f792fc4e0c4dc0266b0b2aa91b64736f6c63430008070033000000000000000000000000afe50c9a0773f1bac3749be7dfbbb1e832ffc95a000000000000000000000000cc344255b499c310e526ce721ca09b2d3935823b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063c241f39711610071578063c241f3971461030a578063cc1d08d41461033a578063e449f3411461036a578063f2450ece14610386578063f2fde38b1461039057610116565b80638da5cb5b1461026e57806397e17cd71461028c578063a911941c146102bc578063b2bdfa7b146102ec57610116565b806352cac94d116100e957806352cac94d146101a65780636177fd18146101c257806361f9181f146101f257806370b68cf614610222578063799324751461023e57610116565b8063230eb9c61461011b5780632c07f74f1461014e5780632e23dc8f1461015857806340376ba214610176575b600080fd5b61013560048036038101906101309190611e2b565b6103ac565b60405161014594939291906122ef565b60405180910390f35b6101566103dc565b005b61016061086d565b60405161016d91906122d4565b60405180910390f35b610190600480360381019061018b9190611e2b565b610873565b60405161019d91906121b7565b60405180910390f35b6101c060048036038101906101bb9190611f3b565b61090a565b005b6101dc60048036038101906101d79190611e2b565b6109a2565b6040516101e991906121d9565b60405180910390f35b61020c60048036038101906102079190611e85565b6109fe565b60405161021991906122d4565b60405180910390f35b61023c60048036038101906102379190611ec5565b610a23565b005b61025860048036038101906102539190611f3b565b610e72565b60405161026591906121d9565b60405180910390f35b610276610e92565b604051610283919061213c565b60405180910390f35b6102a660048036038101906102a19190611e2b565b610ebb565b6040516102b391906122d4565b60405180910390f35b6102d660048036038101906102d19190611e2b565b61121c565b6040516102e391906122d4565b60405180910390f35b6102f4611234565b604051610301919061213c565b60405180910390f35b610324600480360381019061031f9190611e85565b611258565b60405161033191906122d4565b60405180910390f35b610354600480360381019061034f9190611e85565b61127d565b60405161036191906122d4565b60405180910390f35b610384600480360381019061037f9190611ec5565b6112ae565b005b61038e611893565b005b6103aa60048036038101906103a59190611e2b565b611abb565b005b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b60006103e733610ebb565b90506000811161042c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610423906121f4565b60405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016104aa919061213c565b60206040518083038186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa9190611f68565b101561053b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610532906122b4565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166361ee195533836040518363ffffffff1660e01b815260040161059892919061218e565b600060405180830381600087803b1580156105b257600080fd5b505af11580156105c6573d6000803e3d6000fd5b5050505060005b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508160ff1610156106e05742600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208460ff16815481106106b0576106af61266a565b5b906000526020600020015481526020019081526020016000208190555080806106d8906125b3565b9150506105cd565b5080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825461073391906123cf565b925050819055506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555060005b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561086957600160076000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106108265761082561266a565b5b9060005260206000200154815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108619061256a565b915050610785565b5050565b600b5481565b6060600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156108fe57602002820191906000526020600020905b8154815260200190600101908083116108ea575b50505050509050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098f90612294565b60405180910390fd5b80600b8190555050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156109f457600190506109f9565b600090505b919050565b6008602052816000526040600020602052806000526040600020600091509150505481565b60005b8151811015610dbd573373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e848481518110610a9757610a9661266a565b5b60200260200101516040518263ffffffff1660e01b8152600401610abb91906122d4565b60206040518083038186803b158015610ad357600080fd5b505afa158015610ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0b9190611e58565b73ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5890612234565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330858581518110610bb457610bb361266a565b5b60200260200101516040518463ffffffff1660e01b8152600401610bda93929190612157565b600060405180830381600087803b158015610bf457600080fd5b505af1158015610c08573d6000803e3d6000fd5b50505050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828281518110610c5e57610c5d61266a565b5b6020026020010151908060018154018082558091505060019003906000526020600020016000909190919091505542600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848481518110610ce157610ce061266a565b5b602002602001015181526020019081526020016000208190555060076000838381518110610d1257610d1161266a565b5b6020026020010151815260200190815260200160002060009054906101000a900460ff16610daa5742600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848481518110610d8f57610d8e61266a565b5b60200260200101518152602001908152602001600020819055505b8080610db59061256a565b915050610a26565b508051600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610e1191906123cf565b925050819055508051600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e6891906123cf565b9250508190555050565b60076020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060005b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156111c5576000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610f5e57610f5d61266a565b5b906000526020600020015411156111b25762015180600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481106110055761100461266a565b5b906000526020600020015481526020019081526020016000205461102991906123cf565b421180156110b0575060076000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106110875761108661266a565b5b9060005260206000200154815260200190815260200160002060009054906101000a900460ff16155b156110c657600b54826110c391906123cf565b91505b67d02ab486cedc000061119a600954600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002086815481106111675761116661266a565b5b90600052602060002001548152602001908152602001600020544261118c91906124b0565b611c7690919063ffffffff16565b6111a49190612456565b826111af91906123cf565b91505b80806111bd9061256a565b915050610ec1565b50600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301548161121491906123cf565b915050919050565b60066020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052816000526040600020602052806000526040600020600091509150505481565b6005602052816000526040600020818154811061129957600080fd5b90600052602060002001600091509150505481565b6112b733610ebb565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461130891906123cf565b9250508190555060005b815181101561174d57600061132633610ebb565b1115611373576001600760008484815181106113455761134461266a565b5b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600061139883838151811061138b5761138a61266a565b5b6020026020010151611c9e565b90508282815181106113ad576113ac61266a565b5b6020026020010151600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106114065761140561266a565b5b906000526020600020015414611451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144890612254565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd30338686815181106114a4576114a361266a565b5b60200260200101516040518463ffffffff1660e01b81526004016114ca93929190612157565b600060405180830381600087803b1580156114e457600080fd5b505af11580156114f8573d6000803e3d6000fd5b50505050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811061154d5761154c61266a565b5b9060005260206000200160009055600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506115e991906124b0565b815481106115fa576115f961266a565b5b9060005260206000200154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106116565761165561266a565b5b90600052602060002001819055506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008585815181106116ba576116b961266a565b5b6020026020010151815260200190815260200160002081905550600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806117235761172261263b565b5b600190038181906000526020600020016000905590555080806117459061256a565b915050611312565b508051600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282546117a191906124b0565b925050819055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611838576000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905561188f565b8051600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188891906124b0565b9250508190555b5050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612294565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119bb919061213c565b60206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0b9190611f68565b6040518363ffffffff1660e01b8152600401611a2892919061218e565b602060405180830381600087803b158015611a4257600080fd5b505af1158015611a56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7a9190611f0e565b611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090612274565b60405180910390fd5b565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090612294565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb090612214565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808211611c8457600080fd5b60008284611c929190612425565b90508091505092915050565b600080600090505b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110611cf857611cf761266a565b5b906000526020600020015414611d1b578080611d139061256a565b915050611ca6565b80915050919050565b6000611d37611d3284612359565b612334565b90508083825260208201905082856020860282011115611d5a57611d596126cd565b5b60005b85811015611d8a5781611d708882611e01565b845260208401935060208301925050600181019050611d5d565b5050509392505050565b600081359050611da381612858565b92915050565b600081519050611db881612858565b92915050565b600082601f830112611dd357611dd26126c8565b5b8135611de3848260208601611d24565b91505092915050565b600081519050611dfb8161286f565b92915050565b600081359050611e1081612886565b92915050565b600081519050611e2581612886565b92915050565b600060208284031215611e4157611e406126d7565b5b6000611e4f84828501611d94565b91505092915050565b600060208284031215611e6e57611e6d6126d7565b5b6000611e7c84828501611da9565b91505092915050565b60008060408385031215611e9c57611e9b6126d7565b5b6000611eaa85828601611d94565b9250506020611ebb85828601611e01565b9150509250929050565b600060208284031215611edb57611eda6126d7565b5b600082013567ffffffffffffffff811115611ef957611ef86126d2565b5b611f0584828501611dbe565b91505092915050565b600060208284031215611f2457611f236126d7565b5b6000611f3284828501611dec565b91505092915050565b600060208284031215611f5157611f506126d7565b5b6000611f5f84828501611e01565b91505092915050565b600060208284031215611f7e57611f7d6126d7565b5b6000611f8c84828501611e16565b91505092915050565b6000611fa1838361211e565b60208301905092915050565b611fb6816124e4565b82525050565b6000611fc782612395565b611fd181856123ad565b9350611fdc83612385565b8060005b8381101561200d578151611ff48882611f95565b9750611fff836123a0565b925050600181019050611fe0565b5085935050505092915050565b612023816124f6565b82525050565b6000612036601a836123be565b9150612041826126ed565b602082019050919050565b60006120596026836123be565b915061206482612716565b604082019050919050565b600061207c600d836123be565b915061208782612765565b602082019050919050565b600061209f6020836123be565b91506120aa8261278e565b602082019050919050565b60006120c26015836123be565b91506120cd826127b7565b602082019050919050565b60006120e56020836123be565b91506120f0826127e0565b602082019050919050565b60006121086030836123be565b915061211382612809565b604082019050919050565b61212781612522565b82525050565b61213681612522565b82525050565b60006020820190506121516000830184611fad565b92915050565b600060608201905061216c6000830186611fad565b6121796020830185611fad565b612186604083018461212d565b949350505050565b60006040820190506121a36000830185611fad565b6121b0602083018461212d565b9392505050565b600060208201905081810360008301526121d18184611fbc565b905092915050565b60006020820190506121ee600083018461201a565b92915050565b6000602082019050818103600083015261220d81612029565b9050919050565b6000602082019050818103600083015261222d8161204c565b9050919050565b6000602082019050818103600083015261224d8161206f565b9050919050565b6000602082019050818103600083015261226d81612092565b9050919050565b6000602082019050818103600083015261228d816120b5565b9050919050565b600060208201905081810360008301526122ad816120d8565b9050919050565b600060208201905081810360008301526122cd816120fb565b9050919050565b60006020820190506122e9600083018461212d565b92915050565b6000608082019050612304600083018761212d565b612311602083018661212d565b61231e604083018561212d565b61232b606083018461212d565b95945050505050565b600061233e61234f565b905061234a8282612539565b919050565b6000604051905090565b600067ffffffffffffffff82111561237457612373612699565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006123da82612522565b91506123e583612522565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561241a576124196125dd565b5b828201905092915050565b600061243082612522565b915061243b83612522565b92508261244b5761244a61260c565b5b828204905092915050565b600061246182612522565b915061246c83612522565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a5576124a46125dd565b5b828202905092915050565b60006124bb82612522565b91506124c683612522565b9250828210156124d9576124d86125dd565b5b828203905092915050565b60006124ef82612502565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b612542826126dc565b810181811067ffffffffffffffff8211171561256157612560612699565b5b80604052505050565b600061257582612522565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156125a8576125a76125dd565b5b600182019050919050565b60006125be8261252c565b915060ff8214156125d2576125d16125dd565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f796f7520646f6e27742068617665207265776172642079657421000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f6e6674206e6f7420666f756e6400000000000000000000000000000000000000600082015250565b7f4e465420776974682074686973205f746f6b656e4964206e6f7420666f756e64600082015250565b7f546f6b656e207472616e73666572204572726f72210000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f6e747261637420446f6e2774206861766520656e6f75676820746f6b656e60008201527f7320746f20676976652072657761726400000000000000000000000000000000602082015250565b612861816124e4565b811461286c57600080fd5b50565b612878816124f6565b811461288357600080fd5b50565b61288f81612522565b811461289a57600080fd5b5056fea2646970667358221220f942a3708bb913c29a4a9257e8785c379e21c3f792fc4e0c4dc0266b0b2aa91b64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000afe50c9a0773f1bac3749be7dfbbb1e832ffc95a000000000000000000000000cc344255b499c310e526ce721ca09b2d3935823b
-----Decoded View---------------
Arg [0] : _NFTToken (address): 0xAFe50C9a0773F1BAC3749Be7dfbBb1e832Ffc95A
Arg [1] : _token (address): 0xcC344255b499c310E526CE721Ca09b2d3935823b
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000afe50c9a0773f1bac3749be7dfbbb1e832ffc95a
Arg [1] : 000000000000000000000000cc344255b499c310e526ce721ca09b2d3935823b
Deployed Bytecode Sourcemap
9434:5704:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10012:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;12447:700;;;:::i;:::-;;10349:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12190:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15011:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14430:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10217:62;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10719:611;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10166:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8660:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11443:585;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10112:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8210:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9939:66;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10060:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13541:883;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14835:161;;;:::i;:::-;;9120:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10012:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12447:700::-;12499:14;12516:24;12529:10;12516:12;:24::i;:::-;12499:41;;12567:1;12558:6;:10;12550:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12649:6;12616:5;;;;;;;;;;;:15;;;12640:5;;;;;;;;;;;12616:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;;12608:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;12717:5;;;;;;;;;;;:27;;;12745:10;12756:6;12717:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12777:7;12773:131;12789:7;:19;12797:10;12789:19;;;;;;;;;;;;;;;:26;;;;12787:1;:28;;;12773:131;;;12878:15;12830:11;:23;12842:10;12830:23;;;;;;;;;;;;;;;:47;12854:7;:19;12862:10;12854:19;;;;;;;;;;;;;;;12874:1;12854:22;;;;;;;;;;:::i;:::-;;;;;;;;;;12830:47;;;;;;;;;;;:63;;;;12816:3;;;;;:::i;:::-;;;;12773:131;;;;12949:6;12913:4;:16;12918:10;12913:16;;;;;;;;;;;;;;;:31;;;:42;;;;;;;:::i;:::-;;;;;;;;13005:1;12965:4;:16;12970:10;12965:16;;;;;;;;;;;;;;;:36;;:41;;;;13020:9;13016:122;13040:7;:19;13048:10;13040:19;;;;;;;;;;;;;;;:26;;;;13036:1;:30;13016:122;;;13123:4;13084:14;:38;13099:7;:19;13107:10;13099:19;;;;;;;;;;;;;;;13119:1;13099:22;;;;;;;;:::i;:::-;;;;;;;;;;13084:38;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;13069:3;;;;;:::i;:::-;;;;13016:122;;;;12489:658;12447:700::o;10349:37::-;;;;:::o;12190:129::-;12249:16;12292:7;:16;12300:7;12292:16;;;;;;;;;;;;;;;12285:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12190:129;;;:::o;15011:112::-;8888:10;8878:20;;:6;;;;;;;;;;:20;;;8870:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15100:7:::1;15088:11;:19;;;;15011:112:::0;:::o;14430:208::-;14489:4;14541:1;14512:14;:28;14527:12;14512:28;;;;;;;;;;;;;;;;:30;14509:121;;;14565:4;14558:11;;;;14509:121;14611:5;14604:12;;14430:208;;;;:::o;10217:62::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10719:611::-;10789:9;10785:421;10803:7;:14;10801:1;:16;10785:421;;;10872:10;10840:42;;:8;;;;;;;;;;;:16;;;10857:7;10865:1;10857:10;;;;;;;;:::i;:::-;;;;;;;;10840:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;10832:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10909:8;;;;;;;;;;;:21;;;10931:10;10950:4;10956:7;10964:1;10956:10;;;;;;;;:::i;:::-;;;;;;;;10909:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10977:7;:19;10985:10;10977:19;;;;;;;;;;;;;;;11002:7;11010:1;11002:10;;;;;;;;:::i;:::-;;;;;;;;10977:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11059:15;11023:11;:23;11035:10;11023:23;;;;;;;;;;;;;;;:35;11047:7;11055:1;11047:10;;;;;;;;:::i;:::-;;;;;;;;11023:35;;;;;;;;;;;:51;;;;11088:14;:26;11103:7;11111:1;11103:10;;;;;;;;:::i;:::-;;;;;;;;11088:26;;;;;;;;;;;;;;;;;;;;;11084:112;;11161:15;11125:11;:23;11137:10;11125:23;;;;;;;;;;;;;;;:35;11149:7;11157:1;11149:10;;;;;;;;:::i;:::-;;;;;;;;11125:35;;;;;;;;;;;:51;;;;11084:112;10818:3;;;;;:::i;:::-;;;;10785:421;;;;11254:7;:14;11224:4;:16;11229:10;11224:16;;;;;;;;;;;;;;;:28;;;:44;;;;;;;:::i;:::-;;;;;;;;11306:7;:14;11278;:26;11293:10;11278:26;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;10719:611;:::o;10166:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8660:79::-;8698:7;8725:6;;;;;;;;;;;8718:13;;8660:79;:::o;11443:585::-;11498:7;11524:19;11558:9;11554:411;11578:7;:12;11586:3;11578:12;;;;;;;;;;;;;;;:19;;;;11574:1;:23;11554:411;;;11640:1;11622:7;:12;11630:3;11622:12;;;;;;;;;;;;;;;11635:1;11622:15;;;;;;;;:::i;:::-;;;;;;;;;;:19;11619:338;;;11727:6;11693:11;:16;11705:3;11693:16;;;;;;;;;;;;;;;:33;11710:7;:12;11718:3;11710:12;;;;;;;;;;;;;;;11723:1;11710:15;;;;;;;;:::i;:::-;;;;;;;;;;11693:33;;;;;;;;;;;;:40;;;;:::i;:::-;11677:15;:56;11676:92;;;;;11737:14;:31;11752:7;:12;11760:3;11752:12;;;;;;;;;;;;;;;11765:1;11752:15;;;;;;;;:::i;:::-;;;;;;;;;;11737:31;;;;;;;;;;;;;;;;;;;;;11736:32;11676:92;11673:155;;;11799:11;;11786:24;;;;;:::i;:::-;;;11673:155;11928:8;11860:65;11920:4;;11880:11;:16;11892:3;11880:16;;;;;;;;;;;;;;;:33;11897:7;:12;11905:3;11897:12;;;;;;;;;;;;;;;11910:1;11897:15;;;;;;;;:::i;:::-;;;;;;;;;;11880:33;;;;;;;;;;;;11861:15;:53;;;;:::i;:::-;11860:59;;:65;;;;:::i;:::-;11858:78;;;;:::i;:::-;11843:93;;;;;:::i;:::-;;;11619:338;11600:3;;;;;:::i;:::-;;;;11554:411;;;;11990:4;:9;11995:3;11990:9;;;;;;;;;;;;;;;:29;;;11978:11;:41;;;;:::i;:::-;11971:48;;;11443:585;;;:::o;10112:47::-;;;;;;;;;;;;;;;;;:::o;8210:21::-;;;;;;;;;;;;:::o;9939:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10060:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13541:883::-;13654:24;13667:10;13654:12;:24::i;:::-;13616:4;:16;13621:10;13616:16;;;;;;;;;;;;;;;:36;;;:62;;;;;;;:::i;:::-;;;;;;;;13693:9;13689:551;13707:8;:15;13705:1;:17;13689:551;;;13766:1;13741:24;13754:10;13741:12;:24::i;:::-;:26;13738:62;;;13796:4;13768:14;:27;13783:8;13792:1;13783:11;;;;;;;;:::i;:::-;;;;;;;;13768:27;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13738:62;13811:14;13826:17;13831:8;13840:1;13831:11;;;;;;;;:::i;:::-;;;;;;;;13826:4;:17::i;:::-;13811:32;;13892:8;13901:1;13892:11;;;;;;;;:::i;:::-;;;;;;;;13862:7;:19;13870:10;13862:19;;;;;;;;;;;;;;;13882:6;13862:27;;;;;;;;:::i;:::-;;;;;;;;;;:41;13854:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;13951:8;;;;;;;;;;;:21;;;13981:4;13987:10;13998:8;14007:1;13998:11;;;;;;;;:::i;:::-;;;;;;;;13951:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14028:7;:19;14036:10;14028:19;;;;;;;;;;;;;;;14048:6;14028:27;;;;;;;;:::i;:::-;;;;;;;;;14021:34;;;14094:7;:19;14102:10;14094:19;;;;;;;;;;;;;;;14141:1;14114:7;:19;14122:10;14114:19;;;;;;;;;;;;;;;:26;;;;:28;;;;:::i;:::-;14094:49;;;;;;;;:::i;:::-;;;;;;;;;;14066:7;:19;14074:10;14066:19;;;;;;;;;;;;;;;14086:6;14066:27;;;;;;;;:::i;:::-;;;;;;;;;:77;;;;14191:1;14154:11;:23;14166:10;14154:23;;;;;;;;;;;;;;;:36;14178:8;14187:1;14178:11;;;;;;;;:::i;:::-;;;;;;;;14154:36;;;;;;;;;;;:38;;;;14203:7;:19;14211:10;14203:19;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13727:513;13723:3;;;;;:::i;:::-;;;;13689:551;;;;14280:8;:15;14250:4;:16;14255:10;14250:16;;;;;;;;;;;;;;;:28;;;:45;;;;;;;:::i;:::-;;;;;;;;14333:1;14306:14;:26;14321:10;14306:26;;;;;;;;;;;;;;;;:28;:101;;14406:1;14379:14;:26;14394:10;14379:26;;;;;;;;;;;;;;;:28;;;14306:101;;;14363:8;:15;14335:14;:26;14350:10;14335:26;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;14306:101;;13541:883;:::o;14835:161::-;8888:10;8878:20;;:6;;;;;;;;;;:20;;;8870:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14898:5:::1;;;;;;;;;;;:14;;;14913:10;14924:5;;;;;;;;;;;:15;;;14948:4;14924:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14898:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14890:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14835:161::o:0;9120:277::-;8888:10;8878:20;;:6;;;;;;;;;;:20;;;8870:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9235:1:::1;9215:22;;:8;:22;;;;9193:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9350:8;9321:38;;9342:6;::::0;::::1;;;;;;;;9321:38;;;;;;;;;;;;9381:8;9372:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;9120:277:::0;:::o;1947:303::-;2005:7;2104:1;2100;:5;2092:14;;;;;;2117:9;2133:1;2129;:5;;;;:::i;:::-;2117:17;;2241:1;2234:8;;;1947:303;;;;:::o;13246:184::-;13295:4;13312:6;13321:1;13312:10;;13333:70;13366:5;13340:7;:19;13348:10;13340:19;;;;;;;;;;;;;;;13360:1;13340:22;;;;;;;;:::i;:::-;;;;;;;;;;:31;13333:70;;13388:3;;;;;:::i;:::-;;;;13333:70;;;13420:1;13413:8;;;13246:184;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:329::-;1935:6;1984:2;1972:9;1963:7;1959:23;1955:32;1952:119;;;1990:79;;:::i;:::-;1952:119;2110:1;2135:53;2180:7;2171:6;2160:9;2156:22;2135:53;:::i;:::-;2125:63;;2081:117;1876:329;;;;:::o;2211:351::-;2281:6;2330:2;2318:9;2309:7;2305:23;2301:32;2298:119;;;2336:79;;:::i;:::-;2298:119;2456:1;2481:64;2537:7;2528:6;2517:9;2513:22;2481:64;:::i;:::-;2471:74;;2427:128;2211:351;;;;:::o;2568:474::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2819:1;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2790:117;2946:2;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2917:118;2568:474;;;;;:::o;3048:539::-;3132:6;3181:2;3169:9;3160:7;3156:23;3152:32;3149:119;;;3187:79;;:::i;:::-;3149:119;3335:1;3324:9;3320:17;3307:31;3365:18;3357:6;3354:30;3351:117;;;3387:79;;:::i;:::-;3351:117;3492:78;3562:7;3553:6;3542:9;3538:22;3492:78;:::i;:::-;3482:88;;3278:302;3048:539;;;;:::o;3593:345::-;3660:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:119;;;3715:79;;:::i;:::-;3677:119;3835:1;3860:61;3913:7;3904:6;3893:9;3889:22;3860:61;:::i;:::-;3850:71;;3806:125;3593:345;;;;:::o;3944:329::-;4003:6;4052:2;4040:9;4031:7;4027:23;4023:32;4020:119;;;4058:79;;:::i;:::-;4020:119;4178:1;4203:53;4248:7;4239:6;4228:9;4224:22;4203:53;:::i;:::-;4193:63;;4149:117;3944:329;;;;:::o;4279:351::-;4349:6;4398:2;4386:9;4377:7;4373:23;4369:32;4366:119;;;4404:79;;:::i;:::-;4366:119;4524:1;4549:64;4605:7;4596:6;4585:9;4581:22;4549:64;:::i;:::-;4539:74;;4495:128;4279:351;;;;:::o;4636:179::-;4705:10;4726:46;4768:3;4760:6;4726:46;:::i;:::-;4804:4;4799:3;4795:14;4781:28;;4636:179;;;;:::o;4821:118::-;4908:24;4926:5;4908:24;:::i;:::-;4903:3;4896:37;4821:118;;:::o;4975:732::-;5094:3;5123:54;5171:5;5123:54;:::i;:::-;5193:86;5272:6;5267:3;5193:86;:::i;:::-;5186:93;;5303:56;5353:5;5303:56;:::i;:::-;5382:7;5413:1;5398:284;5423:6;5420:1;5417:13;5398:284;;;5499:6;5493:13;5526:63;5585:3;5570:13;5526:63;:::i;:::-;5519:70;;5612:60;5665:6;5612:60;:::i;:::-;5602:70;;5458:224;5445:1;5442;5438:9;5433:14;;5398:284;;;5402:14;5698:3;5691:10;;5099:608;;;4975:732;;;;:::o;5713:109::-;5794:21;5809:5;5794:21;:::i;:::-;5789:3;5782:34;5713:109;;:::o;5828:366::-;5970:3;5991:67;6055:2;6050:3;5991:67;:::i;:::-;5984:74;;6067:93;6156:3;6067:93;:::i;:::-;6185:2;6180:3;6176:12;6169:19;;5828:366;;;:::o;6200:::-;6342:3;6363:67;6427:2;6422:3;6363:67;:::i;:::-;6356:74;;6439:93;6528:3;6439:93;:::i;:::-;6557:2;6552:3;6548:12;6541:19;;6200:366;;;:::o;6572:::-;6714:3;6735:67;6799:2;6794:3;6735:67;:::i;:::-;6728:74;;6811:93;6900:3;6811:93;:::i;:::-;6929:2;6924:3;6920:12;6913:19;;6572:366;;;:::o;6944:::-;7086:3;7107:67;7171:2;7166:3;7107:67;:::i;:::-;7100:74;;7183:93;7272:3;7183:93;:::i;:::-;7301:2;7296:3;7292:12;7285:19;;6944:366;;;:::o;7316:::-;7458:3;7479:67;7543:2;7538:3;7479:67;:::i;:::-;7472:74;;7555:93;7644:3;7555:93;:::i;:::-;7673:2;7668:3;7664:12;7657:19;;7316:366;;;:::o;7688:::-;7830:3;7851:67;7915:2;7910:3;7851:67;:::i;:::-;7844:74;;7927:93;8016:3;7927:93;:::i;:::-;8045:2;8040:3;8036:12;8029:19;;7688:366;;;:::o;8060:::-;8202:3;8223:67;8287:2;8282:3;8223:67;:::i;:::-;8216:74;;8299:93;8388:3;8299:93;:::i;:::-;8417:2;8412:3;8408:12;8401:19;;8060:366;;;:::o;8432:108::-;8509:24;8527:5;8509:24;:::i;:::-;8504:3;8497:37;8432:108;;:::o;8546:118::-;8633:24;8651:5;8633:24;:::i;:::-;8628:3;8621:37;8546:118;;:::o;8670:222::-;8763:4;8801:2;8790:9;8786:18;8778:26;;8814:71;8882:1;8871:9;8867:17;8858:6;8814:71;:::i;:::-;8670:222;;;;:::o;8898:442::-;9047:4;9085:2;9074:9;9070:18;9062:26;;9098:71;9166:1;9155:9;9151:17;9142:6;9098:71;:::i;:::-;9179:72;9247:2;9236:9;9232:18;9223:6;9179:72;:::i;:::-;9261;9329:2;9318:9;9314:18;9305:6;9261:72;:::i;:::-;8898:442;;;;;;:::o;9346:332::-;9467:4;9505:2;9494:9;9490:18;9482:26;;9518:71;9586:1;9575:9;9571:17;9562:6;9518:71;:::i;:::-;9599:72;9667:2;9656:9;9652:18;9643:6;9599:72;:::i;:::-;9346:332;;;;;:::o;9684:373::-;9827:4;9865:2;9854:9;9850:18;9842:26;;9914:9;9908:4;9904:20;9900:1;9889:9;9885:17;9878:47;9942:108;10045:4;10036:6;9942:108;:::i;:::-;9934:116;;9684:373;;;;:::o;10063:210::-;10150:4;10188:2;10177:9;10173:18;10165:26;;10201:65;10263:1;10252:9;10248:17;10239:6;10201:65;:::i;:::-;10063:210;;;;:::o;10279:419::-;10445:4;10483:2;10472:9;10468:18;10460:26;;10532:9;10526:4;10522:20;10518:1;10507:9;10503:17;10496:47;10560:131;10686:4;10560:131;:::i;:::-;10552:139;;10279:419;;;:::o;10704:::-;10870:4;10908:2;10897:9;10893:18;10885:26;;10957:9;10951:4;10947:20;10943:1;10932:9;10928:17;10921:47;10985:131;11111:4;10985:131;:::i;:::-;10977:139;;10704:419;;;:::o;11129:::-;11295:4;11333:2;11322:9;11318:18;11310:26;;11382:9;11376:4;11372:20;11368:1;11357:9;11353:17;11346:47;11410:131;11536:4;11410:131;:::i;:::-;11402:139;;11129:419;;;:::o;11554:::-;11720:4;11758:2;11747:9;11743:18;11735:26;;11807:9;11801:4;11797:20;11793:1;11782:9;11778:17;11771:47;11835:131;11961:4;11835:131;:::i;:::-;11827:139;;11554:419;;;:::o;11979:::-;12145:4;12183:2;12172:9;12168:18;12160:26;;12232:9;12226:4;12222:20;12218:1;12207:9;12203:17;12196:47;12260:131;12386:4;12260:131;:::i;:::-;12252:139;;11979:419;;;:::o;12404:::-;12570:4;12608:2;12597:9;12593:18;12585:26;;12657:9;12651:4;12647:20;12643:1;12632:9;12628:17;12621:47;12685:131;12811:4;12685:131;:::i;:::-;12677:139;;12404:419;;;:::o;12829:::-;12995:4;13033:2;13022:9;13018:18;13010:26;;13082:9;13076:4;13072:20;13068:1;13057:9;13053:17;13046:47;13110:131;13236:4;13110:131;:::i;:::-;13102:139;;12829:419;;;:::o;13254:222::-;13347:4;13385:2;13374:9;13370:18;13362:26;;13398:71;13466:1;13455:9;13451:17;13442:6;13398:71;:::i;:::-;13254:222;;;;:::o;13482:553::-;13659:4;13697:3;13686:9;13682:19;13674:27;;13711:71;13779:1;13768:9;13764:17;13755:6;13711:71;:::i;:::-;13792:72;13860:2;13849:9;13845:18;13836:6;13792:72;:::i;:::-;13874;13942:2;13931:9;13927:18;13918:6;13874:72;:::i;:::-;13956;14024:2;14013:9;14009:18;14000:6;13956:72;:::i;:::-;13482:553;;;;;;;:::o;14041:129::-;14075:6;14102:20;;:::i;:::-;14092:30;;14131:33;14159:4;14151:6;14131:33;:::i;:::-;14041:129;;;:::o;14176:75::-;14209:6;14242:2;14236:9;14226:19;;14176:75;:::o;14257:311::-;14334:4;14424:18;14416:6;14413:30;14410:56;;;14446:18;;:::i;:::-;14410:56;14496:4;14488:6;14484:17;14476:25;;14556:4;14550;14546:15;14538:23;;14257:311;;;:::o;14574:132::-;14641:4;14664:3;14656:11;;14694:4;14689:3;14685:14;14677:22;;14574:132;;;:::o;14712:114::-;14779:6;14813:5;14807:12;14797:22;;14712:114;;;:::o;14832:113::-;14902:4;14934;14929:3;14925:14;14917:22;;14832:113;;;:::o;14951:184::-;15050:11;15084:6;15079:3;15072:19;15124:4;15119:3;15115:14;15100:29;;14951:184;;;;:::o;15141:169::-;15225:11;15259:6;15254:3;15247:19;15299:4;15294:3;15290:14;15275:29;;15141:169;;;;:::o;15316:305::-;15356:3;15375:20;15393:1;15375:20;:::i;:::-;15370:25;;15409:20;15427:1;15409:20;:::i;:::-;15404:25;;15563:1;15495:66;15491:74;15488:1;15485:81;15482:107;;;15569:18;;:::i;:::-;15482:107;15613:1;15610;15606:9;15599:16;;15316:305;;;;:::o;15627:185::-;15667:1;15684:20;15702:1;15684:20;:::i;:::-;15679:25;;15718:20;15736:1;15718:20;:::i;:::-;15713:25;;15757:1;15747:35;;15762:18;;:::i;:::-;15747:35;15804:1;15801;15797:9;15792:14;;15627:185;;;;:::o;15818:348::-;15858:7;15881:20;15899:1;15881:20;:::i;:::-;15876:25;;15915:20;15933:1;15915:20;:::i;:::-;15910:25;;16103:1;16035:66;16031:74;16028:1;16025:81;16020:1;16013:9;16006:17;16002:105;15999:131;;;16110:18;;:::i;:::-;15999:131;16158:1;16155;16151:9;16140:20;;15818:348;;;;:::o;16172:191::-;16212:4;16232:20;16250:1;16232:20;:::i;:::-;16227:25;;16266:20;16284:1;16266:20;:::i;:::-;16261:25;;16305:1;16302;16299:8;16296:34;;;16310:18;;:::i;:::-;16296:34;16355:1;16352;16348:9;16340:17;;16172:191;;;;:::o;16369:96::-;16406:7;16435:24;16453:5;16435:24;:::i;:::-;16424:35;;16369:96;;;:::o;16471:90::-;16505:7;16548:5;16541:13;16534:21;16523:32;;16471:90;;;:::o;16567:126::-;16604:7;16644:42;16637:5;16633:54;16622:65;;16567:126;;;:::o;16699:77::-;16736:7;16765:5;16754:16;;16699:77;;;:::o;16782:86::-;16817:7;16857:4;16850:5;16846:16;16835:27;;16782:86;;;:::o;16874:281::-;16957:27;16979:4;16957:27;:::i;:::-;16949:6;16945:40;17087:6;17075:10;17072:22;17051:18;17039:10;17036:34;17033:62;17030:88;;;17098:18;;:::i;:::-;17030:88;17138:10;17134:2;17127:22;16917:238;16874:281;;:::o;17161:233::-;17200:3;17223:24;17241:5;17223:24;:::i;:::-;17214:33;;17269:66;17262:5;17259:77;17256:103;;;17339:18;;:::i;:::-;17256:103;17386:1;17379:5;17375:13;17368:20;;17161:233;;;:::o;17400:167::-;17437:3;17460:22;17476:5;17460:22;:::i;:::-;17451:31;;17504:4;17497:5;17494:15;17491:41;;;17512:18;;:::i;:::-;17491:41;17559:1;17552:5;17548:13;17541:20;;17400:167;;;:::o;17573:180::-;17621:77;17618:1;17611:88;17718:4;17715:1;17708:15;17742:4;17739:1;17732:15;17759:180;17807:77;17804:1;17797:88;17904:4;17901:1;17894:15;17928:4;17925:1;17918:15;17945:180;17993:77;17990:1;17983:88;18090:4;18087:1;18080:15;18114:4;18111:1;18104:15;18131:180;18179:77;18176:1;18169:88;18276:4;18273:1;18266:15;18300:4;18297:1;18290:15;18317:180;18365:77;18362:1;18355:88;18462:4;18459:1;18452:15;18486:4;18483:1;18476:15;18503:117;18612:1;18609;18602:12;18626:117;18735:1;18732;18725:12;18749:117;18858:1;18855;18848:12;18872:117;18981:1;18978;18971:12;18995:102;19036:6;19087:2;19083:7;19078:2;19071:5;19067:14;19063:28;19053:38;;18995:102;;;:::o;19103:176::-;19243:28;19239:1;19231:6;19227:14;19220:52;19103:176;:::o;19285:225::-;19425:34;19421:1;19413:6;19409:14;19402:58;19494:8;19489:2;19481:6;19477:15;19470:33;19285:225;:::o;19516:163::-;19656:15;19652:1;19644:6;19640:14;19633:39;19516:163;:::o;19685:182::-;19825:34;19821:1;19813:6;19809:14;19802:58;19685:182;:::o;19873:171::-;20013:23;20009:1;20001:6;19997:14;19990:47;19873:171;:::o;20050:182::-;20190:34;20186:1;20178:6;20174:14;20167:58;20050:182;:::o;20238:235::-;20378:34;20374:1;20366:6;20362:14;20355:58;20447:18;20442:2;20434:6;20430:15;20423:43;20238:235;:::o;20479:122::-;20552:24;20570:5;20552:24;:::i;:::-;20545:5;20542:35;20532:63;;20591:1;20588;20581:12;20532:63;20479:122;:::o;20607:116::-;20677:21;20692:5;20677:21;:::i;:::-;20670:5;20667:32;20657:60;;20713:1;20710;20703:12;20657:60;20607:116;:::o;20729:122::-;20802:24;20820:5;20802:24;:::i;:::-;20795:5;20792:35;20782:63;;20841:1;20838;20831:12;20782:63;20729:122;:::o
Swarm Source
ipfs://f942a3708bb913c29a4a9257e8785c379e21c3f792fc4e0c4dc0266b0b2aa91b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.