ETH Price: $3,893.00 (-0.58%)

Token

ERC-20: Doggishness (DOGNESS)
 

Overview

Max Total Supply

1,000,000 DOGNESS

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
gemmie.eth
Balance
0.073177431 DOGNESS

Value
$0.00
0x7B5F6D5a8Cf55442c1059cE60c4dbc473518299B
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:
Doggishness

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-19
*/

// Relating to or suggestive of a dog.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
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 Doggishness is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Doggishness";
    string constant _symbol = "DOGNESS";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = 20_000 * (10 ** _decimals); //2%

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

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

    uint256 marketingFee = 6;
    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 approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    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
        );
    }
    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

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":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"spender","type":"address"}],"name":"approveMax","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac9190620007eb565b620f4240620000bc91906200083c565b6003556009600a620000cf9190620007eb565b614e20620000de91906200083c565b600455600660095533600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60146101000a81548160ff0219169083151502179055506032612710600354620001569190620008cc565b6200016291906200083c565b600d553480156200017257600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac91906200096e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035b91906200096e565b306040518363ffffffff1660e01b81526004016200037b929190620009b1565b6020604051808303816000875af11580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c191906200096e565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620006429190620009ef565b60405180910390a35062000a0c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006df57808604811115620006b757620006b662000651565b5b6001851615620006c75780820291505b8081029050620006d78562000680565b945062000697565b94509492505050565b600082620006fa5760019050620007cd565b816200070a5760009050620007cd565b81600181146200072357600281146200072e5762000764565b6001915050620007cd565b60ff84111562000743576200074262000651565b5b8360020a9150848211156200075d576200075c62000651565b5b50620007cd565b5060208310610133831016604e8410600b84101617156200079e5782820a90508381111562000798576200079762000651565b5b620007cd565b620007ad84848460016200068d565b92509050818404811115620007c757620007c662000651565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007f882620007d4565b91506200080583620007de565b9250620008347fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006e8565b905092915050565b60006200084982620007d4565b91506200085683620007d4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000892576200089162000651565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008d982620007d4565b9150620008e683620007d4565b925082620008f957620008f86200089d565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009368262000909565b9050919050565b620009488162000929565b81146200095457600080fd5b50565b60008151905062000968816200093d565b92915050565b60006020828403121562000987576200098662000904565b5b6000620009978482850162000957565b91505092915050565b620009ab8162000929565b82525050565b6000604082019050620009c86000830185620009a0565b620009d76020830184620009a0565b9392505050565b620009e981620007d4565b82525050565b600060208201905062000a066000830184620009de565b92915050565b6123068062000a1c6000396000f3fe6080604052600436106101235760003560e01c80636ddd1713116100a0578063a8aa1b3111610064578063a8aa1b31146103e6578063a9059cbb14610411578063dd62ed3e1461044e578063e96fada21461048b578063f887ea40146104b65761012a565b80636ddd17131461031157806370a082311461033c578063715018a614610379578063893d20e81461039057806395d89b41146103bb5761012a565b80632f54bf6e116100e75780632f54bf6e1461022a578063313ce56714610267578063364333f414610292578063571ac8b0146102a95780636c0a24eb146102e65761012a565b80630445b6671461012f57806306fdde031461015a578063095ea7b31461018557806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104e1565b6040516101519190611946565b60405180910390f35b34801561016657600080fd5b5061016f6104e7565b60405161017c91906119fa565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190611aab565b610524565b6040516101b99190611b06565b60405180910390f35b3480156101ce57600080fd5b506101d7610616565b6040516101e49190611946565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190611b21565b610620565b6040516102219190611b06565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190611b74565b610820565b60405161025e9190611b06565b60405180910390f35b34801561027357600080fd5b5061027c610879565b6040516102899190611bbd565b60405180910390f35b34801561029e57600080fd5b506102a7610882565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190611b74565b6108ed565b6040516102dd9190611b06565b60405180910390f35b3480156102f257600080fd5b506102fb610920565b6040516103089190611946565b60405180910390f35b34801561031d57600080fd5b50610326610926565b6040516103339190611b06565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190611b74565b610939565b6040516103709190611946565b60405180910390f35b34801561038557600080fd5b5061038e610982565b005b34801561039c57600080fd5b506103a5610a45565b6040516103b29190611be7565b60405180910390f35b3480156103c757600080fd5b506103d0610a6e565b6040516103dd91906119fa565b60405180910390f35b3480156103f257600080fd5b506103fb610aab565b6040516104089190611be7565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190611aab565b610ad1565b6040516104459190611b06565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190611c02565b610ae6565b6040516104829190611946565b60405180910390f35b34801561049757600080fd5b506104a0610b6d565b6040516104ad9190611be7565b60405180910390f35b3480156104c257600080fd5b506104cb610b93565b6040516104d89190611ca1565b60405180910390f35b600d5481565b60606040518060400160405280600b81526020017f446f67676973686e657373000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106049190611946565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461080c5761078b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610817848484610c1d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156108ea573d6000803e3d6000fd5b50565b6000610919827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610524565b9050919050565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61098b33610820565b6109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190611d08565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610a3b9190611be7565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f444f474e45535300000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ade338484610c1d565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf891906119fa565b60405180910390fd5b5060008385610c109190611d57565b9050809150509392505050565b6000600e60009054906101000a900460ff1615610c4657610c3f848484610fe6565b9050610fdf565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cf25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ddb57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610d9b575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d989190611d8b565b11155b610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190611e53565b60405180910390fd5b5b610de36111b9565b15610df157610df0611290565b5b610e7a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610ec8856115c3565b610ed25782610edd565b610edc858461161a565b5b9050610f3181600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fd19190611946565b60405180910390a360019150505b9392505050565b6000611071826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061110682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111a69190611946565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112265750600e60009054906101000a900460ff16155b801561123e5750600c60149054906101000a900460ff165b801561128b5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156112d4576112d3611e73565b5b6040519080825280602002602001820160405280156113025781602001602082028036833780820191505090505b509050308160008151811061131a57611319611ea2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e59190611ee6565b816001815181106113f9576113f8611ea2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161149795949392919061200c565b600060405180830381600087803b1580156114b157600080fd5b505af11580156114c5573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161151a90612097565b600060405180830381858888f193505050503d8060008114611558576040519150601f19603f3d011682016040523d82523d6000602084013e61155d565b606091505b50509050806115a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611598906120f8565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806116456064611637600954866117bb90919063ffffffff16565b61183690919063ffffffff16565b905061169981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117399190611946565b60405180910390a3611754818461188090919063ffffffff16565b91505092915050565b600080828461176c9190611d8b565b9050838110156117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890612164565b60405180910390fd5b8091505092915050565b6000808314156117ce5760009050611830565b600082846117dc9190612184565b90508284826117eb919061220d565b1461182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906122b0565b60405180910390fd5b809150505b92915050565b600061187883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ca565b905092915050565b60006118c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bb9565b905092915050565b60008083118290611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190891906119fa565b60405180910390fd5b5060008385611920919061220d565b9050809150509392505050565b6000819050919050565b6119408161192d565b82525050565b600060208201905061195b6000830184611937565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561199b578082015181840152602081019050611980565b838111156119aa576000848401525b50505050565b6000601f19601f8301169050919050565b60006119cc82611961565b6119d6818561196c565b93506119e681856020860161197d565b6119ef816119b0565b840191505092915050565b60006020820190508181036000830152611a1481846119c1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a4c82611a21565b9050919050565b611a5c81611a41565b8114611a6757600080fd5b50565b600081359050611a7981611a53565b92915050565b611a888161192d565b8114611a9357600080fd5b50565b600081359050611aa581611a7f565b92915050565b60008060408385031215611ac257611ac1611a1c565b5b6000611ad085828601611a6a565b9250506020611ae185828601611a96565b9150509250929050565b60008115159050919050565b611b0081611aeb565b82525050565b6000602082019050611b1b6000830184611af7565b92915050565b600080600060608486031215611b3a57611b39611a1c565b5b6000611b4886828701611a6a565b9350506020611b5986828701611a6a565b9250506040611b6a86828701611a96565b9150509250925092565b600060208284031215611b8a57611b89611a1c565b5b6000611b9884828501611a6a565b91505092915050565b600060ff82169050919050565b611bb781611ba1565b82525050565b6000602082019050611bd26000830184611bae565b92915050565b611be181611a41565b82525050565b6000602082019050611bfc6000830184611bd8565b92915050565b60008060408385031215611c1957611c18611a1c565b5b6000611c2785828601611a6a565b9250506020611c3885828601611a6a565b9150509250929050565b6000819050919050565b6000611c67611c62611c5d84611a21565b611c42565b611a21565b9050919050565b6000611c7982611c4c565b9050919050565b6000611c8b82611c6e565b9050919050565b611c9b81611c80565b82525050565b6000602082019050611cb66000830184611c92565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000611cf260068361196c565b9150611cfd82611cbc565b602082019050919050565b60006020820190508181036000830152611d2181611ce5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d628261192d565b9150611d6d8361192d565b925082821015611d8057611d7f611d28565b5b828203905092915050565b6000611d968261192d565b9150611da18361192d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dd657611dd5611d28565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000611e3d60258361196c565b9150611e4882611de1565b604082019050919050565b60006020820190508181036000830152611e6c81611e30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050611ee081611a53565b92915050565b600060208284031215611efc57611efb611a1c565b5b6000611f0a84828501611ed1565b91505092915050565b6000819050919050565b6000611f38611f33611f2e84611f13565b611c42565b61192d565b9050919050565b611f4881611f1d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f8381611a41565b82525050565b6000611f958383611f7a565b60208301905092915050565b6000602082019050919050565b6000611fb982611f4e565b611fc38185611f59565b9350611fce83611f6a565b8060005b83811015611fff578151611fe68882611f89565b9750611ff183611fa1565b925050600181019050611fd2565b5085935050505092915050565b600060a0820190506120216000830188611937565b61202e6020830187611f3f565b81810360408301526120408186611fae565b905061204f6060830185611bd8565b61205c6080830184611937565b9695505050505050565b600081905092915050565b50565b6000612081600083612066565b915061208c82612071565b600082019050919050565b60006120a282612074565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006120e2601e8361196c565b91506120ed826120ac565b602082019050919050565b60006020820190508181036000830152612111816120d5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061214e601b8361196c565b915061215982612118565b602082019050919050565b6000602082019050818103600083015261217d81612141565b9050919050565b600061218f8261192d565b915061219a8361192d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156121d3576121d2611d28565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122188261192d565b91506122238361192d565b925082612233576122326121de565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061229a60218361196c565b91506122a58261223e565b604082019050919050565b600060208201905081810360008301526122c98161228d565b905091905056fea2646970667358221220693b9796b84106ef4d1e20078abaaf5bdd50063fd4a4a1b6c097c7aed328460b64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80636ddd1713116100a0578063a8aa1b3111610064578063a8aa1b31146103e6578063a9059cbb14610411578063dd62ed3e1461044e578063e96fada21461048b578063f887ea40146104b65761012a565b80636ddd17131461031157806370a082311461033c578063715018a614610379578063893d20e81461039057806395d89b41146103bb5761012a565b80632f54bf6e116100e75780632f54bf6e1461022a578063313ce56714610267578063364333f414610292578063571ac8b0146102a95780636c0a24eb146102e65761012a565b80630445b6671461012f57806306fdde031461015a578063095ea7b31461018557806318160ddd146101c257806323b872dd146101ed5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104e1565b6040516101519190611946565b60405180910390f35b34801561016657600080fd5b5061016f6104e7565b60405161017c91906119fa565b60405180910390f35b34801561019157600080fd5b506101ac60048036038101906101a79190611aab565b610524565b6040516101b99190611b06565b60405180910390f35b3480156101ce57600080fd5b506101d7610616565b6040516101e49190611946565b60405180910390f35b3480156101f957600080fd5b50610214600480360381019061020f9190611b21565b610620565b6040516102219190611b06565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190611b74565b610820565b60405161025e9190611b06565b60405180910390f35b34801561027357600080fd5b5061027c610879565b6040516102899190611bbd565b60405180910390f35b34801561029e57600080fd5b506102a7610882565b005b3480156102b557600080fd5b506102d060048036038101906102cb9190611b74565b6108ed565b6040516102dd9190611b06565b60405180910390f35b3480156102f257600080fd5b506102fb610920565b6040516103089190611946565b60405180910390f35b34801561031d57600080fd5b50610326610926565b6040516103339190611b06565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e9190611b74565b610939565b6040516103709190611946565b60405180910390f35b34801561038557600080fd5b5061038e610982565b005b34801561039c57600080fd5b506103a5610a45565b6040516103b29190611be7565b60405180910390f35b3480156103c757600080fd5b506103d0610a6e565b6040516103dd91906119fa565b60405180910390f35b3480156103f257600080fd5b506103fb610aab565b6040516104089190611be7565b60405180910390f35b34801561041d57600080fd5b5061043860048036038101906104339190611aab565b610ad1565b6040516104459190611b06565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190611c02565b610ae6565b6040516104829190611946565b60405180910390f35b34801561049757600080fd5b506104a0610b6d565b6040516104ad9190611be7565b60405180910390f35b3480156104c257600080fd5b506104cb610b93565b6040516104d89190611ca1565b60405180910390f35b600d5481565b60606040518060400160405280600b81526020017f446f67676973686e657373000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106049190611946565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461080c5761078b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610817848484610c1d565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156108ea573d6000803e3d6000fd5b50565b6000610919827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610524565b9050919050565b60045481565b600c60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61098b33610820565b6109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190611d08565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610a3b9190611be7565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f444f474e45535300000000000000000000000000000000000000000000000000815250905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ade338484610c1d565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf891906119fa565b60405180910390fd5b5060008385610c109190611d57565b9050809150509392505050565b6000600e60009054906101000a900460ff1615610c4657610c3f848484610fe6565b9050610fdf565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610cf25750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ddb57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610d9b575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d989190611d8b565b11155b610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd190611e53565b60405180910390fd5b5b610de36111b9565b15610df157610df0611290565b5b610e7a826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610ec8856115c3565b610ed25782610edd565b610edc858461161a565b5b9050610f3181600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fd19190611946565b60405180910390a360019150505b9392505050565b6000611071826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bb99092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061110682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111a69190611946565b60405180910390a3600190509392505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156112265750600e60009054906101000a900460ff16155b801561123e5750600c60149054906101000a900460ff165b801561128b5750600d54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001600e60006101000a81548160ff0219169083151502179055506000600d54905060008190506000600267ffffffffffffffff8111156112d4576112d3611e73565b5b6040519080825280602002602001820160405280156113025781602001602082028036833780820191505090505b509050308160008151811061131a57611319611ea2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e59190611ee6565b816001815181106113f9576113f8611ea2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161149795949392919061200c565b600060405180830381600087803b1580156114b157600080fd5b505af11580156114c5573d6000803e3d6000fd5b5050505060004790506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161151a90612097565b600060405180830381858888f193505050503d8060008114611558576040519150601f19603f3d011682016040523d82523d6000602084013e61155d565b606091505b50509050806115a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611598906120f8565b60405180910390fd5b50505050506000600e60006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806116456064611637600954866117bb90919063ffffffff16565b61183690919063ffffffff16565b905061169981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461175d90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117399190611946565b60405180910390a3611754818461188090919063ffffffff16565b91505092915050565b600080828461176c9190611d8b565b9050838110156117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890612164565b60405180910390fd5b8091505092915050565b6000808314156117ce5760009050611830565b600082846117dc9190612184565b90508284826117eb919061220d565b1461182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906122b0565b60405180910390fd5b809150505b92915050565b600061187883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118ca565b905092915050565b60006118c283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bb9565b905092915050565b60008083118290611911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190891906119fa565b60405180910390fd5b5060008385611920919061220d565b9050809150509392505050565b6000819050919050565b6119408161192d565b82525050565b600060208201905061195b6000830184611937565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561199b578082015181840152602081019050611980565b838111156119aa576000848401525b50505050565b6000601f19601f8301169050919050565b60006119cc82611961565b6119d6818561196c565b93506119e681856020860161197d565b6119ef816119b0565b840191505092915050565b60006020820190508181036000830152611a1481846119c1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611a4c82611a21565b9050919050565b611a5c81611a41565b8114611a6757600080fd5b50565b600081359050611a7981611a53565b92915050565b611a888161192d565b8114611a9357600080fd5b50565b600081359050611aa581611a7f565b92915050565b60008060408385031215611ac257611ac1611a1c565b5b6000611ad085828601611a6a565b9250506020611ae185828601611a96565b9150509250929050565b60008115159050919050565b611b0081611aeb565b82525050565b6000602082019050611b1b6000830184611af7565b92915050565b600080600060608486031215611b3a57611b39611a1c565b5b6000611b4886828701611a6a565b9350506020611b5986828701611a6a565b9250506040611b6a86828701611a96565b9150509250925092565b600060208284031215611b8a57611b89611a1c565b5b6000611b9884828501611a6a565b91505092915050565b600060ff82169050919050565b611bb781611ba1565b82525050565b6000602082019050611bd26000830184611bae565b92915050565b611be181611a41565b82525050565b6000602082019050611bfc6000830184611bd8565b92915050565b60008060408385031215611c1957611c18611a1c565b5b6000611c2785828601611a6a565b9250506020611c3885828601611a6a565b9150509250929050565b6000819050919050565b6000611c67611c62611c5d84611a21565b611c42565b611a21565b9050919050565b6000611c7982611c4c565b9050919050565b6000611c8b82611c6e565b9050919050565b611c9b81611c80565b82525050565b6000602082019050611cb66000830184611c92565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000611cf260068361196c565b9150611cfd82611cbc565b602082019050919050565b60006020820190508181036000830152611d2181611ce5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d628261192d565b9150611d6d8361192d565b925082821015611d8057611d7f611d28565b5b828203905092915050565b6000611d968261192d565b9150611da18361192d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611dd657611dd5611d28565b5b828201905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000611e3d60258361196c565b9150611e4882611de1565b604082019050919050565b60006020820190508181036000830152611e6c81611e30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050611ee081611a53565b92915050565b600060208284031215611efc57611efb611a1c565b5b6000611f0a84828501611ed1565b91505092915050565b6000819050919050565b6000611f38611f33611f2e84611f13565b611c42565b61192d565b9050919050565b611f4881611f1d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f8381611a41565b82525050565b6000611f958383611f7a565b60208301905092915050565b6000602082019050919050565b6000611fb982611f4e565b611fc38185611f59565b9350611fce83611f6a565b8060005b83811015611fff578151611fe68882611f89565b9750611ff183611fa1565b925050600181019050611fd2565b5085935050505092915050565b600060a0820190506120216000830188611937565b61202e6020830187611f3f565b81810360408301526120408186611fae565b905061204f6060830185611bd8565b61205c6080830184611937565b9695505050505050565b600081905092915050565b50565b6000612081600083612066565b915061208c82612071565b600082019050919050565b60006120a282612074565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006120e2601e8361196c565b91506120ed826120ac565b602082019050919050565b60006020820190508181036000830152612111816120d5565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061214e601b8361196c565b915061215982612118565b602082019050919050565b6000602082019050818103600083015261217d81612141565b9050919050565b600061218f8261192d565b915061219a8361192d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156121d3576121d2611d28565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006122188261192d565b91506122238361192d565b925082612233576122326121de565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061229a60218361196c565b91506122a58261223e565b604082019050919050565b600060208201905081810360008301526122c98161228d565b905091905056fea2646970667358221220693b9796b84106ef4d1e20078abaaf5bdd50063fd4a4a1b6c097c7aed328460b64736f6c634300080b0033

