ETH Price: $3,288.99 (+1.28%)
Gas: 1 Gwei

Token

The Envelope (ENVELOPE)
 

Overview

Max Total Supply

1,000,000,000 ENVELOPE

Holders

82

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Envelope

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-04
*/

/*

    https://www.the-envelope.org/ ⠀
    ✉⠀
⠀   
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Envelope is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "The Envelope";
    string constant _symbol = "ENVELOPE";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = 1_000_000_000 * (10 ** _decimals);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 marketingFee = 2;
    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 50;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(marketingFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToSwap = contractTokenBalance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

          router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
	
	 uint256 amountETHMarketing = address(this).balance;

	(bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac91906200081e565b633b9aca00620000bd91906200086f565b6003556009600a620000d091906200081e565b633b9aca00620000e191906200086f565b600455600260095533600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506032612710600354620001599190620008ff565b6200016591906200086f565b600d553480156200017557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028457600080fd5b505afa15801562000299573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bf9190620009a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034357600080fd5b505afa15801562000358573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037e9190620009a1565b306040518363ffffffff1660e01b81526004016200039e929190620009e4565b602060405180830381600087803b158015620003b957600080fd5b505af1158015620003ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f49190620009a1565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000675919062000a22565b60405180910390a35062000a3f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200071257808604811115620006ea57620006e962000684565b5b6001851615620006fa5780820291505b80810290506200070a85620006b3565b9450620006ca565b94509492505050565b6000826200072d576001905062000800565b816200073d576000905062000800565b8160018114620007565760028114620007615762000797565b600191505062000800565b60ff84111562000776576200077562000684565b5b8360020a91508482111562000790576200078f62000684565b5b5062000800565b5060208310610133831016604e8410600b8410161715620007d15782820a905083811115620007cb57620007ca62000684565b5b62000800565b620007e08484846001620006c0565b92509050818404811115620007fa57620007f962000684565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200082b8262000807565b9150620008388362000811565b9250620008677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200071b565b905092915050565b60006200087c8262000807565b9150620008898362000807565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008c557620008c462000684565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200090c8262000807565b9150620009198362000807565b9250826200092c576200092b620008d0565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000969826200093c565b9050919050565b6200097b816200095c565b81146200098757600080fd5b50565b6000815190506200099b8162000970565b92915050565b600060208284031215620009ba57620009b962000937565b5b6000620009ca848285016200098a565b91505092915050565b620009de816200095c565b82525050565b6000604082019050620009fb6000830185620009d3565b62000a0a6020830184620009d3565b9392505050565b62000a1c8162000807565b82525050565b600060208201905062000a39600083018462000a11565b92915050565b61220d8062000a4f6000396000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063a8aa1b3111610064578063a8aa1b311461037c578063a9059cbb146103a7578063dd62ed3e146103e4578063e96fada214610421578063f887ea401461044c57610114565b806370a08231146102d2578063715018a61461030f578063893d20e81461032657806395d89b411461035157610114565b806323b872dd116100dc57806323b872dd146101d75780632f54bf6e14610214578063313ce567146102515780636c0a24eb1461027c5780636ddd1713146102a757610114565b80630445b6671461011957806306fdde0314610144578063095ea7b31461016f57806318160ddd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610477565b60405161013b919061184d565b60405180910390f35b34801561015057600080fd5b5061015961047d565b6040516101669190611901565b60405180910390f35b34801561017b57600080fd5b50610196600480360381019061019191906119b2565b6104ba565b6040516101a39190611a0d565b60405180910390f35b3480156101b857600080fd5b506101c16105ac565b6040516101ce919061184d565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611a28565b6105b6565b60405161020b9190611a0d565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190611a7b565b6107b6565b6040516102489190611a0d565b60405180910390f35b34801561025d57600080fd5b5061026661080f565b6040516102739190611ac4565b60405180910390f35b34801561028857600080fd5b50610291610818565b60405161029e919061184d565b60405180910390f35b3480156102b357600080fd5b506102bc61081e565b6040516102c99190611a0d565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611a7b565b610831565b604051610306919061184d565b60405180910390f35b34801561031b57600080fd5b5061032461087a565b005b34801561033257600080fd5b5061033b61093d565b6040516103489190611aee565b60405180910390f35b34801561035d57600080fd5b50610366610966565b6040516103739190611901565b60405180910390f35b34801561038857600080fd5b506103916109a3565b60405161039e9190611aee565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906119b2565b6109c9565b6040516103db9190611a0d565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190611b09565b6109de565b604051610418919061184d565b60405180910390f35b34801561042d57600080fd5b50610436610a65565b6040516104439190611aee565b60405180910390f35b34801561045857600080fd5b50610461610a8b565b60405161046e9190611ba8565b60405180910390f35b600d5481565b60606040518060400160405280600c81526020017f54686520456e76656c6f70650000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161059a919061184d565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107a257610721826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab19092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6107ad848484610b15565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610883336107b6565b6108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b990611c0f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516109339190611aee565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f454e56454c4f5045000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109d6338484610b15565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af09190611901565b60405180910390fd5b5060008385610b089190611c5e565b9050809150509392505050565b6000600e60009054906101000a900460ff1615610b3e57610b37848484610ede565b9050610ed7565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610bea5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610cd357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610c93575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c909190611c92565b11155b610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990611d5a565b60405180910390fd5b5b610cdb6110b1565b15610ce957610ce8611188565b5b610d72826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610dc0856114ca565b610dca5782610dd5565b610dd48584611521565b5b9050610e2981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166490919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ec9919061184d565b60405180910390a360019150505b9392505050565b6000610f69826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ffe82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161109e919061184d565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561111e5750600e60009054906101000a900460ff16155b80156111365750600c60149054906101000a900460ff165b80156111835750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156111cc576111cb611d7a565b5b6040519080825280602002602001820160405280156111fa5781602001602082028036833780820191505090505b509050308160008151811061121257611211611da9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b457600080fd5b505afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190611ded565b81600181518110611300576112ff611da9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161139e959493929190611f13565b600060405180830381600087803b1580156113b857600080fd5b505af11580156113cc573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161142190611f9e565b600060405180830381858888f193505050503d806000811461145f576040519150601f19603f3d011682016040523d82523d6000602084013e611464565b606091505b50509050806114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f90611fff565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061154c606461153e600954866116c290919063ffffffff16565b61173d90919063ffffffff16565b90506115a081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611640919061184d565b60405180910390a361165b818461178790919063ffffffff16565b91505092915050565b60008082846116739190611c92565b9050838110156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af9061206b565b60405180910390fd5b8091505092915050565b6000808314156116d55760009050611737565b600082846116e3919061208b565b90508284826116f29190612114565b14611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906121b7565b60405180910390fd5b809150505b92915050565b600061177f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d1565b905092915050565b60006117c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab1565b905092915050565b60008083118290611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f9190611901565b60405180910390fd5b50600083856118279190612114565b9050809150509392505050565b6000819050919050565b61184781611834565b82525050565b6000602082019050611862600083018461183e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118a2578082015181840152602081019050611887565b838111156118b1576000848401525b50505050565b6000601f19601f8301169050919050565b60006118d382611868565b6118dd8185611873565b93506118ed818560208601611884565b6118f6816118b7565b840191505092915050565b6000602082019050818103600083015261191b81846118c8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061195382611928565b9050919050565b61196381611948565b811461196e57600080fd5b50565b6000813590506119808161195a565b92915050565b61198f81611834565b811461199a57600080fd5b50565b6000813590506119ac81611986565b92915050565b600080604083850312156119c9576119c8611923565b5b60006119d785828601611971565b92505060206119e88582860161199d565b9150509250929050565b60008115159050919050565b611a07816119f2565b82525050565b6000602082019050611a2260008301846119fe565b92915050565b600080600060608486031215611a4157611a40611923565b5b6000611a4f86828701611971565b9350506020611a6086828701611971565b9250506040611a718682870161199d565b9150509250925092565b600060208284031215611a9157611a90611923565b5b6000611a9f84828501611971565b91505092915050565b600060ff82169050919050565b611abe81611aa8565b82525050565b6000602082019050611ad96000830184611ab5565b92915050565b611ae881611948565b82525050565b6000602082019050611b036000830184611adf565b92915050565b60008060408385031215611b2057611b1f611923565b5b6000611b2e85828601611971565b9250506020611b3f85828601611971565b9150509250929050565b6000819050919050565b6000611b6e611b69611b6484611928565b611b49565b611928565b9050919050565b6000611b8082611b53565b9050919050565b6000611b9282611b75565b9050919050565b611ba281611b87565b82525050565b6000602082019050611bbd6000830184611b99565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000611bf9600683611873565b9150611c0482611bc3565b602082019050919050565b60006020820190508181036000830152611c2881611bec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c6982611834565b9150611c7483611834565b925082821015611c8757611c86611c2f565b5b828203905092915050565b6000611c9d82611834565b9150611ca883611834565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cdd57611cdc611c2f565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000611d44602583611873565b9150611d4f82611ce8565b604082019050919050565b60006020820190508181036000830152611d7381611d37565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050611de78161195a565b92915050565b600060208284031215611e0357611e02611923565b5b6000611e1184828501611dd8565b91505092915050565b6000819050919050565b6000611e3f611e3a611e3584611e1a565b611b49565b611834565b9050919050565b611e4f81611e24565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611e8a81611948565b82525050565b6000611e9c8383611e81565b60208301905092915050565b6000602082019050919050565b6000611ec082611e55565b611eca8185611e60565b9350611ed583611e71565b8060005b83811015611f06578151611eed8882611e90565b9750611ef883611ea8565b925050600181019050611ed9565b5085935050505092915050565b600060a082019050611f28600083018861183e565b611f356020830187611e46565b8181036040830152611f478186611eb5565b9050611f566060830185611adf565b611f63608083018461183e565b9695505050505050565b600081905092915050565b50565b6000611f88600083611f6d565b9150611f9382611f78565b600082019050919050565b6000611fa982611f7b565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000611fe9601e83611873565b9150611ff482611fb3565b602082019050919050565b6000602082019050818103600083015261201881611fdc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612055601b83611873565b91506120608261201f565b602082019050919050565b6000602082019050818103600083015261208481612048565b9050919050565b600061209682611834565b91506120a183611834565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120da576120d9611c2f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061211f82611834565b915061212a83611834565b92508261213a576121396120e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006121a1602183611873565b91506121ac82612145565b604082019050919050565b600060208201905081810360008301526121d081612194565b905091905056fea2646970667358221220e5cf64ceceda725d096b2f308a7005771f2225a2203dbb247c66414b7c5e831f64736f6c63430008080033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a0823111610095578063a8aa1b3111610064578063a8aa1b311461037c578063a9059cbb146103a7578063dd62ed3e146103e4578063e96fada214610421578063f887ea401461044c57610114565b806370a08231146102d2578063715018a61461030f578063893d20e81461032657806395d89b411461035157610114565b806323b872dd116100dc57806323b872dd146101d75780632f54bf6e14610214578063313ce567146102515780636c0a24eb1461027c5780636ddd1713146102a757610114565b80630445b6671461011957806306fdde0314610144578063095ea7b31461016f57806318160ddd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610477565b60405161013b919061184d565b60405180910390f35b34801561015057600080fd5b5061015961047d565b6040516101669190611901565b60405180910390f35b34801561017b57600080fd5b50610196600480360381019061019191906119b2565b6104ba565b6040516101a39190611a0d565b60405180910390f35b3480156101b857600080fd5b506101c16105ac565b6040516101ce919061184d565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190611a28565b6105b6565b60405161020b9190611a0d565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190611a7b565b6107b6565b6040516102489190611a0d565b60405180910390f35b34801561025d57600080fd5b5061026661080f565b6040516102739190611ac4565b60405180910390f35b34801561028857600080fd5b50610291610818565b60405161029e919061184d565b60405180910390f35b3480156102b357600080fd5b506102bc61081e565b6040516102c99190611a0d565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f49190611a7b565b610831565b604051610306919061184d565b60405180910390f35b34801561031b57600080fd5b5061032461087a565b005b34801561033257600080fd5b5061033b61093d565b6040516103489190611aee565b60405180910390f35b34801561035d57600080fd5b50610366610966565b6040516103739190611901565b60405180910390f35b34801561038857600080fd5b506103916109a3565b60405161039e9190611aee565b60405180910390f35b3480156103b357600080fd5b506103ce60048036038101906103c991906119b2565b6109c9565b6040516103db9190611a0d565b60405180910390f35b3480156103f057600080fd5b5061040b60048036038101906104069190611b09565b6109de565b604051610418919061184d565b60405180910390f35b34801561042d57600080fd5b50610436610a65565b6040516104439190611aee565b60405180910390f35b34801561045857600080fd5b50610461610a8b565b60405161046e9190611ba8565b60405180910390f35b600d5481565b60606040518060400160405280600c81526020017f54686520456e76656c6f70650000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161059a919061184d565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107a257610721826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab19092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6107ad848484610b15565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610883336107b6565b6108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b990611c0f565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516109339190611aee565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f454e56454c4f5045000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109d6338484610b15565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610af9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af09190611901565b60405180910390fd5b5060008385610b089190611c5e565b9050809150509392505050565b6000600e60009054906101000a900460ff1615610b3e57610b37848484610ede565b9050610ed7565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610bea5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610cd357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610c93575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c909190611c92565b11155b610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990611d5a565b60405180910390fd5b5b610cdb6110b1565b15610ce957610ce8611188565b5b610d72826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610dc0856114ca565b610dca5782610dd5565b610dd48584611521565b5b9050610e2981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166490919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ec9919061184d565b60405180910390a360019150505b9392505050565b6000610f69826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ab19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ffe82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161109e919061184d565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561111e5750600e60009054906101000a900460ff16155b80156111365750600c60149054906101000a900460ff165b80156111835750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156111cc576111cb611d7a565b5b6040519080825280602002602001820160405280156111fa5781602001602082028036833780820191505090505b509050308160008151811061121257611211611da9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b457600080fd5b505afa1580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190611ded565b81600181518110611300576112ff611da9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161139e959493929190611f13565b600060405180830381600087803b1580156113b857600080fd5b505af11580156113cc573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161142190611f9e565b600060405180830381858888f193505050503d806000811461145f576040519150601f19603f3d011682016040523d82523d6000602084013e611464565b606091505b50509050806114a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149f90611fff565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b60008061154c606461153e600954866116c290919063ffffffff16565b61173d90919063ffffffff16565b90506115a081600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461166490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611640919061184d565b60405180910390a361165b818461178790919063ffffffff16565b91505092915050565b60008082846116739190611c92565b9050838110156116b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116af9061206b565b60405180910390fd5b8091505092915050565b6000808314156116d55760009050611737565b600082846116e3919061208b565b90508284826116f29190612114565b14611732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611729906121b7565b60405180910390fd5b809150505b92915050565b600061177f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d1565b905092915050565b60006117c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ab1565b905092915050565b60008083118290611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f9190611901565b60405180910390fd5b50600083856118279190612114565b9050809150509392505050565b6000819050919050565b61184781611834565b82525050565b6000602082019050611862600083018461183e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118a2578082015181840152602081019050611887565b838111156118b1576000848401525b50505050565b6000601f19601f8301169050919050565b60006118d382611868565b6118dd8185611873565b93506118ed818560208601611884565b6118f6816118b7565b840191505092915050565b6000602082019050818103600083015261191b81846118c8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061195382611928565b9050919050565b61196381611948565b811461196e57600080fd5b50565b6000813590506119808161195a565b92915050565b61198f81611834565b811461199a57600080fd5b50565b6000813590506119ac81611986565b92915050565b600080604083850312156119c9576119c8611923565b5b60006119d785828601611971565b92505060206119e88582860161199d565b9150509250929050565b60008115159050919050565b611a07816119f2565b82525050565b6000602082019050611a2260008301846119fe565b92915050565b600080600060608486031215611a4157611a40611923565b5b6000611a4f86828701611971565b9350506020611a6086828701611971565b9250506040611a718682870161199d565b9150509250925092565b600060208284031215611a9157611a90611923565b5b6000611a9f84828501611971565b91505092915050565b600060ff82169050919050565b611abe81611aa8565b82525050565b6000602082019050611ad96000830184611ab5565b92915050565b611ae881611948565b82525050565b6000602082019050611b036000830184611adf565b92915050565b60008060408385031215611b2057611b1f611923565b5b6000611b2e85828601611971565b9250506020611b3f85828601611971565b9150509250929050565b6000819050919050565b6000611b6e611b69611b6484611928565b611b49565b611928565b9050919050565b6000611b8082611b53565b9050919050565b6000611b9282611b75565b9050919050565b611ba281611b87565b82525050565b6000602082019050611bbd6000830184611b99565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000611bf9600683611873565b9150611c0482611bc3565b602082019050919050565b60006020820190508181036000830152611c2881611bec565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c6982611834565b9150611c7483611834565b925082821015611c8757611c86611c2f565b5b828203905092915050565b6000611c9d82611834565b9150611ca883611834565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cdd57611cdc611c2f565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000611d44602583611873565b9150611d4f82611ce8565b604082019050919050565b60006020820190508181036000830152611d7381611d37565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050611de78161195a565b92915050565b600060208284031215611e0357611e02611923565b5b6000611e1184828501611dd8565b91505092915050565b6000819050919050565b6000611e3f611e3a611e3584611e1a565b611b49565b611834565b9050919050565b611e4f81611e24565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611e8a81611948565b82525050565b6000611e9c8383611e81565b60208301905092915050565b6000602082019050919050565b6000611ec082611e55565b611eca8185611e60565b9350611ed583611e71565b8060005b83811015611f06578151611eed8882611e90565b9750611ef883611ea8565b925050600181019050611ed9565b5085935050505092915050565b600060a082019050611f28600083018861183e565b611f356020830187611e46565b8181036040830152611f478186611eb5565b9050611f566060830185611adf565b611f63608083018461183e565b9695505050505050565b600081905092915050565b50565b6000611f88600083611f6d565b9150611f9382611f78565b600082019050919050565b6000611fa982611f7b565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000611fe9601e83611873565b9150611ff482611fb3565b602082019050919050565b6000602082019050818103600083015261201881611fdc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612055601b83611873565b91506120608261201f565b602082019050919050565b6000602082019050818103600083015261208481612048565b9050919050565b600061209682611834565b91506120a183611834565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120da576120d9611c2f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061211f82611834565b915061212a83611834565b92508261213a576121396120e5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006121a1602183611873565b91506121ac82612145565b604082019050919050565b600060208201905081810360008301526121d081612194565b905091905056fea2646970667358221220e5cf64ceceda725d096b2f308a7005771f2225a2203dbb247c66414b7c5e831f64736f6c63430008080033

Deployed Bytecode Sourcemap

4151:5901:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5020:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5943:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6365:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5673:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6753:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2389:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5767:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4551:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4983:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6113:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2498:131;;;;;;;;;;;;;:::i;:::-;;6029:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5853:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4955:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6589:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6224:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4867:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4924:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5020:56;;;;:::o;5943:80::-;5991:13;6015:5;;;;;;;;;;;;;;;;;6008:12;;5943:80;:::o;6365:216::-;6440:4;6492:6;6457:11;:23;6469:10;6457:23;;;;;;;;;;;;;;;:32;6481:7;6457:32;;;;;;;;;;;;;;;:41;;;;6535:7;6514:37;;6523:10;6514:37;;;6544:6;6514:37;;;;;;:::i;:::-;;;;;;;;6569:4;6562:11;;6365:216;;;;:::o;5673:88::-;5728:7;5746:12;;5739:19;;5673:88;:::o;6753:370::-;6853:4;6908:17;6873:11;:19;6885:6;6873:19;;;;;;;;;;;;;;;:31;6893:10;6873:31;;;;;;;;;;;;;;;;:52;6870:186;;6975:69;7011:6;6975:69;;;;;;;;;;;;;;;;;:11;:19;6987:6;6975:19;;;;;;;;;;;;;;;:31;6995:10;6975:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6941:11;:19;6953:6;6941:19;;;;;;;;;;;;;;;:31;6961:10;6941:31;;;;;;;;;;;;;;;:103;;;;6870:186;7075:40;7089:6;7097:9;7108:6;7075:13;:40::i;:::-;7068:47;;6753:370;;;;;:::o;2389:103::-;2444:4;2479:5;;;;;;;;;;;2468:16;;:7;:16;;;2461:23;;2389:103;;;:::o;5767:80::-;5819:5;4480:1;5828:16;;5767:80;:::o;4551:67::-;;;;:::o;4983:30::-;;;;;;;;;;;;;:::o;6113:105::-;6179:7;6197:9;:18;6207:7;6197:18;;;;;;;;;;;;;;;;6190:25;;6113:105;;;:::o;2498:131::-;2342:19;2350:10;2342:7;:19::i;:::-;2334:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2571:1:::1;2555:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2589:32;2618:1;2589:32;;;;;;:::i;:::-;;;;;;;;2498:131::o:0;6029:78::-;6081:7;6099:5;;;;;;;;;;;6092:12;;6029:78;:::o;5853:84::-;5903:13;5927:7;;;;;;;;;;;;;;;;;5920:14;;5853:84;:::o;4955:19::-;;;;;;;;;;;;;:::o;6589:156::-;6669:4;6693:44;6707:10;6719:9;6730:6;6693:13;:44::i;:::-;6686:51;;6589:156;;;;:::o;6224:133::-;6308:7;6326:11;:19;6338:6;6326:19;;;;;;;;;;;;;;;:28;6346:7;6326:28;;;;;;;;;;;;;;;;6319:35;;6224:133;;;;:::o;4867:48::-;;;;;;;;;;;;;:::o;4924:24::-;;;;;;;;;;;;;:::o;478:190::-;564:7;597:1;592;:6;;600:12;584:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;624:9;640:1;636;:5;;;;:::i;:::-;624:17;;659:1;652:8;;;478:190;;;;;:::o;7131:792::-;7223:4;7243:6;;;;;;;;;;;7240:63;;;7259:41;7274:6;7282:9;7293:6;7259:14;:41::i;:::-;7252:48;;;;7240:63;7340:4;;;;;;;;;;;7327:17;;:9;:17;;;;:38;;;;;7361:4;;;;;;;;;;;7348:17;;:9;:17;;;;7327:38;7323:200;;;7390:15;:26;7406:9;7390:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7453:16;;7443:6;7420:9;:20;7430:9;7420:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7390:79;7382:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7323:200;7546:16;:14;:16::i;:::-;7543:35;;;7565:10;:8;:10::i;:::-;7543:35;7611:53;7633:6;7611:53;;;;;;;;;;;;;;;;;:9;:17;7621:6;7611:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7591:9;:17;7601:6;7591:17;;;;;;;;;;;;;;;:73;;;;7677:22;7702:21;7716:6;7702:13;:21::i;:::-;:56;;7752:6;7702:56;;;7726:23;7734:6;7742;7726:7;:23::i;:::-;7702:56;7677:81;;7792:40;7817:14;7792:9;:20;7802:9;7792:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7769:9;:20;7779:9;7769:20;;;;;;;;;;;;;;;:63;;;;7867:9;7850:43;;7859:6;7850:43;;;7878:14;7850:43;;;;;;:::i;:::-;;;;;;;;7911:4;7904:11;;;7131:792;;;;;;:::o;7935:330::-;8028:4;8065:53;8087:6;8065:53;;;;;;;;;;;;;;;;;:9;:17;8075:6;8065:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8045:9;:17;8055:6;8045:17;;;;;;;;;;;;;;;:73;;;;8152:32;8177:6;8152:9;:20;8162:9;8152:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8129:9;:20;8139:9;8129:20;;;;;;;;;;;;;;;:55;;;;8217:9;8200:35;;8209:6;8200:35;;;8228:6;8200:35;;;;;;:::i;:::-;;;;;;;;8253:4;8246:11;;7935:330;;;;;:::o;8725:197::-;8774:4;8812;;;;;;;;;;;8798:18;;:10;:18;;;;:38;;;;;8830:6;;;;;;;;;;;8829:7;8798:38;:62;;;;;8849:11;;;;;;;;;;;8798:62;:116;;;;;8901:13;;8873:9;:24;8891:4;8873:24;;;;;;;;;;;;;;;;:41;;8798:116;8791:123;;8725:197;:::o;8930:741::-;5132:4;5123:6;;:13;;;;;;;;;;;;;;;;;;8979:28:::1;9010:13;;8979:44;;9034:20;9057;9034:43;;9090:21;9128:1;9114:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9090:40;;9159:4;9141;9146:1;9141:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9185:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9175:4;9180:1;9175:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9213:6;;;;;;;;;;;:57;;;9285:12;9312:1;9328:4;9355;9375:15;9213:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9409:26;9438:21;9409:50;;9466:21;9524:20;;;;;;;;;;;9516:34;;9558:18;9583:5;9516:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9465:128;;;9612:16;9604:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8968:703;;;;;5150:5:::0;5141:6;;:14;;;;;;;;;;;;;;;;;;8930:741::o;8273:114::-;8335:4;8360:11;:19;8372:6;8360:19;;;;;;;;;;;;;;;;;;;;;;;;;8359:20;8352:27;;8273:114;;;:::o;8395:322::-;8462:7;8482:17;8502:33;8531:3;8502:24;8513:12;;8502:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8482:53;;8573:39;8602:9;8573;:24;8591:4;8573:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8546:9;:24;8564:4;8546:24;;;;;;;;;;;;;;;:66;;;;8653:4;8628:42;;8637:6;8628:42;;;8660:9;8628:42;;;;;;:::i;:::-;;;;;;;;8688:21;8699:9;8688:6;:10;;:21;;;;:::i;:::-;8681:28;;;8395:322;;;;:::o;151:179::-;209:7;229:9;245:1;241;:5;;;;:::i;:::-;229:17;;270:1;265;:6;;257:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;321:1;314:8;;;151:179;;;;:::o;674:246::-;732:7;761:1;756;:6;752:47;;;786:1;779:8;;;;752:47;809:9;825:1;821;:5;;;;:::i;:::-;809:17;;854:1;849;845;:5;;;;:::i;:::-;:10;837:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;911:1;904:8;;;674:246;;;;;:::o;926:132::-;984:7;1011:39;1015:1;1018;1011:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1004:46;;926:132;;;;:::o;336:136::-;394:7;421:43;425:1;428;421:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;414:50;;336:136;;;;:::o;1064:189::-;1150:7;1182:1;1178;:5;1185:12;1170:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1209:9;1225:1;1221;:5;;;;:::i;:::-;1209:17;;1244:1;1237:8;;;1064:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::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:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:60::-;6096:3;6117:5;6110:12;;6068:60;;;:::o;6134:142::-;6184:9;6217:53;6235:34;6244:24;6262:5;6244:24;:::i;:::-;6235:34;:::i;:::-;6217:53;:::i;:::-;6204:66;;6134:142;;;:::o;6282:126::-;6332:9;6365:37;6396:5;6365:37;:::i;:::-;6352:50;;6282:126;;;:::o;6414:144::-;6482:9;6515:37;6546:5;6515:37;:::i;:::-;6502:50;;6414:144;;;:::o;6564:167::-;6669:55;6718:5;6669:55;:::i;:::-;6664:3;6657:68;6564:167;;:::o;6737:258::-;6848:4;6886:2;6875:9;6871:18;6863:26;;6899:89;6985:1;6974:9;6970:17;6961:6;6899:89;:::i;:::-;6737:258;;;;:::o;7001:156::-;7141:8;7137:1;7129:6;7125:14;7118:32;7001:156;:::o;7163:365::-;7305:3;7326:66;7390:1;7385:3;7326:66;:::i;:::-;7319:73;;7401:93;7490:3;7401:93;:::i;:::-;7519:2;7514:3;7510:12;7503:19;;7163:365;;;:::o;7534:419::-;7700:4;7738:2;7727:9;7723:18;7715:26;;7787:9;7781:4;7777:20;7773:1;7762:9;7758:17;7751:47;7815:131;7941:4;7815:131;:::i;:::-;7807:139;;7534:419;;;:::o;7959:180::-;8007:77;8004:1;7997:88;8104:4;8101:1;8094:15;8128:4;8125:1;8118:15;8145:191;8185:4;8205:20;8223:1;8205:20;:::i;:::-;8200:25;;8239:20;8257:1;8239:20;:::i;:::-;8234:25;;8278:1;8275;8272:8;8269:34;;;8283:18;;:::i;:::-;8269:34;8328:1;8325;8321:9;8313:17;;8145:191;;;;:::o;8342:305::-;8382:3;8401:20;8419:1;8401:20;:::i;:::-;8396:25;;8435:20;8453:1;8435:20;:::i;:::-;8430:25;;8589:1;8521:66;8517:74;8514:1;8511:81;8508:107;;;8595:18;;:::i;:::-;8508:107;8639:1;8636;8632:9;8625:16;;8342:305;;;;:::o;8653:224::-;8793:34;8789:1;8781:6;8777:14;8770:58;8862:7;8857:2;8849:6;8845:15;8838:32;8653:224;:::o;8883:366::-;9025:3;9046:67;9110:2;9105:3;9046:67;:::i;:::-;9039:74;;9122:93;9211:3;9122:93;:::i;:::-;9240:2;9235:3;9231:12;9224:19;;8883:366;;;:::o;9255:419::-;9421:4;9459:2;9448:9;9444:18;9436:26;;9508:9;9502:4;9498:20;9494:1;9483:9;9479:17;9472:47;9536:131;9662:4;9536:131;:::i;:::-;9528:139;;9255:419;;;:::o;9680:180::-;9728:77;9725:1;9718:88;9825:4;9822:1;9815:15;9849:4;9846:1;9839:15;9866:180;9914:77;9911:1;9904:88;10011:4;10008:1;10001:15;10035:4;10032:1;10025:15;10052:143;10109:5;10140:6;10134:13;10125:22;;10156:33;10183:5;10156:33;:::i;:::-;10052:143;;;;:::o;10201:351::-;10271:6;10320:2;10308:9;10299:7;10295:23;10291:32;10288:119;;;10326:79;;:::i;:::-;10288:119;10446:1;10471:64;10527:7;10518:6;10507:9;10503:22;10471:64;:::i;:::-;10461:74;;10417:128;10201:351;;;;:::o;10558:85::-;10603:7;10632:5;10621:16;;10558:85;;;:::o;10649:158::-;10707:9;10740:61;10758:42;10767:32;10793:5;10767:32;:::i;:::-;10758:42;:::i;:::-;10740:61;:::i;:::-;10727:74;;10649:158;;;:::o;10813:147::-;10908:45;10947:5;10908:45;:::i;:::-;10903:3;10896:58;10813:147;;:::o;10966:114::-;11033:6;11067:5;11061:12;11051:22;;10966:114;;;:::o;11086:184::-;11185:11;11219:6;11214:3;11207:19;11259:4;11254:3;11250:14;11235:29;;11086:184;;;;:::o;11276:132::-;11343:4;11366:3;11358:11;;11396:4;11391:3;11387:14;11379:22;;11276:132;;;:::o;11414:108::-;11491:24;11509:5;11491:24;:::i;:::-;11486:3;11479:37;11414:108;;:::o;11528:179::-;11597:10;11618:46;11660:3;11652:6;11618:46;:::i;:::-;11696:4;11691:3;11687:14;11673:28;;11528:179;;;;:::o;11713:113::-;11783:4;11815;11810:3;11806:14;11798:22;;11713:113;;;:::o;11862:732::-;11981:3;12010:54;12058:5;12010:54;:::i;:::-;12080:86;12159:6;12154:3;12080:86;:::i;:::-;12073:93;;12190:56;12240:5;12190:56;:::i;:::-;12269:7;12300:1;12285:284;12310:6;12307:1;12304:13;12285:284;;;12386:6;12380:13;12413:63;12472:3;12457:13;12413:63;:::i;:::-;12406:70;;12499:60;12552:6;12499:60;:::i;:::-;12489:70;;12345:224;12332:1;12329;12325:9;12320:14;;12285:284;;;12289:14;12585:3;12578:10;;11986:608;;;11862:732;;;;:::o;12600:831::-;12863:4;12901:3;12890:9;12886:19;12878:27;;12915:71;12983:1;12972:9;12968:17;12959:6;12915:71;:::i;:::-;12996:80;13072:2;13061:9;13057:18;13048:6;12996:80;:::i;:::-;13123:9;13117:4;13113:20;13108:2;13097:9;13093:18;13086:48;13151:108;13254:4;13245:6;13151:108;:::i;:::-;13143:116;;13269:72;13337:2;13326:9;13322:18;13313:6;13269:72;:::i;:::-;13351:73;13419:3;13408:9;13404:19;13395:6;13351:73;:::i;:::-;12600:831;;;;;;;;:::o;13437:147::-;13538:11;13575:3;13560:18;;13437:147;;;;:::o;13590:114::-;;:::o;13710:398::-;13869:3;13890:83;13971:1;13966:3;13890:83;:::i;:::-;13883:90;;13982:93;14071:3;13982:93;:::i;:::-;14100:1;14095:3;14091:11;14084:18;;13710:398;;;:::o;14114:379::-;14298:3;14320:147;14463:3;14320:147;:::i;:::-;14313:154;;14484:3;14477:10;;14114:379;;;:::o;14499:180::-;14639:32;14635:1;14627:6;14623:14;14616:56;14499:180;:::o;14685:366::-;14827:3;14848:67;14912:2;14907:3;14848:67;:::i;:::-;14841:74;;14924:93;15013:3;14924:93;:::i;:::-;15042:2;15037:3;15033:12;15026:19;;14685:366;;;:::o;15057:419::-;15223:4;15261:2;15250:9;15246:18;15238:26;;15310:9;15304:4;15300:20;15296:1;15285:9;15281:17;15274:47;15338:131;15464:4;15338:131;:::i;:::-;15330:139;;15057:419;;;:::o;15482:177::-;15622:29;15618:1;15610:6;15606:14;15599:53;15482:177;:::o;15665:366::-;15807:3;15828:67;15892:2;15887:3;15828:67;:::i;:::-;15821:74;;15904:93;15993:3;15904:93;:::i;:::-;16022:2;16017:3;16013:12;16006:19;;15665:366;;;:::o;16037:419::-;16203:4;16241:2;16230:9;16226:18;16218:26;;16290:9;16284:4;16280:20;16276:1;16265:9;16261:17;16254:47;16318:131;16444:4;16318:131;:::i;:::-;16310:139;;16037:419;;;:::o;16462:348::-;16502:7;16525:20;16543:1;16525:20;:::i;:::-;16520:25;;16559:20;16577:1;16559:20;:::i;:::-;16554:25;;16747:1;16679:66;16675:74;16672:1;16669:81;16664:1;16657:9;16650:17;16646:105;16643:131;;;16754:18;;:::i;:::-;16643:131;16802:1;16799;16795:9;16784:20;;16462:348;;;;:::o;16816:180::-;16864:77;16861:1;16854:88;16961:4;16958:1;16951:15;16985:4;16982:1;16975:15;17002:185;17042:1;17059:20;17077:1;17059:20;:::i;:::-;17054:25;;17093:20;17111:1;17093:20;:::i;:::-;17088:25;;17132:1;17122:35;;17137:18;;:::i;:::-;17122:35;17179:1;17176;17172:9;17167:14;;17002:185;;;;:::o;17193:220::-;17333:34;17329:1;17321:6;17317:14;17310:58;17402:3;17397:2;17389:6;17385:15;17378:28;17193:220;:::o;17419:366::-;17561:3;17582:67;17646:2;17641:3;17582:67;:::i;:::-;17575:74;;17658:93;17747:3;17658:93;:::i;:::-;17776:2;17771:3;17767:12;17760:19;;17419:366;;;:::o;17791:419::-;17957:4;17995:2;17984:9;17980:18;17972:26;;18044:9;18038:4;18034:20;18030:1;18019:9;18015:17;18008:47;18072:131;18198:4;18072:131;:::i;:::-;18064:139;;17791:419;;;:::o

Swarm Source

ipfs://e5cf64ceceda725d096b2f308a7005771f2225a2203dbb247c66414b7c5e831f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.