ETH Price: $2,516.78 (+3.10%)

Token

IKIGAMI (IKIGAMI)
 

Overview

Max Total Supply

100,000,000,000 IKIGAMI

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,129,418,935.171967814 IKIGAMI

Value
$0.00
0x5666ba60d132edf7341166edb2e733d79b4bcde2
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:
IKIGAMI

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-13
*/

//T.ME/ikigamieth
//ikigamieth.com

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
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 IKIGAMI is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "IKIGAMI";
    string constant _symbol = "IKIGAMI";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;

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

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

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 8;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0x0a0dcb6E918852262252905112b708358a15B1c9;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 500; // 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[0x0a0dcb6E918852262252905112b708358a15B1c9] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x0a0dcb6E918852262252905112b708358a15B1c9] = true;
        isTxLimitExempt[DEAD] = 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(totalFee).div(feeDenominator);
        _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 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


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

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                0xcE6346d91D1a976e038f1ED0Ab55183dCdCDb5a7,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    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);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    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":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac91906200091a565b64174876e800620000be91906200096b565b600355606480600354620000d391906200096b565b620000df9190620009fb565b60045560006009556008600a55600a54600954620000fe919062000a33565b600b556064600c55730a0dcb6e918852262252905112b708358a15b1c9600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff0219169083151502179055506101f46103e86003546200018b9190620009fb565b6200019791906200096b565b601055348015620001a757600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e1919062000ad8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200036a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000390919062000ad8565b306040518363ffffffff1660e01b8152600401620003b092919062000b1b565b6020604051808303816000875af1158015620003d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f6919062000ad8565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160076000730a0dcb6e918852262252905112b708358a15b1c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000730a0dcb6e918852262252905112b708358a15b1c973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000771919062000b59565b60405180910390a35062000b76565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200080e57808604811115620007e657620007e562000780565b5b6001851615620007f65780820291505b80810290506200080685620007af565b9450620007c6565b94509492505050565b600082620008295760019050620008fc565b81620008395760009050620008fc565b81600181146200085257600281146200085d5762000893565b6001915050620008fc565b60ff84111562000872576200087162000780565b5b8360020a9150848211156200088c576200088b62000780565b5b50620008fc565b5060208310610133831016604e8410600b8410161715620008cd5782820a905083811115620008c757620008c662000780565b5b620008fc565b620008dc8484846001620007bc565b92509050818404811115620008f657620008f562000780565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009278262000903565b915062000934836200090d565b9250620009637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000817565b905092915050565b6000620009788262000903565b9150620009858362000903565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009c157620009c062000780565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a088262000903565b915062000a158362000903565b92508262000a285762000a27620009cc565b5b828204905092915050565b600062000a408262000903565b915062000a4d8362000903565b925082820190508082111562000a685762000a6762000780565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000aa08262000a73565b9050919050565b62000ab28162000a93565b811462000abe57600080fd5b50565b60008151905062000ad28162000aa7565b92915050565b60006020828403121562000af15762000af062000a6e565b5b600062000b018482850162000ac1565b91505092915050565b62000b158162000a93565b82525050565b600060408201905062000b32600083018562000b0a565b62000b41602083018462000b0a565b9392505050565b62000b538162000903565b82525050565b600060208201905062000b70600083018462000b48565b92915050565b6127878062000b866000396000f3fe6080604052600436106101395760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b3114610425578063a9059cbb14610450578063dd62ed3e1461048d578063e96fada2146104ca578063f1d5f517146104f5578063f887ea401461051e57610140565b80636ddd17131461035057806370a082311461037b578063715018a6146103b8578063893d20e8146103cf57806395d89b41146103fa57610140565b80632f54bf6e116100fd5780632f54bf6e14610240578063313ce5671461027d578063364333f4146102a857806352f7c988146102bf578063571ac8b0146102e85780636c0a24eb1461032557610140565b80630445b6671461014557806306fdde0314610170578063095ea7b31461019b57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610549565b6040516101679190611c93565b60405180910390f35b34801561017c57600080fd5b5061018561054f565b6040516101929190611d3e565b60405180910390f35b3480156101a757600080fd5b506101c260048036038101906101bd9190611def565b61058c565b6040516101cf9190611e4a565b60405180910390f35b3480156101e457600080fd5b506101ed61067e565b6040516101fa9190611c93565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190611e65565b610688565b6040516102379190611e4a565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190611eb8565b610888565b6040516102749190611e4a565b60405180910390f35b34801561028957600080fd5b506102926108e1565b60405161029f9190611f01565b60405180910390f35b3480156102b457600080fd5b506102bd6108ea565b005b3480156102cb57600080fd5b506102e660048036038101906102e19190611f1c565b610955565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611eb8565b6109c5565b60405161031c9190611e4a565b60405180910390f35b34801561033157600080fd5b5061033a6109f8565b6040516103479190611c93565b60405180910390f35b34801561035c57600080fd5b506103656109fe565b6040516103729190611e4a565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190611eb8565b610a11565b6040516103af9190611c93565b60405180910390f35b3480156103c457600080fd5b506103cd610a5a565b005b3480156103db57600080fd5b506103e4610b1d565b6040516103f19190611f6b565b60405180910390f35b34801561040657600080fd5b5061040f610b46565b60405161041c9190611d3e565b60405180910390f35b34801561043157600080fd5b5061043a610b83565b6040516104479190611f6b565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190611def565b610ba9565b6040516104849190611e4a565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190611f86565b610bbe565b6040516104c19190611c93565b60405180910390f35b3480156104d657600080fd5b506104df610c45565b6040516104ec9190611f6b565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190611fc6565b610c6b565b005b34801561052a57600080fd5b50610533610cd7565b6040516105409190612052565b60405180910390f35b60105481565b60606040518060400160405280600781526020017f494b4947414d4900000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161066c9190611c93565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610874576107f3826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cfd9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61087f848484610d61565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610952573d6000803e3d6000fd5b50565b61095e33610888565b61099d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610994906120b9565b60405180910390fd5b8160098190555080600a81905550600a546009546109bb9190612108565b600b819055505050565b60006109f1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61058c565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a6333610888565b610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a99906120b9565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610b139190611f6b565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f494b4947414d4900000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bb6338484610d61565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c7433610888565b610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa906120b9565b60405180910390fd5b6103e881600354610cc4919061213c565b610cce91906121c5565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3c9190611d3e565b60405180910390fd5b5060008385610d5491906121f6565b9050809150509392505050565b6000601160009054906101000a900460ff1615610d8a57610d8384848461112a565b9050611123565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e365750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f1f57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610edf575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610edc9190612108565b11155b610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f159061229c565b60405180910390fd5b5b610f276112fd565b15610f3557610f346113d4565b5b610fbe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cfd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061100c85611910565b6110165782611021565b6110208584611967565b5b905061107581600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aab90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111159190611c93565b60405180910390a360019150505b9392505050565b60006111b5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cfd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061124a82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aab90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ea9190611c93565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561136a5750601160009054906101000a900460ff16155b80156113825750600f60149054906101000a900460ff165b80156113cf5750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006114346002611426600b5461141860095487611b0990919063ffffffff16565b611b8390919063ffffffff16565b611b8390919063ffffffff16565b9050600061144b8284611bcd90919063ffffffff16565b90506000600267ffffffffffffffff81111561146a576114696122bc565b5b6040519080825280602002602001820160405280156114985781602001602082028036833780820191505090505b50905030816000815181106114b0576114af6122eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157b919061232f565b8160018151811061158f5761158e6122eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611632959493929190612455565b600060405180830381600087803b15801561164c57600080fd5b505af1158015611660573d6000803e3d6000fd5b5050505060006116798247611bcd90919063ffffffff16565b905060006116a76116966002600954611b8390919063ffffffff16565b600b54611bcd90919063ffffffff16565b905060006116e560026116d7846116c960095488611b0990919063ffffffff16565b611b8390919063ffffffff16565b611b8390919063ffffffff16565b9050600061171083611702600a5487611b0990919063ffffffff16565b611b8390919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161175e906124e0565b600060405180830381858888f193505050503d806000811461179c576040519150601f19603f3d011682016040523d82523d6000602084013e6117a1565b606091505b50509050806117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90612541565b60405180910390fd5b60008911156118e957600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c60008073ce6346d91d1a976e038f1ed0ab55183dcdcdb5a7426040518863ffffffff1660e01b815260040161186996959493929190612561565b60606040518083038185885af1158015611887573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ac91906125d7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516118e092919061262a565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611993600c54611985600b5486611b0990919063ffffffff16565b611b8390919063ffffffff16565b90506119e781600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aab90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a879190611c93565b60405180910390a3611aa28184611bcd90919063ffffffff16565b91505092915050565b6000808284611aba9190612108565b905083811015611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af69061269f565b60405180910390fd5b8091505092915050565b6000808303611b1b5760009050611b7d565b60008284611b29919061213c565b9050828482611b3891906121c5565b14611b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6f90612731565b60405180910390fd5b809150505b92915050565b6000611bc583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c17565b905092915050565b6000611c0f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cfd565b905092915050565b60008083118290611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c559190611d3e565b60405180910390fd5b5060008385611c6d91906121c5565b9050809150509392505050565b6000819050919050565b611c8d81611c7a565b82525050565b6000602082019050611ca86000830184611c84565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ce8578082015181840152602081019050611ccd565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d1082611cae565b611d1a8185611cb9565b9350611d2a818560208601611cca565b611d3381611cf4565b840191505092915050565b60006020820190508181036000830152611d588184611d05565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d9082611d65565b9050919050565b611da081611d85565b8114611dab57600080fd5b50565b600081359050611dbd81611d97565b92915050565b611dcc81611c7a565b8114611dd757600080fd5b50565b600081359050611de981611dc3565b92915050565b60008060408385031215611e0657611e05611d60565b5b6000611e1485828601611dae565b9250506020611e2585828601611dda565b9150509250929050565b60008115159050919050565b611e4481611e2f565b82525050565b6000602082019050611e5f6000830184611e3b565b92915050565b600080600060608486031215611e7e57611e7d611d60565b5b6000611e8c86828701611dae565b9350506020611e9d86828701611dae565b9250506040611eae86828701611dda565b9150509250925092565b600060208284031215611ece57611ecd611d60565b5b6000611edc84828501611dae565b91505092915050565b600060ff82169050919050565b611efb81611ee5565b82525050565b6000602082019050611f166000830184611ef2565b92915050565b60008060408385031215611f3357611f32611d60565b5b6000611f4185828601611dda565b9250506020611f5285828601611dda565b9150509250929050565b611f6581611d85565b82525050565b6000602082019050611f806000830184611f5c565b92915050565b60008060408385031215611f9d57611f9c611d60565b5b6000611fab85828601611dae565b9250506020611fbc85828601611dae565b9150509250929050565b600060208284031215611fdc57611fdb611d60565b5b6000611fea84828501611dda565b91505092915050565b6000819050919050565b600061201861201361200e84611d65565b611ff3565b611d65565b9050919050565b600061202a82611ffd565b9050919050565b600061203c8261201f565b9050919050565b61204c81612031565b82525050565b60006020820190506120676000830184612043565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006120a3600683611cb9565b91506120ae8261206d565b602082019050919050565b600060208201905081810360008301526120d281612096565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061211382611c7a565b915061211e83611c7a565b9250828201905080821115612136576121356120d9565b5b92915050565b600061214782611c7a565b915061215283611c7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561218b5761218a6120d9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121d082611c7a565b91506121db83611c7a565b9250826121eb576121ea612196565b5b828204905092915050565b600061220182611c7a565b915061220c83611c7a565b9250828203905081811115612224576122236120d9565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612286602583611cb9565b91506122918261222a565b604082019050919050565b600060208201905081810360008301526122b581612279565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061232981611d97565b92915050565b60006020828403121561234557612344611d60565b5b60006123538482850161231a565b91505092915050565b6000819050919050565b600061238161237c6123778461235c565b611ff3565b611c7a565b9050919050565b61239181612366565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123cc81611d85565b82525050565b60006123de83836123c3565b60208301905092915050565b6000602082019050919050565b600061240282612397565b61240c81856123a2565b9350612417836123b3565b8060005b8381101561244857815161242f88826123d2565b975061243a836123ea565b92505060018101905061241b565b5085935050505092915050565b600060a08201905061246a6000830188611c84565b6124776020830187612388565b818103604083015261248981866123f7565b90506124986060830185611f5c565b6124a56080830184611c84565b9695505050505050565b600081905092915050565b50565b60006124ca6000836124af565b91506124d5826124ba565b600082019050919050565b60006124eb826124bd565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061252b601e83611cb9565b9150612536826124f5565b602082019050919050565b6000602082019050818103600083015261255a8161251e565b9050919050565b600060c0820190506125766000830189611f5c565b6125836020830188611c84565b6125906040830187612388565b61259d6060830186612388565b6125aa6080830185611f5c565b6125b760a0830184611c84565b979650505050505050565b6000815190506125d181611dc3565b92915050565b6000806000606084860312156125f0576125ef611d60565b5b60006125fe868287016125c2565b935050602061260f868287016125c2565b9250506040612620868287016125c2565b9150509250925092565b600060408201905061263f6000830185611c84565b61264c6020830184611c84565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612689601b83611cb9565b915061269482612653565b602082019050919050565b600060208201905081810360008301526126b88161267c565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061271b602183611cb9565b9150612726826126bf565b604082019050919050565b6000602082019050818103600083015261274a8161270e565b905091905056fea2646970667358221220ac29731bec545fc780e70803efd920f5d5bec4390180fea2ca006e47f4ef121c64736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b3114610425578063a9059cbb14610450578063dd62ed3e1461048d578063e96fada2146104ca578063f1d5f517146104f5578063f887ea401461051e57610140565b80636ddd17131461035057806370a082311461037b578063715018a6146103b8578063893d20e8146103cf57806395d89b41146103fa57610140565b80632f54bf6e116100fd5780632f54bf6e14610240578063313ce5671461027d578063364333f4146102a857806352f7c988146102bf578063571ac8b0146102e85780636c0a24eb1461032557610140565b80630445b6671461014557806306fdde0314610170578063095ea7b31461019b57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610549565b6040516101679190611c93565b60405180910390f35b34801561017c57600080fd5b5061018561054f565b6040516101929190611d3e565b60405180910390f35b3480156101a757600080fd5b506101c260048036038101906101bd9190611def565b61058c565b6040516101cf9190611e4a565b60405180910390f35b3480156101e457600080fd5b506101ed61067e565b6040516101fa9190611c93565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190611e65565b610688565b6040516102379190611e4a565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190611eb8565b610888565b6040516102749190611e4a565b60405180910390f35b34801561028957600080fd5b506102926108e1565b60405161029f9190611f01565b60405180910390f35b3480156102b457600080fd5b506102bd6108ea565b005b3480156102cb57600080fd5b506102e660048036038101906102e19190611f1c565b610955565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190611eb8565b6109c5565b60405161031c9190611e4a565b60405180910390f35b34801561033157600080fd5b5061033a6109f8565b6040516103479190611c93565b60405180910390f35b34801561035c57600080fd5b506103656109fe565b6040516103729190611e4a565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d9190611eb8565b610a11565b6040516103af9190611c93565b60405180910390f35b3480156103c457600080fd5b506103cd610a5a565b005b3480156103db57600080fd5b506103e4610b1d565b6040516103f19190611f6b565b60405180910390f35b34801561040657600080fd5b5061040f610b46565b60405161041c9190611d3e565b60405180910390f35b34801561043157600080fd5b5061043a610b83565b6040516104479190611f6b565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190611def565b610ba9565b6040516104849190611e4a565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190611f86565b610bbe565b6040516104c19190611c93565b60405180910390f35b3480156104d657600080fd5b506104df610c45565b6040516104ec9190611f6b565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190611fc6565b610c6b565b005b34801561052a57600080fd5b50610533610cd7565b6040516105409190612052565b60405180910390f35b60105481565b60606040518060400160405280600781526020017f494b4947414d4900000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161066c9190611c93565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610874576107f3826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cfd9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61087f848484610d61565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610952573d6000803e3d6000fd5b50565b61095e33610888565b61099d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610994906120b9565b60405180910390fd5b8160098190555080600a81905550600a546009546109bb9190612108565b600b819055505050565b60006109f1827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61058c565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a6333610888565b610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a99906120b9565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610b139190611f6b565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f494b4947414d4900000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610bb6338484610d61565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c7433610888565b610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa906120b9565b60405180910390fd5b6103e881600354610cc4919061213c565b610cce91906121c5565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3c9190611d3e565b60405180910390fd5b5060008385610d5491906121f6565b9050809150509392505050565b6000601160009054906101000a900460ff1615610d8a57610d8384848461112a565b9050611123565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610e365750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f1f57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610edf575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610edc9190612108565b11155b610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f159061229c565b60405180910390fd5b5b610f276112fd565b15610f3557610f346113d4565b5b610fbe826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cfd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061100c85611910565b6110165782611021565b6110208584611967565b5b905061107581600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aab90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111159190611c93565b60405180910390a360019150505b9392505050565b60006111b5826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cfd9092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061124a82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aab90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ea9190611c93565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561136a5750601160009054906101000a900460ff16155b80156113825750600f60149054906101000a900460ff165b80156113cf5750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006114346002611426600b5461141860095487611b0990919063ffffffff16565b611b8390919063ffffffff16565b611b8390919063ffffffff16565b9050600061144b8284611bcd90919063ffffffff16565b90506000600267ffffffffffffffff81111561146a576114696122bc565b5b6040519080825280602002602001820160405280156114985781602001602082028036833780820191505090505b50905030816000815181106114b0576114af6122eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611557573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157b919061232f565b8160018151811061158f5761158e6122eb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611632959493929190612455565b600060405180830381600087803b15801561164c57600080fd5b505af1158015611660573d6000803e3d6000fd5b5050505060006116798247611bcd90919063ffffffff16565b905060006116a76116966002600954611b8390919063ffffffff16565b600b54611bcd90919063ffffffff16565b905060006116e560026116d7846116c960095488611b0990919063ffffffff16565b611b8390919063ffffffff16565b611b8390919063ffffffff16565b9050600061171083611702600a5487611b0990919063ffffffff16565b611b8390919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161175e906124e0565b600060405180830381858888f193505050503d806000811461179c576040519150601f19603f3d011682016040523d82523d6000602084013e6117a1565b606091505b50509050806117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90612541565b60405180910390fd5b60008911156118e957600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c60008073ce6346d91d1a976e038f1ed0ab55183dcdcdb5a7426040518863ffffffff1660e01b815260040161186996959493929190612561565b60606040518083038185885af1158015611887573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906118ac91906125d7565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516118e092919061262a565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611993600c54611985600b5486611b0990919063ffffffff16565b611b8390919063ffffffff16565b90506119e781600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aab90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a879190611c93565b60405180910390a3611aa28184611bcd90919063ffffffff16565b91505092915050565b6000808284611aba9190612108565b905083811015611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af69061269f565b60405180910390fd5b8091505092915050565b6000808303611b1b5760009050611b7d565b60008284611b29919061213c565b9050828482611b3891906121c5565b14611b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6f90612731565b60405180910390fd5b809150505b92915050565b6000611bc583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c17565b905092915050565b6000611c0f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cfd565b905092915050565b60008083118290611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c559190611d3e565b60405180910390fd5b5060008385611c6d91906121c5565b9050809150509392505050565b6000819050919050565b611c8d81611c7a565b82525050565b6000602082019050611ca86000830184611c84565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ce8578082015181840152602081019050611ccd565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d1082611cae565b611d1a8185611cb9565b9350611d2a818560208601611cca565b611d3381611cf4565b840191505092915050565b60006020820190508181036000830152611d588184611d05565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d9082611d65565b9050919050565b611da081611d85565b8114611dab57600080fd5b50565b600081359050611dbd81611d97565b92915050565b611dcc81611c7a565b8114611dd757600080fd5b50565b600081359050611de981611dc3565b92915050565b60008060408385031215611e0657611e05611d60565b5b6000611e1485828601611dae565b9250506020611e2585828601611dda565b9150509250929050565b60008115159050919050565b611e4481611e2f565b82525050565b6000602082019050611e5f6000830184611e3b565b92915050565b600080600060608486031215611e7e57611e7d611d60565b5b6000611e8c86828701611dae565b9350506020611e9d86828701611dae565b9250506040611eae86828701611dda565b9150509250925092565b600060208284031215611ece57611ecd611d60565b5b6000611edc84828501611dae565b91505092915050565b600060ff82169050919050565b611efb81611ee5565b82525050565b6000602082019050611f166000830184611ef2565b92915050565b60008060408385031215611f3357611f32611d60565b5b6000611f4185828601611dda565b9250506020611f5285828601611dda565b9150509250929050565b611f6581611d85565b82525050565b6000602082019050611f806000830184611f5c565b92915050565b60008060408385031215611f9d57611f9c611d60565b5b6000611fab85828601611dae565b9250506020611fbc85828601611dae565b9150509250929050565b600060208284031215611fdc57611fdb611d60565b5b6000611fea84828501611dda565b91505092915050565b6000819050919050565b600061201861201361200e84611d65565b611ff3565b611d65565b9050919050565b600061202a82611ffd565b9050919050565b600061203c8261201f565b9050919050565b61204c81612031565b82525050565b60006020820190506120676000830184612043565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006120a3600683611cb9565b91506120ae8261206d565b602082019050919050565b600060208201905081810360008301526120d281612096565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061211382611c7a565b915061211e83611c7a565b9250828201905080821115612136576121356120d9565b5b92915050565b600061214782611c7a565b915061215283611c7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561218b5761218a6120d9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121d082611c7a565b91506121db83611c7a565b9250826121eb576121ea612196565b5b828204905092915050565b600061220182611c7a565b915061220c83611c7a565b9250828203905081811115612224576122236120d9565b5b92915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612286602583611cb9565b91506122918261222a565b604082019050919050565b600060208201905081810360008301526122b581612279565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061232981611d97565b92915050565b60006020828403121561234557612344611d60565b5b60006123538482850161231a565b91505092915050565b6000819050919050565b600061238161237c6123778461235c565b611ff3565b611c7a565b9050919050565b61239181612366565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123cc81611d85565b82525050565b60006123de83836123c3565b60208301905092915050565b6000602082019050919050565b600061240282612397565b61240c81856123a2565b9350612417836123b3565b8060005b8381101561244857815161242f88826123d2565b975061243a836123ea565b92505060018101905061241b565b5085935050505092915050565b600060a08201905061246a6000830188611c84565b6124776020830187612388565b818103604083015261248981866123f7565b90506124986060830185611f5c565b6124a56080830184611c84565b9695505050505050565b600081905092915050565b50565b60006124ca6000836124af565b91506124d5826124ba565b600082019050919050565b60006124eb826124bd565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b600061252b601e83611cb9565b9150612536826124f5565b602082019050919050565b6000602082019050818103600083015261255a8161251e565b9050919050565b600060c0820190506125766000830189611f5c565b6125836020830188611c84565b6125906040830187612388565b61259d6060830186612388565b6125aa6080830185611f5c565b6125b760a0830184611c84565b979650505050505050565b6000815190506125d181611dc3565b92915050565b6000806000606084860312156125f0576125ef611d60565b5b60006125fe868287016125c2565b935050602061260f868287016125c2565b9250506040612620868287016125c2565b9150509250925092565b600060408201905061263f6000830185611c84565b61264c6020830184611c84565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612689601b83611cb9565b915061269482612653565b602082019050919050565b600060208201905081810360008301526126b88161267c565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061271b602183611cb9565b9150612726826126bf565b604082019050919050565b6000602082019050818103600083015261274a8161270e565b905091905056fea2646970667358221220ac29731bec545fc780e70803efd920f5d5bec4390180fea2ca006e47f4ef121c64736f6c63430008100033