Deployed Bytecode Sourcemap

4123:6212:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4987:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5910:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6332:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5640:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6850:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2361:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5734:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10152:118;;;;;;;;;;;;;:::i;:::-;;6556:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4520:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4950:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2470:131;;;;;;;;;;;;;:::i;:::-;;5996:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4922:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6191:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4834:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4891:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4987:56;;;;:::o;5910:80::-;5958:13;5982:5;;;;;;;;;;;;;;;;;5975:12;;5910:80;:::o;6332:216::-;6407:4;6459:6;6424:11;:23;6436:10;6424:23;;;;;;;;;;;;;;;:32;6448:7;6424:32;;;;;;;;;;;;;;;:41;;;;6502:7;6481:37;;6490:10;6481:37;;;6511:6;6481:37;;;;;;:::i;:::-;;;;;;;;6536:4;6529:11;;6332:216;;;;:::o;5640:88::-;5695:7;5713:12;;5706:19;;5640:88;:::o;6850:370::-;6950:4;7005:17;6970:11;:19;6982:6;6970:19;;;;;;;;;;;;;;;:31;6990:10;6970:31;;;;;;;;;;;;;;;;:52;6967:186;;7072:69;7108:6;7072:69;;;;;;;;;;;;;;;;;:11;:19;7084:6;7072:19;;;;;;;;;;;;;;;:31;7092:10;7072:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7038:11;:19;7050:6;7038:19;;;;;;;;;;;;;;;:31;7058:10;7038:31;;;;;;;;;;;;;;;:103;;;;6967:186;7172:40;7186:6;7194:9;7205:6;7172:13;:40::i;:::-;7165:47;;6850:370;;;;;:::o;2361:103::-;2416:4;2451:5;;;;;;;;;;;2440:16;;:7;:16;;;2433:23;;2361:103;;;:::o;5734:80::-;5786:5;4453:1;5795:16;;5734:80;:::o;10152:118::-;10209:20;;;;;;;;;;;10201:38;;:61;10240:21;10201:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10152:118::o;6556:122::-;6611:4;6635:35;6643:7;6652:17;6635:7;:35::i;:::-;6628:42;;6556:122;;;:::o;4520:60::-;;;;:::o;4950:30::-;;;;;;;;;;;;;:::o;6080:105::-;6146:7;6164:9;:18;6174:7;6164:18;;;;;;;;;;;;;;;;6157:25;;6080:105;;;:::o;2470:131::-;2314:19;2322:10;2314:7;:19::i;:::-;2306:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2543:1:::1;2527:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2561:32;2590:1;2561:32;;;;;;:::i;:::-;;;;;;;;2470:131::o:0;5996:78::-;6048:7;6066:5;;;;;;;;;;;6059:12;;5996:78;:::o;5820:84::-;5870:13;5894:7;;;;;;;;;;;;;;;;;5887:14;;5820:84;:::o;4922:19::-;;;;;;;;;;;;;:::o;6686:156::-;6766:4;6790:44;6804:10;6816:9;6827:6;6790:13;:44::i;:::-;6783:51;;6686:156;;;;:::o;6191:133::-;6275:7;6293:11;:19;6305:6;6293:19;;;;;;;;;;;;;;;:28;6313:7;6293:28;;;;;;;;;;;;;;;;6286:35;;6191:133;;;;:::o;4834:48::-;;;;;;;;;;;;;:::o;4891:24::-;;;;;;;;;;;;;:::o;450:190::-;536:7;569:1;564;:6;;572:12;556:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;596:9;612:1;608;:5;;;;:::i;:::-;596:17;;631:1;624:8;;;450:190;;;;;:::o;7228:792::-;7320:4;7340:6;;;;;;;;;;;7337:63;;;7356:41;7371:6;7379:9;7390:6;7356:14;:41::i;:::-;7349:48;;;;7337:63;7437:4;;;;;;;;;;;7424:17;;:9;:17;;;;:38;;;;;7458:4;;;;;;;;;;;7445:17;;:9;:17;;;;7424:38;7420:200;;;7487:15;:26;7503:9;7487:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7550:16;;7540:6;7517:9;:20;7527:9;7517:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7487:79;7479:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7420:200;7643:16;:14;:16::i;:::-;7640:35;;;7662:10;:8;:10::i;:::-;7640:35;7708:53;7730:6;7708:53;;;;;;;;;;;;;;;;;:9;:17;7718:6;7708:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7688:9;:17;7698:6;7688:17;;;;;;;;;;;;;;;:73;;;;7774:22;7799:21;7813:6;7799:13;:21::i;:::-;:56;;7849:6;7799:56;;;7823:23;7831:6;7839;7823:7;:23::i;:::-;7799:56;7774:81;;7889:40;7914:14;7889:9;:20;7899:9;7889:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7866:9;:20;7876:9;7866:20;;;;;;;;;;;;;;;:63;;;;7964:9;7947:43;;7956:6;7947:43;;;7975:14;7947:43;;;;;;:::i;:::-;;;;;;;;8008:4;8001:11;;;7228:792;;;;;;:::o;8032:330::-;8125:4;8162:53;8184:6;8162:53;;;;;;;;;;;;;;;;;:9;:17;8172:6;8162:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8142:9;:17;8152:6;8142:17;;;;;;;;;;;;;;;:73;;;;8249:32;8274:6;8249:9;:20;8259:9;8249:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8226:9;:20;8236:9;8226:20;;;;;;;;;;;;;;;:55;;;;8314:9;8297:35;;8306:6;8297:35;;;8325:6;8297:35;;;;;;:::i;:::-;;;;;;;;8350:4;8343:11;;8032:330;;;;;:::o;8822:197::-;8871:4;8909;;;;;;;;;;;8895:18;;:10;:18;;;;:38;;;;;8927:6;;;;;;;;;;;8926:7;8895:38;:62;;;;;8946:11;;;;;;;;;;;8895:62;:116;;;;;8998:13;;8970:9;:24;8988:4;8970:24;;;;;;;;;;;;;;;;:41;;8895:116;8888:123;;8822:197;:::o;9027:741::-;5099:4;5090:6;;:13;;;;;;;;;;;;;;;;;;9076:28:::1;9107:13;;9076:44;;9131:20;9154;9131:43;;9187:21;9225:1;9211:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9187:40;;9256:4;9238;9243:1;9238:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9282:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9272:4;9277:1;9272:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9310:6;;;;;;;;;;;:57;;;9382:12;9409:1;9425:4;9452;9472:15;9310:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9506:26;9535:21;9506:50;;9563:21;9621:20;;;;;;;;;;;9613:34;;9655:18;9680:5;9613:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9562:128;;;9709:16;9701:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9065:703;;;;;5117:5:::0;5108:6;;:14;;;;;;;;;;;;;;;;;;9027:741::o;8370:114::-;8432:4;8457:11;:19;8469:6;8457:19;;;;;;;;;;;;;;;;;;;;;;;;;8456:20;8449:27;;8370:114;;;:::o;8492:322::-;8559:7;8579:17;8599:33;8628:3;8599:24;8610:12;;8599:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8579:53;;8670:39;8699:9;8670;:24;8688:4;8670:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8643:9;:24;8661:4;8643:24;;;;;;;;;;;;;;;:66;;;;8750:4;8725:42;;8734:6;8725:42;;;8757:9;8725:42;;;;;;:::i;:::-;;;;;;;;8785:21;8796:9;8785:6;:10;;:21;;;;:::i;:::-;8778:28;;;8492:322;;;;:::o;123:179::-;181:7;201:9;217:1;213;:5;;;;:::i;:::-;201:17;;242:1;237;:6;;229:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;293:1;286:8;;;123:179;;;;:::o;646:246::-;704:7;733:1;728;:6;724:47;;;758:1;751:8;;;;724:47;781:9;797:1;793;:5;;;;:::i;:::-;781:17;;826:1;821;817;:5;;;;:::i;:::-;:10;809:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;883:1;876:8;;;646:246;;;;;:::o;898:132::-;956:7;983:39;987:1;990;983:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;976:46;;898:132;;;;:::o;308:136::-;366:7;393:43;397:1;400;393:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;386:50;;308:136;;;;:::o;1036:189::-;1122:7;1154:1;1150;:5;1157:12;1142:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1181:9;1197:1;1193;:5;;;;:::i;:::-;1181:17;;1216:1;1209:8;;;1036: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://693b9796b84106ef4d1e20078abaaf5bdd50063fd4a4a1b6c097c7aed328460b
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.