Layka Puan token contract has migrated to a new address.
Overview
POL Balance
0 POL
POL Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 219 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Decrease Supply | 34267155 | 791 days ago | IN | 0 POL | 0.00087402 | ||||
Burn | 34174938 | 793 days ago | IN | 0 POL | 0.00110904 | ||||
Burn | 34174921 | 793 days ago | IN | 0 POL | 0.00110904 | ||||
Transfer | 34174761 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174753 | 793 days ago | IN | 0 POL | 0.0011448 | ||||
Transfer | 34174753 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174743 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174743 | 793 days ago | IN | 0 POL | 0.0011448 | ||||
Transfer | 34174733 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174732 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174715 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174715 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174700 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174700 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174688 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174688 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174676 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174676 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174668 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174667 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174657 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174657 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174648 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174648 | 793 days ago | IN | 0 POL | 0.00114517 | ||||
Transfer | 34174636 | 793 days ago | IN | 0 POL | 0.0011448 |
Loading...
Loading
Contract Name:
LaykaPuan
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-07-19 */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/security/Pausable.sol // OpenZeppelin Contracts v4.4.1 (security/Pausable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: contracts/LaykaPuan.sol //SPDX-License-Identifier: Unlicense pragma solidity ^0.8.9; /** * @title ERC20 Puan Token for Layka * * @author 0xVeliUysal, 0xfunTalia */ contract LaykaPuan is Context, IERC20, IERC20Metadata, Ownable, Pausable { string public constant name = "Layka Puan"; // Layka Puan Token string public constant symbol = "LP"; // our ticker is LP uint8 public constant decimals = 0; uint256 public totalSupply = 1_000_000; mapping(address => uint256) private balances; mapping(address => mapping(address => uint256)) private allowances; mapping(address => bool) public authorisedAccounts; event Mint(address indexed minter, address indexed account, uint256 amount); event Burn(address indexed burner, address indexed account, uint256 amount); constructor() { balances[msg.sender] = totalSupply; } /** * * @notice increase non-transferable token amount in total supply */ function increaseSupply(uint256 amount) external onlyOwner { totalSupply += amount; } /** * * @notice decrease non-transferable token amount in total supply */ function decreaseSupply(uint256 amount) external onlyOwner { totalSupply -= amount; } /** * * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view override returns (uint256) { return balances[account]; } /** * * @notice toggle pause * * This method using for toggling pause for contract */ function togglePause() external onlyOwner { paused() ? _unpause() : _pause(); } /** * * @notice only auhorised modifiers * * This method will use for future implementations. */ modifier onlyAuthorised() { require( authorisedAccounts[msg.sender], "Only Authorised Accounts" ); _; } /** * * @notice only add auhorised account * * This method will use for future implementations. */ function addAuthorisedAccount(address account) external onlyOwner { authorisedAccounts[account] = true; } /** * * @notice only remove auhorised account * * This method will use for future implementations. */ function removeAuthorisedAccount(address account) external onlyOwner { authorisedAccounts[account] = false; } /** * * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public override onlyOwner returns (bool) { address owner = _msgSender(); internalTransfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view override onlyOwner returns (uint256) { return allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public override onlyOwner returns (bool) { address owner = _msgSender(); internalApprove(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public override onlyOwner returns (bool) { address spender = _msgSender(); spendAllowance(from, spender, amount); internalTransfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) external onlyOwner returns (bool) { address owner = _msgSender(); internalApprove( owner, spender, allowances[owner][spender] + addedValue ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) external onlyOwner returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowances[owner][spender]; require( currentAllowance >= subtractedValue, "Decreased allowance below zero" ); unchecked { internalApprove(owner, spender, currentAllowance - subtractedValue); } return true; } /** * * @notice internal transfer method for non-transferable token * * This method is internal method for transfer operations */ function internalTransfer( address from, address to, uint256 amount ) internal { require(from != address(0), "Transfer from the zero address"); require(to != address(0), "Transfer to the zero address"); uint256 fromBalance = balances[from]; require( fromBalance >= amount, "Transfer amount exceeds balance" ); unchecked { balances[from] = fromBalance - amount; } balances[to] += amount; emit Transfer(from, to, amount); } /** * * @notice mint method for non-transferable token * * This method using to mint new non-transferable tokens. */ function mint(address account, uint256 amount) internal { require(account != address(0), "Mint to the zero address"); totalSupply += amount; balances[account] += amount; emit Mint(msg.sender, account, amount); } /** * * @notice burn method for non-transferable token * * This method is implemented for future business rules. */ function burn(address account, uint256 amount) external onlyAuthorised { require(account != address(0), "Burn from the zero address"); uint256 accountBalance = balances[account]; require(accountBalance >= amount, "Burn amount exceeds balance"); unchecked { balances[account] = accountBalance - amount; } totalSupply -= amount; emit Burn(msg.sender, account, amount); } /** * * @notice internal approve method for non-transferable token * * This method is internal method for approve functions. */ function internalApprove( address owner, address spender, uint256 amount ) internal { require(owner != address(0), "Approve from the zero address"); require(spender != address(0), "Approve to the zero address"); allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * * @notice internal spend allowance method for non-transferable token * * This method is internal method to spend for giving allowances */ function spendAllowance( address owner, address spender, uint256 amount ) internal { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require( currentAllowance >= amount, "Insufficient allowance" ); unchecked { internalApprove(owner, spender, currentAllowance - 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":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addAuthorisedAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"authorisedAccounts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeAuthorisedAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052620f424060015534801561001757600080fd5b5061003461002961009960201b60201c565b6100a160201b60201c565b60008060146101000a81548160ff021916908315150217905550600154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610165565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61233180620001756000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806395d89b41116100b8578063b921e1631161007c578063b921e16314610379578063c4ae316814610395578063cbfe52731461039f578063dd62ed3e146103bb578063f2fde38b146103eb578063f6b8edf11461040757610142565b806395d89b41146102c357806398e52f9a146102e15780639dc29fac146102fd578063a457c2d714610319578063a9059cbb1461034957610142565b8063313ce5671161010a578063313ce567146101ff578063395093511461021d5780635c975abb1461024d57806370a082311461026b578063715018a61461029b5780638da5cb5b146102a557610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b357806330c5eafb146101e3575b600080fd5b61014f610437565b60405161015c919061198b565b60405180910390f35b61017f600480360381019061017a9190611a46565b610470565b60405161018c9190611aa1565b60405180910390f35b61019d610510565b6040516101aa9190611acb565b60405180910390f35b6101cd60048036038101906101c89190611ae6565b610516565b6040516101da9190611aa1565b60405180910390f35b6101fd60048036038101906101f89190611b39565b6105c2565b005b610207610699565b6040516102149190611b82565b60405180910390f35b61023760048036038101906102329190611a46565b61069e565b6040516102449190611aa1565b60405180910390f35b6102556107c5565b6040516102629190611aa1565b60405180910390f35b61028560048036038101906102809190611b39565b6107db565b6040516102929190611acb565b60405180910390f35b6102a3610824565b005b6102ad6108ac565b6040516102ba9190611bac565b60405180910390f35b6102cb6108d5565b6040516102d8919061198b565b60405180910390f35b6102fb60048036038101906102f69190611bc7565b61090e565b005b61031760048036038101906103129190611a46565b6109a6565b005b610333600480360381019061032e9190611a46565b610bf1565b6040516103409190611aa1565b60405180910390f35b610363600480360381019061035e9190611a46565b610d58565b6040516103709190611aa1565b60405180910390f35b610393600480360381019061038e9190611bc7565b610df8565b005b61039d610e90565b005b6103b960048036038101906103b49190611b39565b610f30565b005b6103d560048036038101906103d09190611bf4565b611007565b6040516103e29190611acb565b60405180910390f35b61040560048036038101906104009190611b39565b61110a565b005b610421600480360381019061041c9190611b39565b611201565b60405161042e9190611aa1565b60405180910390f35b6040518060400160405280600a81526020017f4c61796b61205075616e0000000000000000000000000000000000000000000081525081565b600061047a611221565b73ffffffffffffffffffffffffffffffffffffffff166104986108ac565b73ffffffffffffffffffffffffffffffffffffffff16146104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611c80565b60405180910390fd5b60006104f8611221565b9050610505818585611229565b600191505092915050565b60015481565b6000610520611221565b73ffffffffffffffffffffffffffffffffffffffff1661053e6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90611c80565b60405180910390fd5b600061059e611221565b90506105ab8582856113f2565b6105b685858561147e565b60019150509392505050565b6105ca611221565b73ffffffffffffffffffffffffffffffffffffffff166105e86108ac565b73ffffffffffffffffffffffffffffffffffffffff161461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063590611c80565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600081565b60006106a8611221565b73ffffffffffffffffffffffffffffffffffffffff166106c66108ac565b73ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071390611c80565b60405180910390fd5b6000610726611221565b90506107ba818585600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b59190611ccf565b611229565b600191505092915050565b60008060149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61082c611221565b73ffffffffffffffffffffffffffffffffffffffff1661084a6108ac565b73ffffffffffffffffffffffffffffffffffffffff16146108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089790611c80565b60405180910390fd5b6108aa60006116ea565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081565b610916611221565b73ffffffffffffffffffffffffffffffffffffffff166109346108ac565b73ffffffffffffffffffffffffffffffffffffffff161461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611c80565b60405180910390fd5b806001600082825461099c9190611d25565b9250508190555050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2990611da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890611e11565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90611e7d565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160016000828254610b809190611d25565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945384604051610be49190611acb565b60405180910390a3505050565b6000610bfb611221565b73ffffffffffffffffffffffffffffffffffffffff16610c196108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6690611c80565b60405180910390fd5b6000610c79611221565b90506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690611ee9565b60405180910390fd5b610d4c8286868403611229565b60019250505092915050565b6000610d62611221565b73ffffffffffffffffffffffffffffffffffffffff16610d806108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90611c80565b60405180910390fd5b6000610de0611221565b9050610ded81858561147e565b600191505092915050565b610e00611221565b73ffffffffffffffffffffffffffffffffffffffff16610e1e6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90611c80565b60405180910390fd5b8060016000828254610e869190611ccf565b9250508190555050565b610e98611221565b73ffffffffffffffffffffffffffffffffffffffff16610eb66108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390611c80565b60405180910390fd5b610f146107c5565b610f2557610f206117ae565b610f2e565b610f2d611851565b5b565b610f38611221565b73ffffffffffffffffffffffffffffffffffffffff16610f566108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa390611c80565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611011611221565b73ffffffffffffffffffffffffffffffffffffffff1661102f6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90611c80565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611112611221565b73ffffffffffffffffffffffffffffffffffffffff166111306108ac565b73ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90611c80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90611f7b565b60405180910390fd5b6111fe816116ea565b50565b60046020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90611fe7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612053565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e59190611acb565b60405180910390a3505050565b60006113fe8484611007565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611478578181101561146a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611461906120bf565b60405180910390fd5b6114778484848403611229565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e49061212b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612197565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90612203565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116789190611ccf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116dc9190611acb565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6117b66107c5565b156117f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ed9061226f565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861183a611221565b6040516118479190611bac565b60405180910390a1565b6118596107c5565b611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f906122db565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118db611221565b6040516118e89190611bac565b60405180910390a1565b600081519050919050565b600082825260208201905092915050565b60005b8381101561192c578082015181840152602081019050611911565b8381111561193b576000848401525b50505050565b6000601f19601f8301169050919050565b600061195d826118f2565b61196781856118fd565b935061197781856020860161190e565b61198081611941565b840191505092915050565b600060208201905081810360008301526119a58184611952565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119dd826119b2565b9050919050565b6119ed816119d2565b81146119f857600080fd5b50565b600081359050611a0a816119e4565b92915050565b6000819050919050565b611a2381611a10565b8114611a2e57600080fd5b50565b600081359050611a4081611a1a565b92915050565b60008060408385031215611a5d57611a5c6119ad565b5b6000611a6b858286016119fb565b9250506020611a7c85828601611a31565b9150509250929050565b60008115159050919050565b611a9b81611a86565b82525050565b6000602082019050611ab66000830184611a92565b92915050565b611ac581611a10565b82525050565b6000602082019050611ae06000830184611abc565b92915050565b600080600060608486031215611aff57611afe6119ad565b5b6000611b0d868287016119fb565b9350506020611b1e868287016119fb565b9250506040611b2f86828701611a31565b9150509250925092565b600060208284031215611b4f57611b4e6119ad565b5b6000611b5d848285016119fb565b91505092915050565b600060ff82169050919050565b611b7c81611b66565b82525050565b6000602082019050611b976000830184611b73565b92915050565b611ba6816119d2565b82525050565b6000602082019050611bc16000830184611b9d565b92915050565b600060208284031215611bdd57611bdc6119ad565b5b6000611beb84828501611a31565b91505092915050565b60008060408385031215611c0b57611c0a6119ad565b5b6000611c19858286016119fb565b9250506020611c2a858286016119fb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c6a6020836118fd565b9150611c7582611c34565b602082019050919050565b60006020820190508181036000830152611c9981611c5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611cda82611a10565b9150611ce583611a10565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d1a57611d19611ca0565b5b828201905092915050565b6000611d3082611a10565b9150611d3b83611a10565b925082821015611d4e57611d4d611ca0565b5b828203905092915050565b7f4f6e6c7920417574686f7269736564204163636f756e74730000000000000000600082015250565b6000611d8f6018836118fd565b9150611d9a82611d59565b602082019050919050565b60006020820190508181036000830152611dbe81611d82565b9050919050565b7f4275726e2066726f6d20746865207a65726f2061646472657373000000000000600082015250565b6000611dfb601a836118fd565b9150611e0682611dc5565b602082019050919050565b60006020820190508181036000830152611e2a81611dee565b9050919050565b7f4275726e20616d6f756e7420657863656564732062616c616e63650000000000600082015250565b6000611e67601b836118fd565b9150611e7282611e31565b602082019050919050565b60006020820190508181036000830152611e9681611e5a565b9050919050565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b6000611ed3601e836118fd565b9150611ede82611e9d565b602082019050919050565b60006020820190508181036000830152611f0281611ec6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f656026836118fd565b9150611f7082611f09565b604082019050919050565b60006020820190508181036000830152611f9481611f58565b9050919050565b7f417070726f76652066726f6d20746865207a65726f2061646472657373000000600082015250565b6000611fd1601d836118fd565b9150611fdc82611f9b565b602082019050919050565b6000602082019050818103600083015261200081611fc4565b9050919050565b7f417070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b600061203d601b836118fd565b915061204882612007565b602082019050919050565b6000602082019050818103600083015261206c81612030565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b60006120a96016836118fd565b91506120b482612073565b602082019050919050565b600060208201905081810360008301526120d88161209c565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000612115601e836118fd565b9150612120826120df565b602082019050919050565b6000602082019050818103600083015261214481612108565b9050919050565b7f5472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000612181601c836118fd565b915061218c8261214b565b602082019050919050565b600060208201905081810360008301526121b081612174565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b60006121ed601f836118fd565b91506121f8826121b7565b602082019050919050565b6000602082019050818103600083015261221c816121e0565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006122596010836118fd565b915061226482612223565b602082019050919050565b600060208201905081810360008301526122888161224c565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006122c56014836118fd565b91506122d08261228f565b602082019050919050565b600060208201905081810360008301526122f4816122b8565b905091905056fea2646970667358221220c196c67a4796473e83c97b5079fcfb4306f7e485275e5d2fafe7825acd77366964736f6c634300080f0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806395d89b41116100b8578063b921e1631161007c578063b921e16314610379578063c4ae316814610395578063cbfe52731461039f578063dd62ed3e146103bb578063f2fde38b146103eb578063f6b8edf11461040757610142565b806395d89b41146102c357806398e52f9a146102e15780639dc29fac146102fd578063a457c2d714610319578063a9059cbb1461034957610142565b8063313ce5671161010a578063313ce567146101ff578063395093511461021d5780635c975abb1461024d57806370a082311461026b578063715018a61461029b5780638da5cb5b146102a557610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b357806330c5eafb146101e3575b600080fd5b61014f610437565b60405161015c919061198b565b60405180910390f35b61017f600480360381019061017a9190611a46565b610470565b60405161018c9190611aa1565b60405180910390f35b61019d610510565b6040516101aa9190611acb565b60405180910390f35b6101cd60048036038101906101c89190611ae6565b610516565b6040516101da9190611aa1565b60405180910390f35b6101fd60048036038101906101f89190611b39565b6105c2565b005b610207610699565b6040516102149190611b82565b60405180910390f35b61023760048036038101906102329190611a46565b61069e565b6040516102449190611aa1565b60405180910390f35b6102556107c5565b6040516102629190611aa1565b60405180910390f35b61028560048036038101906102809190611b39565b6107db565b6040516102929190611acb565b60405180910390f35b6102a3610824565b005b6102ad6108ac565b6040516102ba9190611bac565b60405180910390f35b6102cb6108d5565b6040516102d8919061198b565b60405180910390f35b6102fb60048036038101906102f69190611bc7565b61090e565b005b61031760048036038101906103129190611a46565b6109a6565b005b610333600480360381019061032e9190611a46565b610bf1565b6040516103409190611aa1565b60405180910390f35b610363600480360381019061035e9190611a46565b610d58565b6040516103709190611aa1565b60405180910390f35b610393600480360381019061038e9190611bc7565b610df8565b005b61039d610e90565b005b6103b960048036038101906103b49190611b39565b610f30565b005b6103d560048036038101906103d09190611bf4565b611007565b6040516103e29190611acb565b60405180910390f35b61040560048036038101906104009190611b39565b61110a565b005b610421600480360381019061041c9190611b39565b611201565b60405161042e9190611aa1565b60405180910390f35b6040518060400160405280600a81526020017f4c61796b61205075616e0000000000000000000000000000000000000000000081525081565b600061047a611221565b73ffffffffffffffffffffffffffffffffffffffff166104986108ac565b73ffffffffffffffffffffffffffffffffffffffff16146104ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e590611c80565b60405180910390fd5b60006104f8611221565b9050610505818585611229565b600191505092915050565b60015481565b6000610520611221565b73ffffffffffffffffffffffffffffffffffffffff1661053e6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058b90611c80565b60405180910390fd5b600061059e611221565b90506105ab8582856113f2565b6105b685858561147e565b60019150509392505050565b6105ca611221565b73ffffffffffffffffffffffffffffffffffffffff166105e86108ac565b73ffffffffffffffffffffffffffffffffffffffff161461063e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063590611c80565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600081565b60006106a8611221565b73ffffffffffffffffffffffffffffffffffffffff166106c66108ac565b73ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071390611c80565b60405180910390fd5b6000610726611221565b90506107ba818585600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107b59190611ccf565b611229565b600191505092915050565b60008060149054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61082c611221565b73ffffffffffffffffffffffffffffffffffffffff1661084a6108ac565b73ffffffffffffffffffffffffffffffffffffffff16146108a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089790611c80565b60405180910390fd5b6108aa60006116ea565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081565b610916611221565b73ffffffffffffffffffffffffffffffffffffffff166109346108ac565b73ffffffffffffffffffffffffffffffffffffffff161461098a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098190611c80565b60405180910390fd5b806001600082825461099c9190611d25565b9250508190555050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2990611da5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890611e11565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90611e7d565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160016000828254610b809190611d25565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fbac40739b0d4ca32fa2d82fc91630465ba3eddd1598da6fca393b26fb63b945384604051610be49190611acb565b60405180910390a3505050565b6000610bfb611221565b73ffffffffffffffffffffffffffffffffffffffff16610c196108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6690611c80565b60405180910390fd5b6000610c79611221565b90506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690611ee9565b60405180910390fd5b610d4c8286868403611229565b60019250505092915050565b6000610d62611221565b73ffffffffffffffffffffffffffffffffffffffff16610d806108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90611c80565b60405180910390fd5b6000610de0611221565b9050610ded81858561147e565b600191505092915050565b610e00611221565b73ffffffffffffffffffffffffffffffffffffffff16610e1e6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6b90611c80565b60405180910390fd5b8060016000828254610e869190611ccf565b9250508190555050565b610e98611221565b73ffffffffffffffffffffffffffffffffffffffff16610eb66108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0390611c80565b60405180910390fd5b610f146107c5565b610f2557610f206117ae565b610f2e565b610f2d611851565b5b565b610f38611221565b73ffffffffffffffffffffffffffffffffffffffff16610f566108ac565b73ffffffffffffffffffffffffffffffffffffffff1614610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa390611c80565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611011611221565b73ffffffffffffffffffffffffffffffffffffffff1661102f6108ac565b73ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c90611c80565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611112611221565b73ffffffffffffffffffffffffffffffffffffffff166111306108ac565b73ffffffffffffffffffffffffffffffffffffffff1614611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117d90611c80565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90611f7b565b60405180910390fd5b6111fe816116ea565b50565b60046020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90611fe7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612053565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113e59190611acb565b60405180910390a3505050565b60006113fe8484611007565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611478578181101561146a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611461906120bf565b60405180910390fd5b6114778484848403611229565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e49061212b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612197565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90612203565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116789190611ccf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116dc9190611acb565b60405180910390a350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6117b66107c5565b156117f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ed9061226f565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861183a611221565b6040516118479190611bac565b60405180910390a1565b6118596107c5565b611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f906122db565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118db611221565b6040516118e89190611bac565b60405180910390a1565b600081519050919050565b600082825260208201905092915050565b60005b8381101561192c578082015181840152602081019050611911565b8381111561193b576000848401525b50505050565b6000601f19601f8301169050919050565b600061195d826118f2565b61196781856118fd565b935061197781856020860161190e565b61198081611941565b840191505092915050565b600060208201905081810360008301526119a58184611952565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119dd826119b2565b9050919050565b6119ed816119d2565b81146119f857600080fd5b50565b600081359050611a0a816119e4565b92915050565b6000819050919050565b611a2381611a10565b8114611a2e57600080fd5b50565b600081359050611a4081611a1a565b92915050565b60008060408385031215611a5d57611a5c6119ad565b5b6000611a6b858286016119fb565b9250506020611a7c85828601611a31565b9150509250929050565b60008115159050919050565b611a9b81611a86565b82525050565b6000602082019050611ab66000830184611a92565b92915050565b611ac581611a10565b82525050565b6000602082019050611ae06000830184611abc565b92915050565b600080600060608486031215611aff57611afe6119ad565b5b6000611b0d868287016119fb565b9350506020611b1e868287016119fb565b9250506040611b2f86828701611a31565b9150509250925092565b600060208284031215611b4f57611b4e6119ad565b5b6000611b5d848285016119fb565b91505092915050565b600060ff82169050919050565b611b7c81611b66565b82525050565b6000602082019050611b976000830184611b73565b92915050565b611ba6816119d2565b82525050565b6000602082019050611bc16000830184611b9d565b92915050565b600060208284031215611bdd57611bdc6119ad565b5b6000611beb84828501611a31565b91505092915050565b60008060408385031215611c0b57611c0a6119ad565b5b6000611c19858286016119fb565b9250506020611c2a858286016119fb565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c6a6020836118fd565b9150611c7582611c34565b602082019050919050565b60006020820190508181036000830152611c9981611c5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611cda82611a10565b9150611ce583611a10565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d1a57611d19611ca0565b5b828201905092915050565b6000611d3082611a10565b9150611d3b83611a10565b925082821015611d4e57611d4d611ca0565b5b828203905092915050565b7f4f6e6c7920417574686f7269736564204163636f756e74730000000000000000600082015250565b6000611d8f6018836118fd565b9150611d9a82611d59565b602082019050919050565b60006020820190508181036000830152611dbe81611d82565b9050919050565b7f4275726e2066726f6d20746865207a65726f2061646472657373000000000000600082015250565b6000611dfb601a836118fd565b9150611e0682611dc5565b602082019050919050565b60006020820190508181036000830152611e2a81611dee565b9050919050565b7f4275726e20616d6f756e7420657863656564732062616c616e63650000000000600082015250565b6000611e67601b836118fd565b9150611e7282611e31565b602082019050919050565b60006020820190508181036000830152611e9681611e5a565b9050919050565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b6000611ed3601e836118fd565b9150611ede82611e9d565b602082019050919050565b60006020820190508181036000830152611f0281611ec6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611f656026836118fd565b9150611f7082611f09565b604082019050919050565b60006020820190508181036000830152611f9481611f58565b9050919050565b7f417070726f76652066726f6d20746865207a65726f2061646472657373000000600082015250565b6000611fd1601d836118fd565b9150611fdc82611f9b565b602082019050919050565b6000602082019050818103600083015261200081611fc4565b9050919050565b7f417070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b600061203d601b836118fd565b915061204882612007565b602082019050919050565b6000602082019050818103600083015261206c81612030565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b60006120a96016836118fd565b91506120b482612073565b602082019050919050565b600060208201905081810360008301526120d88161209c565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b6000612115601e836118fd565b9150612120826120df565b602082019050919050565b6000602082019050818103600083015261214481612108565b9050919050565b7f5472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b6000612181601c836118fd565b915061218c8261214b565b602082019050919050565b600060208201905081810360008301526121b081612174565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b60006121ed601f836118fd565b91506121f8826121b7565b602082019050919050565b6000602082019050818103600083015261221c816121e0565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006122596010836118fd565b915061226482612223565b602082019050919050565b600060208201905081810360008301526122888161224c565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006122c56014836118fd565b91506122d08261228f565b602082019050919050565b600060208201905081810360008301526122f4816122b8565b905091905056fea2646970667358221220c196c67a4796473e83c97b5079fcfb4306f7e485275e5d2fafe7825acd77366964736f6c634300080f0033
Deployed Bytecode Sourcemap
9554:9036:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9660:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12814:251;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9833:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13534:303;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11822:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9792:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14246:332;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2025:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10775:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4924:103;;;:::i;:::-;;4273:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9729:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10605:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16919:453;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15081:510;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12159:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10401:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11022:93;;;:::i;:::-;;11558:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12465:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5182:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10004:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9660:42;;;;;;;;;;;;;;;;;;;:::o;12814:251::-;12935:4;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12957:13:::1;12973:12;:10;:12::i;:::-;12957:28;;12996:39;13012:5;13019:7;13028:6;12996:15;:39::i;:::-;13053:4;13046:11;;;12814:251:::0;;;;:::o;9833:38::-;;;;:::o;13534:303::-;13667:4;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13684:15:::1;13702:12;:10;:12::i;:::-;13684:30;;13725:37;13740:4;13746:7;13755:6;13725:14;:37::i;:::-;13773:34;13790:4;13796:2;13800:6;13773:16;:34::i;:::-;13825:4;13818:11;;;13534:303:::0;;;;;:::o;11822:123::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11932:5:::1;11902:18;:27;11921:7;11902:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11822:123:::0;:::o;9792:34::-;9825:1;9792:34;:::o;14246:332::-;14365:4;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14387:13:::1;14403:12;:10;:12::i;:::-;14387:28;;14426:122;14456:5;14476:7;14527:10;14498;:17;14509:5;14498:17;;;;;;;;;;;;;;;:26;14516:7;14498:26;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;14426:15;:122::i;:::-;14566:4;14559:11;;;14246:332:::0;;;;:::o;2025:86::-;2072:4;2096:7;;;;;;;;;;;2089:14;;2025:86;:::o;10775:118::-;10841:7;10868:8;:17;10877:7;10868:17;;;;;;;;;;;;;;;;10861:24;;10775:118;;;:::o;4924:103::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4989:30:::1;5016:1;4989:18;:30::i;:::-;4924:103::o:0;4273:87::-;4319:7;4346:6;;;;;;;;;;;4339:13;;4273:87;:::o;9729:36::-;;;;;;;;;;;;;;;;;;;:::o;10605:99::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10690:6:::1;10675:11;;:21;;;;;;;:::i;:::-;;;;;;;;10605:99:::0;:::o;16919:453::-;11314:18;:30;11333:10;11314:30;;;;;;;;;;;;;;;;;;;;;;;;;11292:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;17028:1:::1;17009:21;;:7;:21;;::::0;17001:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17074:22;17099:8;:17;17108:7;17099:17;;;;;;;;;;;;;;;;17074:42;;17153:6;17135:14;:24;;17127:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;17264:6;17247:14;:23;17227:8;:17;17236:7;17227:17;;;;;;;;;;;;;;;:43;;;;17307:6;17292:11;;:21;;;;;;;:::i;:::-;;;;;;;;17348:7;17331:33;;17336:10;17331:33;;;17357:6;17331:33;;;;;;:::i;:::-;;;;;;;;16990:382;16919:453:::0;;:::o;15081:510::-;15205:4;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15227:13:::1;15243:12;:10;:12::i;:::-;15227:28;;15266:24;15293:10;:17;15304:5;15293:17;;;;;;;;;;;;;;;:26;15311:7;15293:26;;;;;;;;;;;;;;;;15266:53;;15372:15;15352:16;:35;;15330:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;15481:67;15497:5;15504:7;15532:15;15513:16;:34;15481:15;:67::i;:::-;15579:4;15572:11;;;;15081:510:::0;;;;:::o;12159:243::-;12276:4;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12298:13:::1;12314:12;:10;:12::i;:::-;12298:28;;12337:35;12354:5;12361:2;12365:6;12337:16;:35::i;:::-;12390:4;12383:11;;;12159:243:::0;;;;:::o;10401:99::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10486:6:::1;10471:11;;:21;;;;;;;:::i;:::-;;;;;;;;10401:99:::0;:::o;11022:93::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11075:8:::1;:6;:8::i;:::-;:32;;11099:8;:6;:8::i;:::-;11075:32;;;11086:10;:8;:10::i;:::-;11075:32;11022:93::o:0;11558:119::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11665:4:::1;11635:18;:27;11654:7;11635:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11558:119:::0;:::o;12465:202::-;12601:7;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12633:10:::1;:17;12644:5;12633:17;;;;;;;;;;;;;;;:26;12651:7;12633:26;;;;;;;;;;;;;;;;12626:33;;12465:202:::0;;;;:::o;5182:201::-;4504:12;:10;:12::i;:::-;4493:23;;:7;:5;:7::i;:::-;:23;;;4485:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5291:1:::1;5271:22;;:8;:22;;::::0;5263:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5347:28;5366:8;5347:18;:28::i;:::-;5182:201:::0;:::o;10004:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;679:98::-;732:7;759:10;752:17;;679:98;:::o;17543:364::-;17695:1;17678:19;;:5;:19;;;17670:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17769:1;17750:21;;:7;:21;;;17742:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17845:6;17816:10;:17;17827:5;17816:17;;;;;;;;;;;;;;;:26;17834:7;17816:26;;;;;;;;;;;;;;;:35;;;;17883:7;17867:32;;17876:5;17867:32;;;17892:6;17867:32;;;;;;:::i;:::-;;;;;;;;17543:364;;;:::o;18094:493::-;18220:24;18247:25;18257:5;18264:7;18247:9;:25::i;:::-;18220:52;;18307:17;18287:16;:37;18283:297;;18387:6;18367:16;:26;;18341:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;18495:58;18511:5;18518:7;18546:6;18527:16;:25;18495:15;:58::i;:::-;18283:297;18209:378;18094:493;;;:::o;15764:582::-;15910:1;15894:18;;:4;:18;;;15886:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;15980:1;15966:16;;:2;:16;;;15958:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;16028:19;16050:8;:14;16059:4;16050:14;;;;;;;;;;;;;;;;16028:36;;16112:6;16097:11;:21;;16075:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16244:6;16230:11;:20;16213:8;:14;16222:4;16213:14;;;;;;;;;;;;;;;:37;;;;16288:6;16272:8;:12;16281:2;16272:12;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;16327:2;16312:26;;16321:4;16312:26;;;16331:6;16312:26;;;;;;:::i;:::-;;;;;;;;15875:471;15764:582;;;:::o;5543:191::-;5617:16;5636:6;;;;;;;;;;;5617:25;;5662:8;5653:6;;:17;;;;;;;;;;;;;;;;;;5717:8;5686:40;;5707:8;5686:40;;;;;;;;;;;;5606:128;5543:191;:::o;2825:118::-;2351:8;:6;:8::i;:::-;2350:9;2342:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2895:4:::1;2885:7;;:14;;;;;;;;;;;;;;;;;;2915:20;2922:12;:10;:12::i;:::-;2915:20;;;;;;:::i;:::-;;;;;;;;2825:118::o:0;3084:120::-;2628:8;:6;:8::i;:::-;2620:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;3153:5:::1;3143:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;3174:22;3183:12;:10;:12::i;:::-;3174:22;;;;;;:::i;:::-;;;;;;;;3084:120::o:0;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:182::-;6543:34;6539:1;6531:6;6527:14;6520:58;6403:182;:::o;6591:366::-;6733:3;6754:67;6818:2;6813:3;6754:67;:::i;:::-;6747:74;;6830:93;6919:3;6830:93;:::i;:::-;6948:2;6943:3;6939:12;6932:19;;6591:366;;;:::o;6963:419::-;7129:4;7167:2;7156:9;7152:18;7144:26;;7216:9;7210:4;7206:20;7202:1;7191:9;7187:17;7180:47;7244:131;7370:4;7244:131;:::i;:::-;7236:139;;6963:419;;;:::o;7388:180::-;7436:77;7433:1;7426:88;7533:4;7530:1;7523:15;7557:4;7554:1;7547:15;7574:305;7614:3;7633:20;7651:1;7633:20;:::i;:::-;7628:25;;7667:20;7685:1;7667:20;:::i;:::-;7662:25;;7821:1;7753:66;7749:74;7746:1;7743:81;7740:107;;;7827:18;;:::i;:::-;7740:107;7871:1;7868;7864:9;7857:16;;7574:305;;;;:::o;7885:191::-;7925:4;7945:20;7963:1;7945:20;:::i;:::-;7940:25;;7979:20;7997:1;7979:20;:::i;:::-;7974:25;;8018:1;8015;8012:8;8009:34;;;8023:18;;:::i;:::-;8009:34;8068:1;8065;8061:9;8053:17;;7885:191;;;;:::o;8082:174::-;8222:26;8218:1;8210:6;8206:14;8199:50;8082:174;:::o;8262:366::-;8404:3;8425:67;8489:2;8484:3;8425:67;:::i;:::-;8418:74;;8501:93;8590:3;8501:93;:::i;:::-;8619:2;8614:3;8610:12;8603:19;;8262:366;;;:::o;8634:419::-;8800:4;8838:2;8827:9;8823:18;8815:26;;8887:9;8881:4;8877:20;8873:1;8862:9;8858:17;8851:47;8915:131;9041:4;8915:131;:::i;:::-;8907:139;;8634:419;;;:::o;9059:176::-;9199:28;9195:1;9187:6;9183:14;9176:52;9059:176;:::o;9241:366::-;9383:3;9404:67;9468:2;9463:3;9404:67;:::i;:::-;9397:74;;9480:93;9569:3;9480:93;:::i;:::-;9598:2;9593:3;9589:12;9582:19;;9241:366;;;:::o;9613:419::-;9779:4;9817:2;9806:9;9802:18;9794:26;;9866:9;9860:4;9856:20;9852:1;9841:9;9837:17;9830:47;9894:131;10020:4;9894:131;:::i;:::-;9886:139;;9613:419;;;:::o;10038:177::-;10178:29;10174:1;10166:6;10162:14;10155:53;10038:177;:::o;10221:366::-;10363:3;10384:67;10448:2;10443:3;10384:67;:::i;:::-;10377:74;;10460:93;10549:3;10460:93;:::i;:::-;10578:2;10573:3;10569:12;10562:19;;10221:366;;;:::o;10593:419::-;10759:4;10797:2;10786:9;10782:18;10774:26;;10846:9;10840:4;10836:20;10832:1;10821:9;10817:17;10810:47;10874:131;11000:4;10874:131;:::i;:::-;10866:139;;10593:419;;;:::o;11018:180::-;11158:32;11154:1;11146:6;11142:14;11135:56;11018:180;:::o;11204:366::-;11346:3;11367:67;11431:2;11426:3;11367:67;:::i;:::-;11360:74;;11443:93;11532:3;11443:93;:::i;:::-;11561:2;11556:3;11552:12;11545:19;;11204:366;;;:::o;11576:419::-;11742:4;11780:2;11769:9;11765:18;11757:26;;11829:9;11823:4;11819:20;11815:1;11804:9;11800:17;11793:47;11857:131;11983:4;11857:131;:::i;:::-;11849:139;;11576:419;;;:::o;12001:225::-;12141:34;12137:1;12129:6;12125:14;12118:58;12210:8;12205:2;12197:6;12193:15;12186:33;12001:225;:::o;12232:366::-;12374:3;12395:67;12459:2;12454:3;12395:67;:::i;:::-;12388:74;;12471:93;12560:3;12471:93;:::i;:::-;12589:2;12584:3;12580:12;12573:19;;12232:366;;;:::o;12604:419::-;12770:4;12808:2;12797:9;12793:18;12785:26;;12857:9;12851:4;12847:20;12843:1;12832:9;12828:17;12821:47;12885:131;13011:4;12885:131;:::i;:::-;12877:139;;12604:419;;;:::o;13029:179::-;13169:31;13165:1;13157:6;13153:14;13146:55;13029:179;:::o;13214:366::-;13356:3;13377:67;13441:2;13436:3;13377:67;:::i;:::-;13370:74;;13453:93;13542:3;13453:93;:::i;:::-;13571:2;13566:3;13562:12;13555:19;;13214:366;;;:::o;13586:419::-;13752:4;13790:2;13779:9;13775:18;13767:26;;13839:9;13833:4;13829:20;13825:1;13814:9;13810:17;13803:47;13867:131;13993:4;13867:131;:::i;:::-;13859:139;;13586:419;;;:::o;14011:177::-;14151:29;14147:1;14139:6;14135:14;14128:53;14011:177;:::o;14194:366::-;14336:3;14357:67;14421:2;14416:3;14357:67;:::i;:::-;14350:74;;14433:93;14522:3;14433:93;:::i;:::-;14551:2;14546:3;14542:12;14535:19;;14194:366;;;:::o;14566:419::-;14732:4;14770:2;14759:9;14755:18;14747:26;;14819:9;14813:4;14809:20;14805:1;14794:9;14790:17;14783:47;14847:131;14973:4;14847:131;:::i;:::-;14839:139;;14566:419;;;:::o;14991:172::-;15131:24;15127:1;15119:6;15115:14;15108:48;14991:172;:::o;15169:366::-;15311:3;15332:67;15396:2;15391:3;15332:67;:::i;:::-;15325:74;;15408:93;15497:3;15408:93;:::i;:::-;15526:2;15521:3;15517:12;15510:19;;15169:366;;;:::o;15541:419::-;15707:4;15745:2;15734:9;15730:18;15722:26;;15794:9;15788:4;15784:20;15780:1;15769:9;15765:17;15758:47;15822:131;15948:4;15822:131;:::i;:::-;15814:139;;15541:419;;;:::o;15966:180::-;16106:32;16102:1;16094:6;16090:14;16083:56;15966:180;:::o;16152:366::-;16294:3;16315:67;16379:2;16374:3;16315:67;:::i;:::-;16308:74;;16391:93;16480:3;16391:93;:::i;:::-;16509:2;16504:3;16500:12;16493:19;;16152:366;;;:::o;16524:419::-;16690:4;16728:2;16717:9;16713:18;16705:26;;16777:9;16771:4;16767:20;16763:1;16752:9;16748:17;16741:47;16805:131;16931:4;16805:131;:::i;:::-;16797:139;;16524:419;;;:::o;16949:178::-;17089:30;17085:1;17077:6;17073:14;17066:54;16949:178;:::o;17133:366::-;17275:3;17296:67;17360:2;17355:3;17296:67;:::i;:::-;17289:74;;17372:93;17461:3;17372:93;:::i;:::-;17490:2;17485:3;17481:12;17474:19;;17133:366;;;:::o;17505:419::-;17671:4;17709:2;17698:9;17694:18;17686:26;;17758:9;17752:4;17748:20;17744:1;17733:9;17729:17;17722:47;17786:131;17912:4;17786:131;:::i;:::-;17778:139;;17505:419;;;:::o;17930:181::-;18070:33;18066:1;18058:6;18054:14;18047:57;17930:181;:::o;18117:366::-;18259:3;18280:67;18344:2;18339:3;18280:67;:::i;:::-;18273:74;;18356:93;18445:3;18356:93;:::i;:::-;18474:2;18469:3;18465:12;18458:19;;18117:366;;;:::o;18489:419::-;18655:4;18693:2;18682:9;18678:18;18670:26;;18742:9;18736:4;18732:20;18728:1;18717:9;18713:17;18706:47;18770:131;18896:4;18770:131;:::i;:::-;18762:139;;18489:419;;;:::o;18914:166::-;19054:18;19050:1;19042:6;19038:14;19031:42;18914:166;:::o;19086:366::-;19228:3;19249:67;19313:2;19308:3;19249:67;:::i;:::-;19242:74;;19325:93;19414:3;19325:93;:::i;:::-;19443:2;19438:3;19434:12;19427:19;;19086:366;;;:::o;19458:419::-;19624:4;19662:2;19651:9;19647:18;19639:26;;19711:9;19705:4;19701:20;19697:1;19686:9;19682:17;19675:47;19739:131;19865:4;19739:131;:::i;:::-;19731:139;;19458:419;;;:::o;19883:170::-;20023:22;20019:1;20011:6;20007:14;20000:46;19883:170;:::o;20059:366::-;20201:3;20222:67;20286:2;20281:3;20222:67;:::i;:::-;20215:74;;20298:93;20387:3;20298:93;:::i;:::-;20416:2;20411:3;20407:12;20400:19;;20059:366;;;:::o;20431:419::-;20597:4;20635:2;20624:9;20620:18;20612:26;;20684:9;20678:4;20674:20;20670:1;20659:9;20655:17;20648:47;20712:131;20838:4;20712:131;:::i;:::-;20704:139;;20431:419;;;:::o
Swarm Source
ipfs://c196c67a4796473e83c97b5079fcfb4306f7e485275e5d2fafe7825acd773669
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.