Deployed Bytecode Sourcemap

4121:7752:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5134:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6220:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6642:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5950:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7160:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2359:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6044:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11302:118;;;;;;;;;;;;;:::i;:::-;;11578:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6866:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4518:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5097:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6390:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2468:131;;;;;;;;;;;;;:::i;:::-;;6306:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6130:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5069:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6996:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6501:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4949:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11428:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5038:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5134:56;;;;:::o;6220:80::-;6268:13;6292:5;;;;;;;;;;;;;;;;;6285:12;;6220:80;:::o;6642:216::-;6717:4;6769:6;6734:11;:23;6746:10;6734:23;;;;;;;;;;;;;;;:32;6758:7;6734:32;;;;;;;;;;;;;;;:41;;;;6812:7;6791:37;;6800:10;6791:37;;;6821:6;6791:37;;;;;;:::i;:::-;;;;;;;;6846:4;6839:11;;6642:216;;;;:::o;5950:88::-;6005:7;6023:12;;6016:19;;5950:88;:::o;7160:370::-;7260:4;7315:17;7280:11;:19;7292:6;7280:19;;;;;;;;;;;;;;;:31;7300:10;7280:31;;;;;;;;;;;;;;;;:52;7277:186;;7382:69;7418:6;7382:69;;;;;;;;;;;;;;;;;:11;:19;7394:6;7382:19;;;;;;;;;;;;;;;:31;7402:10;7382:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7348:11;:19;7360:6;7348:19;;;;;;;;;;;;;;;:31;7368:10;7348:31;;;;;;;;;;;;;;;:103;;;;7277:186;7482:40;7496:6;7504:9;7515:6;7482:13;:40::i;:::-;7475:47;;7160:370;;;;;:::o;2359:103::-;2414:4;2449:5;;;;;;;;;;;2438:16;;:7;:16;;;2431:23;;2359:103;;;:::o;6044:80::-;6096:5;4443:1;6105:16;;6044:80;:::o;11302:118::-;11359:20;;;;;;;;;;;11351:38;;:61;11390:21;11351:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11302:118::o;11578:220::-;2312:19;2320:10;2312:7;:19::i;:::-;2304:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11686:13:::1;11671:12;:28;;;;11727:13;11712:12;:28;;;;11778:12;;11763;;:27;;;;:::i;:::-;11752:8;:38;;;;11578:220:::0;;:::o;6866:122::-;6921:4;6945:35;6953:7;6962:17;6945:7;:35::i;:::-;6938:42;;6866:122;;;:::o;4518:60::-;;;;:::o;5097:30::-;;;;;;;;;;;;;:::o;6390:105::-;6456:7;6474:9;:18;6484:7;6474:18;;;;;;;;;;;;;;;;6467:25;;6390:105;;;:::o;2468:131::-;2312:19;2320:10;2312:7;:19::i;:::-;2304:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2541:1:::1;2525:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2559:32;2588:1;2559:32;;;;;;:::i;:::-;;;;;;;;2468:131::o:0;6306:78::-;6358:7;6376:5;;;;;;;;;;;6369:12;;6306:78;:::o;6130:84::-;6180:13;6204:7;;;;;;;;;;;;;;;;;6197:14;;6130:84;:::o;5069:19::-;;;;;;;;;;;;;:::o;6996:156::-;7076:4;7100:44;7114:10;7126:9;7137:6;7100:13;:44::i;:::-;7093:51;;6996:156;;;;:::o;6501:133::-;6585:7;6603:11;:19;6615:6;6603:19;;;;;;;;;;;;;;;:28;6623:7;6603:28;;;;;;;;;;;;;;;;6596:35;;6501:133;;;;:::o;4949:80::-;;;;;;;;;;;;;:::o;11428:142::-;2312:19;2320:10;2312:7;:19::i;:::-;2304:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11558:4:::1;11540:13;11525:12;;:28;;;;:::i;:::-;11524:38;;;;:::i;:::-;11505:16;:57;;;;11428:142:::0;:::o;5038:24::-;;;;;;;;;;;;;:::o;448:190::-;534:7;567:1;562;:6;;570:12;554:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;594:9;610:1;606;:5;;;;:::i;:::-;594:17;;629:1;622:8;;;448:190;;;;;:::o;7538:792::-;7630:4;7650:6;;;;;;;;;;;7647:63;;;7666:41;7681:6;7689:9;7700:6;7666:14;:41::i;:::-;7659:48;;;;7647:63;7747:4;;;;;;;;;;;7734:17;;:9;:17;;;;:38;;;;;7768:4;;;;;;;;;;;7755:17;;:9;:17;;;;7734:38;7730:200;;;7797:15;:26;7813:9;7797:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7860:16;;7850:6;7827:9;:20;7837:9;7827:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7797:79;7789:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7730:200;7953:16;:14;:16::i;:::-;7950:35;;;7972:10;:8;:10::i;:::-;7950:35;8018:53;8040:6;8018:53;;;;;;;;;;;;;;;;;:9;:17;8028:6;8018:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7998:9;:17;8008:6;7998:17;;;;;;;;;;;;;;;:73;;;;8084:22;8109:21;8123:6;8109:13;:21::i;:::-;:56;;8159:6;8109:56;;;8133:23;8141:6;8149;8133:7;:23::i;:::-;8109:56;8084:81;;8199:40;8224:14;8199:9;:20;8209:9;8199:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8176:9;:20;8186:9;8176:20;;;;;;;;;;;;;;;:63;;;;8274:9;8257:43;;8266:6;8257:43;;;8285:14;8257:43;;;;;;:::i;:::-;;;;;;;;8318:4;8311:11;;;7538:792;;;;;;:::o;8342:330::-;8435:4;8472:53;8494:6;8472:53;;;;;;;;;;;;;;;;;:9;:17;8482:6;8472:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8452:9;:17;8462:6;8452:17;;;;;;;;;;;;;;;:73;;;;8559:32;8584:6;8559:9;:20;8569:9;8559:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8536:9;:20;8546:9;8536:20;;;;;;;;;;;;;;;:55;;;;8624:9;8607:35;;8616:6;8607:35;;;8635:6;8607:35;;;;;;:::i;:::-;;;;;;;;8660:4;8653:11;;8342:330;;;;;:::o;9139:197::-;9188:4;9226;;;;;;;;;;;9212:18;;:10;:18;;;;:38;;;;;9244:6;;;;;;;;;;;9243:7;9212:38;:62;;;;;9263:11;;;;;;;;;;;9212:62;:116;;;;;9315:13;;9287:9;:24;9305:4;9287:24;;;;;;;;;;;;;;;;:41;;9212:116;9205:123;;9139:197;:::o;9344:1572::-;5253:4;5244:6;;:13;;;;;;;;;;;;;;;;;;9393:28:::1;9424:13;;9393:44;;9448:23;9474:59;9531:1;9474:52;9517:8;;9474:38;9499:12;;9474:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9448:85;;9544:20;9567:41;9592:15;9567:20;:24;;:41;;;;:::i;:::-;9544:64;;9621:21;9659:1;9645:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9621:40;;9690:4;9672;9677:1;9672:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9716:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9706:4;9711:1;9706:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9742:21;9766;9742:45;;9800:6;;;;;;;;;;;:57;;;9872:12;9899:1;9915:4;9942;9962:15;9800:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9999:17;10019:40;10045:13;10019:21;:25;;:40;;;;:::i;:::-;9999:60;;10070:19;10092:33;10105:19;10122:1;10105:12;;:16;;:19;;;;:::i;:::-;10092:8;;:12;;:33;;;;:::i;:::-;10070:55;;10136:26;10165:51;10214:1;10165:44;10197:11;10165:27;10179:12;;10165:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10136:80;;10227:26;10256:44;10288:11;10256:27;10270:12;;10256:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10227:73;;10316:21;10374:20;;;;;;;;;;;10366:34;;10408:18;10433:5;10366:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10315:128;;;10462:16;10454:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10547:1;10529:15;:19;10526:383;;;10564:6;;;;;;;;;;;:22;;;10594:18;10640:4;10664:15;10698:1;10718::::0;10738:42:::1;10799:15;10564:265;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10849:48;10861:18;10881:15;10849:48;;;;;;;:::i;:::-;;;;;;;;10526:383;9382:1534;;;;;;;;;;5271:5:::0;5262:6;;:14;;;;;;;;;;;;;;;;;;9344:1572::o;8680:114::-;8742:4;8767:11;:19;8779:6;8767:19;;;;;;;;;;;;;;;;;;;;;;;;;8766:20;8759:27;;8680:114;;;:::o;8802:329::-;8869:7;8889:17;8909:40;8934:14;;8909:20;8920:8;;8909:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;8889:60;;8987:39;9016:9;8987;:24;9005:4;8987:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8960:9;:24;8978:4;8960:24;;;;;;;;;;;;;;;:66;;;;9067:4;9042:42;;9051:6;9042:42;;;9074:9;9042:42;;;;;;:::i;:::-;;;;;;;;9102:21;9113:9;9102:6;:10;;:21;;;;:::i;:::-;9095:28;;;8802:329;;;;:::o;121:179::-;179:7;199:9;215:1;211;:5;;;;:::i;:::-;199:17;;240:1;235;:6;;227:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;291:1;284:8;;;121:179;;;;:::o;644:246::-;702:7;731:1;726;:6;722:47;;756:1;749:8;;;;722:47;779:9;795:1;791;:5;;;;:::i;:::-;779:17;;824:1;819;815;:5;;;;:::i;:::-;:10;807:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;881:1;874:8;;;644:246;;;;;:::o;896:132::-;954:7;981:39;985:1;988;981:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;974:46;;896:132;;;;:::o;306:136::-;364:7;391:43;395:1;398;391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;384:50;;306:136;;;;:::o;1034:189::-;1120:7;1152:1;1148;:5;1155:12;1140:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1179:9;1195:1;1191;:5;;;;:::i;:::-;1179:17;;1214:1;1207:8;;;1034: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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:329::-;6559:6;6608:2;6596:9;6587:7;6583:23;6579:32;6576:119;;;6614:79;;:::i;:::-;6576:119;6734:1;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6705:117;6500:329;;;;:::o;6835:60::-;6863:3;6884:5;6877:12;;6835:60;;;:::o;6901:142::-;6951:9;6984:53;7002:34;7011:24;7029:5;7011:24;:::i;:::-;7002:34;:::i;:::-;6984:53;:::i;:::-;6971:66;;6901:142;;;:::o;7049:126::-;7099:9;7132:37;7163:5;7132:37;:::i;:::-;7119:50;;7049:126;;;:::o;7181:144::-;7249:9;7282:37;7313:5;7282:37;:::i;:::-;7269:50;;7181:144;;;:::o;7331:167::-;7436:55;7485:5;7436:55;:::i;:::-;7431:3;7424:68;7331:167;;:::o;7504:258::-;7615:4;7653:2;7642:9;7638:18;7630:26;;7666:89;7752:1;7741:9;7737:17;7728:6;7666:89;:::i;:::-;7504:258;;;;:::o;7768:156::-;7908:8;7904:1;7896:6;7892:14;7885:32;7768:156;:::o;7930:365::-;8072:3;8093:66;8157:1;8152:3;8093:66;:::i;:::-;8086:73;;8168:93;8257:3;8168:93;:::i;:::-;8286:2;8281:3;8277:12;8270:19;;7930:365;;;:::o;8301:419::-;8467:4;8505:2;8494:9;8490:18;8482:26;;8554:9;8548:4;8544:20;8540:1;8529:9;8525:17;8518:47;8582:131;8708:4;8582:131;:::i;:::-;8574:139;;8301:419;;;:::o;8726:180::-;8774:77;8771:1;8764:88;8871:4;8868:1;8861:15;8895:4;8892:1;8885:15;8912:191;8952:3;8971:20;8989:1;8971:20;:::i;:::-;8966:25;;9005:20;9023:1;9005:20;:::i;:::-;9000:25;;9048:1;9045;9041:9;9034:16;;9069:3;9066:1;9063:10;9060:36;;;9076:18;;:::i;:::-;9060:36;8912:191;;;;:::o;9109:348::-;9149:7;9172:20;9190:1;9172:20;:::i;:::-;9167:25;;9206:20;9224:1;9206:20;:::i;:::-;9201:25;;9394:1;9326:66;9322:74;9319:1;9316:81;9311:1;9304:9;9297:17;9293:105;9290:131;;;9401:18;;:::i;:::-;9290:131;9449:1;9446;9442:9;9431:20;;9109:348;;;;:::o;9463:180::-;9511:77;9508:1;9501:88;9608:4;9605:1;9598:15;9632:4;9629:1;9622:15;9649:185;9689:1;9706:20;9724:1;9706:20;:::i;:::-;9701:25;;9740:20;9758:1;9740:20;:::i;:::-;9735:25;;9779:1;9769:35;;9784:18;;:::i;:::-;9769:35;9826:1;9823;9819:9;9814:14;;9649:185;;;;:::o;9840:194::-;9880:4;9900:20;9918:1;9900:20;:::i;:::-;9895:25;;9934:20;9952:1;9934:20;:::i;:::-;9929:25;;9978:1;9975;9971:9;9963:17;;10002:1;9996:4;9993:11;9990:37;;;10007:18;;:::i;:::-;9990:37;9840:194;;;;:::o;10040:224::-;10180:34;10176:1;10168:6;10164:14;10157:58;10249:7;10244:2;10236:6;10232:15;10225:32;10040:224;:::o;10270:366::-;10412:3;10433:67;10497:2;10492:3;10433:67;:::i;:::-;10426:74;;10509:93;10598:3;10509:93;:::i;:::-;10627:2;10622:3;10618:12;10611:19;;10270:366;;;:::o;10642:419::-;10808:4;10846:2;10835:9;10831:18;10823:26;;10895:9;10889:4;10885:20;10881:1;10870:9;10866:17;10859:47;10923:131;11049:4;10923:131;:::i;:::-;10915:139;;10642:419;;;:::o;11067:180::-;11115:77;11112:1;11105:88;11212:4;11209:1;11202:15;11236:4;11233:1;11226:15;11253:180;11301:77;11298:1;11291:88;11398:4;11395:1;11388:15;11422:4;11419:1;11412:15;11439:143;11496:5;11527:6;11521:13;11512:22;;11543:33;11570:5;11543:33;:::i;:::-;11439:143;;;;:::o;11588:351::-;11658:6;11707:2;11695:9;11686:7;11682:23;11678:32;11675:119;;;11713:79;;:::i;:::-;11675:119;11833:1;11858:64;11914:7;11905:6;11894:9;11890:22;11858:64;:::i;:::-;11848:74;;11804:128;11588:351;;;;:::o;11945:85::-;11990:7;12019:5;12008:16;;11945:85;;;:::o;12036:158::-;12094:9;12127:61;12145:42;12154:32;12180:5;12154:32;:::i;:::-;12145:42;:::i;:::-;12127:61;:::i;:::-;12114:74;;12036:158;;;:::o;12200:147::-;12295:45;12334:5;12295:45;:::i;:::-;12290:3;12283:58;12200:147;;:::o;12353:114::-;12420:6;12454:5;12448:12;12438:22;;12353:114;;;:::o;12473:184::-;12572:11;12606:6;12601:3;12594:19;12646:4;12641:3;12637:14;12622:29;;12473:184;;;;:::o;12663:132::-;12730:4;12753:3;12745:11;;12783:4;12778:3;12774:14;12766:22;;12663:132;;;:::o;12801:108::-;12878:24;12896:5;12878:24;:::i;:::-;12873:3;12866:37;12801:108;;:::o;12915:179::-;12984:10;13005:46;13047:3;13039:6;13005:46;:::i;:::-;13083:4;13078:3;13074:14;13060:28;;12915:179;;;;:::o;13100:113::-;13170:4;13202;13197:3;13193:14;13185:22;;13100:113;;;:::o;13249:732::-;13368:3;13397:54;13445:5;13397:54;:::i;:::-;13467:86;13546:6;13541:3;13467:86;:::i;:::-;13460:93;;13577:56;13627:5;13577:56;:::i;:::-;13656:7;13687:1;13672:284;13697:6;13694:1;13691:13;13672:284;;;13773:6;13767:13;13800:63;13859:3;13844:13;13800:63;:::i;:::-;13793:70;;13886:60;13939:6;13886:60;:::i;:::-;13876:70;;13732:224;13719:1;13716;13712:9;13707:14;;13672:284;;;13676:14;13972:3;13965:10;;13373:608;;;13249:732;;;;:::o;13987:831::-;14250:4;14288:3;14277:9;14273:19;14265:27;;14302:71;14370:1;14359:9;14355:17;14346:6;14302:71;:::i;:::-;14383:80;14459:2;14448:9;14444:18;14435:6;14383:80;:::i;:::-;14510:9;14504:4;14500:20;14495:2;14484:9;14480:18;14473:48;14538:108;14641:4;14632:6;14538:108;:::i;:::-;14530:116;;14656:72;14724:2;14713:9;14709:18;14700:6;14656:72;:::i;:::-;14738:73;14806:3;14795:9;14791:19;14782:6;14738:73;:::i;:::-;13987:831;;;;;;;;:::o;14824:147::-;14925:11;14962:3;14947:18;;14824:147;;;;:::o;14977:114::-;;:::o;15097:398::-;15256:3;15277:83;15358:1;15353:3;15277:83;:::i;:::-;15270:90;;15369:93;15458:3;15369:93;:::i;:::-;15487:1;15482:3;15478:11;15471:18;;15097:398;;;:::o;15501:379::-;15685:3;15707:147;15850:3;15707:147;:::i;:::-;15700:154;;15871:3;15864:10;;15501:379;;;:::o;15886:180::-;16026:32;16022:1;16014:6;16010:14;16003:56;15886:180;:::o;16072:366::-;16214:3;16235:67;16299:2;16294:3;16235:67;:::i;:::-;16228:74;;16311:93;16400:3;16311:93;:::i;:::-;16429:2;16424:3;16420:12;16413:19;;16072:366;;;:::o;16444:419::-;16610:4;16648:2;16637:9;16633:18;16625:26;;16697:9;16691:4;16687:20;16683:1;16672:9;16668:17;16661:47;16725:131;16851:4;16725:131;:::i;:::-;16717:139;;16444:419;;;:::o;16869:807::-;17118:4;17156:3;17145:9;17141:19;17133:27;;17170:71;17238:1;17227:9;17223:17;17214:6;17170:71;:::i;:::-;17251:72;17319:2;17308:9;17304:18;17295:6;17251:72;:::i;:::-;17333:80;17409:2;17398:9;17394:18;17385:6;17333:80;:::i;:::-;17423;17499:2;17488:9;17484:18;17475:6;17423:80;:::i;:::-;17513:73;17581:3;17570:9;17566:19;17557:6;17513:73;:::i;:::-;17596;17664:3;17653:9;17649:19;17640:6;17596:73;:::i;:::-;16869:807;;;;;;;;;:::o;17682:143::-;17739:5;17770:6;17764:13;17755:22;;17786:33;17813:5;17786:33;:::i;:::-;17682:143;;;;:::o;17831:663::-;17919:6;17927;17935;17984:2;17972:9;17963:7;17959:23;17955:32;17952:119;;;17990:79;;:::i;:::-;17952:119;18110:1;18135:64;18191:7;18182:6;18171:9;18167:22;18135:64;:::i;:::-;18125:74;;18081:128;18248:2;18274:64;18330:7;18321:6;18310:9;18306:22;18274:64;:::i;:::-;18264:74;;18219:129;18387:2;18413:64;18469:7;18460:6;18449:9;18445:22;18413:64;:::i;:::-;18403:74;;18358:129;17831:663;;;;;:::o;18500:332::-;18621:4;18659:2;18648:9;18644:18;18636:26;;18672:71;18740:1;18729:9;18725:17;18716:6;18672:71;:::i;:::-;18753:72;18821:2;18810:9;18806:18;18797:6;18753:72;:::i;:::-;18500:332;;;;;:::o;18838:177::-;18978:29;18974:1;18966:6;18962:14;18955:53;18838:177;:::o;19021:366::-;19163:3;19184:67;19248:2;19243:3;19184:67;:::i;:::-;19177:74;;19260:93;19349:3;19260:93;:::i;:::-;19378:2;19373:3;19369:12;19362:19;;19021:366;;;:::o;19393:419::-;19559:4;19597:2;19586:9;19582:18;19574:26;;19646:9;19640:4;19636:20;19632:1;19621:9;19617:17;19610:47;19674:131;19800:4;19674:131;:::i;:::-;19666:139;;19393:419;;;:::o;19818:220::-;19958:34;19954:1;19946:6;19942:14;19935:58;20027:3;20022:2;20014:6;20010:15;20003:28;19818:220;:::o;20044:366::-;20186:3;20207:67;20271:2;20266:3;20207:67;:::i;:::-;20200:74;;20283:93;20372:3;20283:93;:::i;:::-;20401:2;20396:3;20392:12;20385:19;;20044:366;;;:::o;20416:419::-;20582:4;20620:2;20609:9;20605:18;20597:26;;20669:9;20663:4;20659:20;20655:1;20644:9;20640:17;20633:47;20697:131;20823:4;20697:131;:::i;:::-;20689:139;;20416:419;;;:::o

Swarm Source

ipfs://ac29731bec545fc780e70803efd920f5d5bec4390180fea2ca006e47f4ef121c
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.