ETH Price: $2,406.45 (-0.75%)

Token

Centaurus Chain (CENTA)
 

Overview

Max Total Supply

100,000,000 CENTA

Holders

9

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,644,607.426992204 CENTA

Value
$0.00
0x3d62f95e529bd8569e274c1acaf9325358bc5ea0
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:
CentaurusChain

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

Website  | https://www.centachain.com/
Telegram | https://t.me/centachain

*/

// 
// 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 CentaurusChain is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Centaurus Chain";
    string constant _symbol = unicode"CENTA";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100_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 = 5;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address private marketingFeeReceiver = 0x917d5678851D98b9898F4633283cc744c8548771;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 1; // 
    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[0x917d5678851D98b9898F4633283cc744c8548771] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x917d5678851D98b9898F4633283cc744c8548771] = 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,
                0x917d5678851D98b9898F4633283cc744c8548771,
                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":"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"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000918565b6305f5e100620000bd919062000969565b600355606480600354620000d2919062000969565b620000de9190620009f9565b60045560006009556005600a55600a54600954620000fd919062000a31565b600b556064600c5573917d5678851d98b9898f4633283cc744c8548771600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff02191690831515021790555060016103e8600354620001899190620009f9565b62000195919062000969565b601055348015620001a557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df919062000af8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038e919062000af8565b306040518363ffffffff1660e01b8152600401620003ae92919062000b3b565b6020604051808303816000875af1158015620003ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f4919062000af8565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060016007600073917d5678851d98b9898f4633283cc744c854877173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600073917d5678851d98b9898f4633283cc744c854877173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200076f919062000b79565b60405180910390a35062000b96565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200080c57808604811115620007e457620007e36200077e565b5b6001851615620007f45780820291505b80810290506200080485620007ad565b9450620007c4565b94509492505050565b600082620008275760019050620008fa565b81620008375760009050620008fa565b81600181146200085057600281146200085b5762000891565b6001915050620008fa565b60ff84111562000870576200086f6200077e565b5b8360020a9150848211156200088a57620008896200077e565b5b50620008fa565b5060208310610133831016604e8410600b8410161715620008cb5782820a905083811115620008c557620008c46200077e565b5b620008fa565b620008da8484846001620007ba565b92509050818404811115620008f457620008f36200077e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009258262000901565b915062000932836200090b565b9250620009617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000815565b905092915050565b6000620009768262000901565b9150620009838362000901565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009bf57620009be6200077e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a068262000901565b915062000a138362000901565b92508262000a265762000a25620009ca565b5b828204905092915050565b600062000a3e8262000901565b915062000a4b8362000901565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000a835762000a826200077e565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ac08262000a93565b9050919050565b62000ad28162000ab3565b811462000ade57600080fd5b50565b60008151905062000af28162000ac7565b92915050565b60006020828403121562000b115762000b1062000a8e565b5b600062000b218482850162000ae1565b91505092915050565b62000b358162000ab3565b82525050565b600060408201905062000b52600083018562000b2a565b62000b61602083018462000b2a565b9392505050565b62000b738162000901565b82525050565b600060208201905062000b90600083018462000b68565b92915050565b6127568062000ba66000396000f3fe60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b41146103ef578063a8aa1b311461041a578063a9059cbb14610445578063dd62ed3e14610482578063f1d5f517146104bf578063f887ea40146104e857610135565b80636c0a24eb1461031a5780636ddd17131461034557806370a0823114610370578063715018a6146103ad578063893d20e8146103c457610135565b80632f54bf6e116100f25780632f54bf6e14610235578063313ce56714610272578063364333f41461029d57806352f7c988146102b4578063571ac8b0146102dd57610135565b80630445b6671461013a57806306fdde0314610165578063095ea7b31461019057806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610513565b60405161015c9190611c37565b60405180910390f35b34801561017157600080fd5b5061017a610519565b6040516101879190611ceb565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b29190611d9c565b610556565b6040516101c49190611df7565b60405180910390f35b3480156101d957600080fd5b506101e2610648565b6040516101ef9190611c37565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e12565b610652565b60405161022c9190611df7565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611e65565b610852565b6040516102699190611df7565b60405180910390f35b34801561027e57600080fd5b506102876108ab565b6040516102949190611eae565b60405180910390f35b3480156102a957600080fd5b506102b26108b4565b005b3480156102c057600080fd5b506102db60048036038101906102d69190611ec9565b61091f565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190611e65565b61098f565b6040516103119190611df7565b60405180910390f35b34801561032657600080fd5b5061032f6109c2565b60405161033c9190611c37565b60405180910390f35b34801561035157600080fd5b5061035a6109c8565b6040516103679190611df7565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190611e65565b6109db565b6040516103a49190611c37565b60405180910390f35b3480156103b957600080fd5b506103c2610a24565b005b3480156103d057600080fd5b506103d9610ae7565b6040516103e69190611f18565b60405180910390f35b3480156103fb57600080fd5b50610404610b10565b6040516104119190611ceb565b60405180910390f35b34801561042657600080fd5b5061042f610b4d565b60405161043c9190611f18565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190611d9c565b610b73565b6040516104799190611df7565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190611f33565b610b88565b6040516104b69190611c37565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190611f73565b610c0f565b005b3480156104f457600080fd5b506104fd610c7b565b60405161050a9190611fff565b60405180910390f35b60105481565b60606040518060400160405280600f81526020017f43656e74617572757320436861696e0000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106369190611c37565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461083e576107bd826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610849848484610d05565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561091c573d6000803e3d6000fd5b50565b61092833610852565b610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90612066565b60405180910390fd5b8160098190555080600a81905550600a5460095461098591906120b5565b600b819055505050565b60006109bb827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610556565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2d33610852565b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612066565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610add9190611f18565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f43454e5441000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b80338484610d05565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c1833610852565b610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612066565b60405180910390fd5b6103e881600354610c68919061210b565b610c729190612194565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09190611ceb565b60405180910390fd5b5060008385610cf891906121c5565b9050809150509392505050565b6000601160009054906101000a900460ff1615610d2e57610d278484846110ce565b90506110c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dda5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ec357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e83575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e8091906120b5565b11155b610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb99061226b565b60405180910390fd5b5b610ecb6112a1565b15610ed957610ed8611378565b5b610f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610fb0856118b4565b610fba5782610fc5565b610fc4858461190b565b5b905061101981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b99190611c37565b60405180910390a360019150505b9392505050565b6000611159826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161128e9190611c37565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561130e5750601160009054906101000a900460ff16155b80156113265750600f60149054906101000a900460ff165b80156113735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006113d860026113ca600b546113bc60095487611aad90919063ffffffff16565b611b2790919063ffffffff16565b611b2790919063ffffffff16565b905060006113ef8284611b7190919063ffffffff16565b90506000600267ffffffffffffffff81111561140e5761140d61228b565b5b60405190808252806020026020018201604052801561143c5781602001602082028036833780820191505090505b5090503081600081518110611454576114536122ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151f91906122fe565b81600181518110611533576115326122ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016115d6959493929190612424565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b50505050600061161d8247611b7190919063ffffffff16565b9050600061164b61163a6002600954611b2790919063ffffffff16565b600b54611b7190919063ffffffff16565b90506000611689600261167b8461166d60095488611aad90919063ffffffff16565b611b2790919063ffffffff16565b611b2790919063ffffffff16565b905060006116b4836116a6600a5487611aad90919063ffffffff16565b611b2790919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611702906124af565b600060405180830381858888f193505050503d8060008114611740576040519150601f19603f3d011682016040523d82523d6000602084013e611745565b606091505b5050905080611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090612510565b60405180910390fd5b600089111561188d57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c60008073917d5678851d98b9898f4633283cc744c8548771426040518863ffffffff1660e01b815260040161180d96959493929190612530565b60606040518083038185885af115801561182b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061185091906125a6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516118849291906125f9565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611937600c54611929600b5486611aad90919063ffffffff16565b611b2790919063ffffffff16565b905061198b81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a2b9190611c37565b60405180910390a3611a468184611b7190919063ffffffff16565b91505092915050565b6000808284611a5e91906120b5565b905083811015611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061266e565b60405180910390fd5b8091505092915050565b6000808303611abf5760009050611b21565b60008284611acd919061210b565b9050828482611adc9190612194565b14611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390612700565b60405180910390fd5b809150505b92915050565b6000611b6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bbb565b905092915050565b6000611bb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca1565b905092915050565b60008083118290611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf99190611ceb565b60405180910390fd5b5060008385611c119190612194565b9050809150509392505050565b6000819050919050565b611c3181611c1e565b82525050565b6000602082019050611c4c6000830184611c28565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c8c578082015181840152602081019050611c71565b83811115611c9b576000848401525b50505050565b6000601f19601f8301169050919050565b6000611cbd82611c52565b611cc78185611c5d565b9350611cd7818560208601611c6e565b611ce081611ca1565b840191505092915050565b60006020820190508181036000830152611d058184611cb2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d3d82611d12565b9050919050565b611d4d81611d32565b8114611d5857600080fd5b50565b600081359050611d6a81611d44565b92915050565b611d7981611c1e565b8114611d8457600080fd5b50565b600081359050611d9681611d70565b92915050565b60008060408385031215611db357611db2611d0d565b5b6000611dc185828601611d5b565b9250506020611dd285828601611d87565b9150509250929050565b60008115159050919050565b611df181611ddc565b82525050565b6000602082019050611e0c6000830184611de8565b92915050565b600080600060608486031215611e2b57611e2a611d0d565b5b6000611e3986828701611d5b565b9350506020611e4a86828701611d5b565b9250506040611e5b86828701611d87565b9150509250925092565b600060208284031215611e7b57611e7a611d0d565b5b6000611e8984828501611d5b565b91505092915050565b600060ff82169050919050565b611ea881611e92565b82525050565b6000602082019050611ec36000830184611e9f565b92915050565b60008060408385031215611ee057611edf611d0d565b5b6000611eee85828601611d87565b9250506020611eff85828601611d87565b9150509250929050565b611f1281611d32565b82525050565b6000602082019050611f2d6000830184611f09565b92915050565b60008060408385031215611f4a57611f49611d0d565b5b6000611f5885828601611d5b565b9250506020611f6985828601611d5b565b9150509250929050565b600060208284031215611f8957611f88611d0d565b5b6000611f9784828501611d87565b91505092915050565b6000819050919050565b6000611fc5611fc0611fbb84611d12565b611fa0565b611d12565b9050919050565b6000611fd782611faa565b9050919050565b6000611fe982611fcc565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612050600683611c5d565b915061205b8261201a565b602082019050919050565b6000602082019050818103600083015261207f81612043565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120c082611c1e565b91506120cb83611c1e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612100576120ff612086565b5b828201905092915050565b600061211682611c1e565b915061212183611c1e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561215a57612159612086565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061219f82611c1e565b91506121aa83611c1e565b9250826121ba576121b9612165565b5b828204905092915050565b60006121d082611c1e565b91506121db83611c1e565b9250828210156121ee576121ed612086565b5b828203905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612255602583611c5d565b9150612260826121f9565b604082019050919050565b6000602082019050818103600083015261228481612248565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506122f881611d44565b92915050565b60006020828403121561231457612313611d0d565b5b6000612322848285016122e9565b91505092915050565b6000819050919050565b600061235061234b6123468461232b565b611fa0565b611c1e565b9050919050565b61236081612335565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61239b81611d32565b82525050565b60006123ad8383612392565b60208301905092915050565b6000602082019050919050565b60006123d182612366565b6123db8185612371565b93506123e683612382565b8060005b838110156124175781516123fe88826123a1565b9750612409836123b9565b9250506001810190506123ea565b5085935050505092915050565b600060a0820190506124396000830188611c28565b6124466020830187612357565b818103604083015261245881866123c6565b90506124676060830185611f09565b6124746080830184611c28565b9695505050505050565b600081905092915050565b50565b600061249960008361247e565b91506124a482612489565b600082019050919050565b60006124ba8261248c565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006124fa601e83611c5d565b9150612505826124c4565b602082019050919050565b60006020820190508181036000830152612529816124ed565b9050919050565b600060c0820190506125456000830189611f09565b6125526020830188611c28565b61255f6040830187612357565b61256c6060830186612357565b6125796080830185611f09565b61258660a0830184611c28565b979650505050505050565b6000815190506125a081611d70565b92915050565b6000806000606084860312156125bf576125be611d0d565b5b60006125cd86828701612591565b93505060206125de86828701612591565b92505060406125ef86828701612591565b9150509250925092565b600060408201905061260e6000830185611c28565b61261b6020830184611c28565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612658601b83611c5d565b915061266382612622565b602082019050919050565b600060208201905081810360008301526126878161264b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006126ea602183611c5d565b91506126f58261268e565b604082019050919050565b60006020820190508181036000830152612719816126dd565b905091905056fea2646970667358221220297f4547aa4c7e2f00f3d5f36d06f51bb3645a710283084e624c3f35cf529b4f64736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b41146103ef578063a8aa1b311461041a578063a9059cbb14610445578063dd62ed3e14610482578063f1d5f517146104bf578063f887ea40146104e857610135565b80636c0a24eb1461031a5780636ddd17131461034557806370a0823114610370578063715018a6146103ad578063893d20e8146103c457610135565b80632f54bf6e116100f25780632f54bf6e14610235578063313ce56714610272578063364333f41461029d57806352f7c988146102b4578063571ac8b0146102dd57610135565b80630445b6671461013a57806306fdde0314610165578063095ea7b31461019057806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610513565b60405161015c9190611c37565b60405180910390f35b34801561017157600080fd5b5061017a610519565b6040516101879190611ceb565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b29190611d9c565b610556565b6040516101c49190611df7565b60405180910390f35b3480156101d957600080fd5b506101e2610648565b6040516101ef9190611c37565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e12565b610652565b60405161022c9190611df7565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611e65565b610852565b6040516102699190611df7565b60405180910390f35b34801561027e57600080fd5b506102876108ab565b6040516102949190611eae565b60405180910390f35b3480156102a957600080fd5b506102b26108b4565b005b3480156102c057600080fd5b506102db60048036038101906102d69190611ec9565b61091f565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190611e65565b61098f565b6040516103119190611df7565b60405180910390f35b34801561032657600080fd5b5061032f6109c2565b60405161033c9190611c37565b60405180910390f35b34801561035157600080fd5b5061035a6109c8565b6040516103679190611df7565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190611e65565b6109db565b6040516103a49190611c37565b60405180910390f35b3480156103b957600080fd5b506103c2610a24565b005b3480156103d057600080fd5b506103d9610ae7565b6040516103e69190611f18565b60405180910390f35b3480156103fb57600080fd5b50610404610b10565b6040516104119190611ceb565b60405180910390f35b34801561042657600080fd5b5061042f610b4d565b60405161043c9190611f18565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190611d9c565b610b73565b6040516104799190611df7565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190611f33565b610b88565b6040516104b69190611c37565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190611f73565b610c0f565b005b3480156104f457600080fd5b506104fd610c7b565b60405161050a9190611fff565b60405180910390f35b60105481565b60606040518060400160405280600f81526020017f43656e74617572757320436861696e0000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106369190611c37565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461083e576107bd826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610849848484610d05565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561091c573d6000803e3d6000fd5b50565b61092833610852565b610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90612066565b60405180910390fd5b8160098190555080600a81905550600a5460095461098591906120b5565b600b819055505050565b60006109bb827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610556565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2d33610852565b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612066565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610add9190611f18565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f43454e5441000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b80338484610d05565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c1833610852565b610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612066565b60405180910390fd5b6103e881600354610c68919061210b565b610c729190612194565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09190611ceb565b60405180910390fd5b5060008385610cf891906121c5565b9050809150509392505050565b6000601160009054906101000a900460ff1615610d2e57610d278484846110ce565b90506110c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dda5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ec357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e83575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e8091906120b5565b11155b610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb99061226b565b60405180910390fd5b5b610ecb6112a1565b15610ed957610ed8611378565b5b610f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610fb0856118b4565b610fba5782610fc5565b610fc4858461190b565b5b905061101981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b99190611c37565b60405180910390a360019150505b9392505050565b6000611159826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161128e9190611c37565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561130e5750601160009054906101000a900460ff16155b80156113265750600f60149054906101000a900460ff165b80156113735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006113d860026113ca600b546113bc60095487611aad90919063ffffffff16565b611b2790919063ffffffff16565b611b2790919063ffffffff16565b905060006113ef8284611b7190919063ffffffff16565b90506000600267ffffffffffffffff81111561140e5761140d61228b565b5b60405190808252806020026020018201604052801561143c5781602001602082028036833780820191505090505b5090503081600081518110611454576114536122ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151f91906122fe565b81600181518110611533576115326122ba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016115d6959493929190612424565b600060405180830381600087803b1580156115f057600080fd5b505af1158015611604573d6000803e3d6000fd5b50505050600061161d8247611b7190919063ffffffff16565b9050600061164b61163a6002600954611b2790919063ffffffff16565b600b54611b7190919063ffffffff16565b90506000611689600261167b8461166d60095488611aad90919063ffffffff16565b611b2790919063ffffffff16565b611b2790919063ffffffff16565b905060006116b4836116a6600a5487611aad90919063ffffffff16565b611b2790919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611702906124af565b600060405180830381858888f193505050503d8060008114611740576040519150601f19603f3d011682016040523d82523d6000602084013e611745565b606091505b5050905080611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090612510565b60405180910390fd5b600089111561188d57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c60008073917d5678851d98b9898f4633283cc744c8548771426040518863ffffffff1660e01b815260040161180d96959493929190612530565b60606040518083038185885af115801561182b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061185091906125a6565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516118849291906125f9565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611937600c54611929600b5486611aad90919063ffffffff16565b611b2790919063ffffffff16565b905061198b81600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4f90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a2b9190611c37565b60405180910390a3611a468184611b7190919063ffffffff16565b91505092915050565b6000808284611a5e91906120b5565b905083811015611aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9a9061266e565b60405180910390fd5b8091505092915050565b6000808303611abf5760009050611b21565b60008284611acd919061210b565b9050828482611adc9190612194565b14611b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1390612700565b60405180910390fd5b809150505b92915050565b6000611b6983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bbb565b905092915050565b6000611bb383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca1565b905092915050565b60008083118290611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf99190611ceb565b60405180910390fd5b5060008385611c119190612194565b9050809150509392505050565b6000819050919050565b611c3181611c1e565b82525050565b6000602082019050611c4c6000830184611c28565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c8c578082015181840152602081019050611c71565b83811115611c9b576000848401525b50505050565b6000601f19601f8301169050919050565b6000611cbd82611c52565b611cc78185611c5d565b9350611cd7818560208601611c6e565b611ce081611ca1565b840191505092915050565b60006020820190508181036000830152611d058184611cb2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d3d82611d12565b9050919050565b611d4d81611d32565b8114611d5857600080fd5b50565b600081359050611d6a81611d44565b92915050565b611d7981611c1e565b8114611d8457600080fd5b50565b600081359050611d9681611d70565b92915050565b60008060408385031215611db357611db2611d0d565b5b6000611dc185828601611d5b565b9250506020611dd285828601611d87565b9150509250929050565b60008115159050919050565b611df181611ddc565b82525050565b6000602082019050611e0c6000830184611de8565b92915050565b600080600060608486031215611e2b57611e2a611d0d565b5b6000611e3986828701611d5b565b9350506020611e4a86828701611d5b565b9250506040611e5b86828701611d87565b9150509250925092565b600060208284031215611e7b57611e7a611d0d565b5b6000611e8984828501611d5b565b91505092915050565b600060ff82169050919050565b611ea881611e92565b82525050565b6000602082019050611ec36000830184611e9f565b92915050565b60008060408385031215611ee057611edf611d0d565b5b6000611eee85828601611d87565b9250506020611eff85828601611d87565b9150509250929050565b611f1281611d32565b82525050565b6000602082019050611f2d6000830184611f09565b92915050565b60008060408385031215611f4a57611f49611d0d565b5b6000611f5885828601611d5b565b9250506020611f6985828601611d5b565b9150509250929050565b600060208284031215611f8957611f88611d0d565b5b6000611f9784828501611d87565b91505092915050565b6000819050919050565b6000611fc5611fc0611fbb84611d12565b611fa0565b611d12565b9050919050565b6000611fd782611faa565b9050919050565b6000611fe982611fcc565b9050919050565b611ff981611fde565b82525050565b60006020820190506120146000830184611ff0565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612050600683611c5d565b915061205b8261201a565b602082019050919050565b6000602082019050818103600083015261207f81612043565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120c082611c1e565b91506120cb83611c1e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612100576120ff612086565b5b828201905092915050565b600061211682611c1e565b915061212183611c1e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561215a57612159612086565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061219f82611c1e565b91506121aa83611c1e565b9250826121ba576121b9612165565b5b828204905092915050565b60006121d082611c1e565b91506121db83611c1e565b9250828210156121ee576121ed612086565b5b828203905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612255602583611c5d565b9150612260826121f9565b604082019050919050565b6000602082019050818103600083015261228481612248565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506122f881611d44565b92915050565b60006020828403121561231457612313611d0d565b5b6000612322848285016122e9565b91505092915050565b6000819050919050565b600061235061234b6123468461232b565b611fa0565b611c1e565b9050919050565b61236081612335565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61239b81611d32565b82525050565b60006123ad8383612392565b60208301905092915050565b6000602082019050919050565b60006123d182612366565b6123db8185612371565b93506123e683612382565b8060005b838110156124175781516123fe88826123a1565b9750612409836123b9565b9250506001810190506123ea565b5085935050505092915050565b600060a0820190506124396000830188611c28565b6124466020830187612357565b818103604083015261245881866123c6565b90506124676060830185611f09565b6124746080830184611c28565b9695505050505050565b600081905092915050565b50565b600061249960008361247e565b91506124a482612489565b600082019050919050565b60006124ba8261248c565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b60006124fa601e83611c5d565b9150612505826124c4565b602082019050919050565b60006020820190508181036000830152612529816124ed565b9050919050565b600060c0820190506125456000830189611f09565b6125526020830188611c28565b61255f6040830187612357565b61256c6060830186612357565b6125796080830185611f09565b61258660a0830184611c28565b979650505050505050565b6000815190506125a081611d70565b92915050565b6000806000606084860312156125bf576125be611d0d565b5b60006125cd86828701612591565b93505060206125de86828701612591565b92505060406125ef86828701612591565b9150509250925092565b600060408201905061260e6000830185611c28565b61261b6020830184611c28565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612658601b83611c5d565b915061266382612622565b602082019050919050565b600060208201905081810360008301526126878161264b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006126ea602183611c5d565b91506126f58261268e565b604082019050919050565b60006020820190508181036000830152612719816126dd565b905091905056fea2646970667358221220297f4547aa4c7e2f00f3d5f36d06f51bb3645a710283084e624c3f35cf529b4f64736f6c634300080f0033

Deployed Bytecode Sourcemap

4178:7763:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5207:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6288:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6710:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6018:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7228:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2416:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6112:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11370:118;;;;;;;;;;;;;:::i;:::-;;11646:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6934:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4591:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6458:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2525:131;;;;;;;;;;;;;:::i;:::-;;6374:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6198:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5142:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7064:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6569:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11496:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5111:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5207:54;;;;:::o;6288:80::-;6336:13;6360:5;;;;;;;;;;;;;;;;;6353:12;;6288:80;:::o;6710:216::-;6785:4;6837:6;6802:11;:23;6814:10;6802:23;;;;;;;;;;;;;;;:32;6826:7;6802:32;;;;;;;;;;;;;;;:41;;;;6880:7;6859:37;;6868:10;6859:37;;;6889:6;6859:37;;;;;;:::i;:::-;;;;;;;;6914:4;6907:11;;6710:216;;;;:::o;6018:88::-;6073:7;6091:12;;6084:19;;6018:88;:::o;7228:370::-;7328:4;7383:17;7348:11;:19;7360:6;7348:19;;;;;;;;;;;;;;;:31;7368:10;7348:31;;;;;;;;;;;;;;;;:52;7345:186;;7450:69;7486:6;7450:69;;;;;;;;;;;;;;;;;:11;:19;7462:6;7450:19;;;;;;;;;;;;;;;:31;7470:10;7450:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7416:11;:19;7428:6;7416:19;;;;;;;;;;;;;;;:31;7436:10;7416:31;;;;;;;;;;;;;;;:103;;;;7345:186;7550:40;7564:6;7572:9;7583:6;7550:13;:40::i;:::-;7543:47;;7228:370;;;;;:::o;2416:103::-;2471:4;2506:5;;;;;;;;;;;2495:16;;:7;:16;;;2488:23;;2416:103;;;:::o;6112:80::-;6164:5;4520:1;6173:16;;6112:80;:::o;11370:118::-;11427:20;;;;;;;;;;;11419:38;;:61;11458:21;11419:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11370:118::o;11646:220::-;2369:19;2377:10;2369:7;:19::i;:::-;2361:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11754:13:::1;11739:12;:28;;;;11795:13;11780:12;:28;;;;11846:12;;11831;;:27;;;;:::i;:::-;11820:8;:38;;;;11646:220:::0;;:::o;6934:122::-;6989:4;7013:35;7021:7;7030:17;7013:7;:35::i;:::-;7006:42;;6934:122;;;:::o;4591:60::-;;;;:::o;5170:30::-;;;;;;;;;;;;;:::o;6458:105::-;6524:7;6542:9;:18;6552:7;6542:18;;;;;;;;;;;;;;;;6535:25;;6458:105;;;:::o;2525:131::-;2369:19;2377:10;2369:7;:19::i;:::-;2361:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2598:1:::1;2582:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2616:32;2645:1;2616:32;;;;;;:::i;:::-;;;;;;;;2525:131::o:0;6374:78::-;6426:7;6444:5;;;;;;;;;;;6437:12;;6374:78;:::o;6198:84::-;6248:13;6272:7;;;;;;;;;;;;;;;;;6265:14;;6198:84;:::o;5142:19::-;;;;;;;;;;;;;:::o;7064:156::-;7144:4;7168:44;7182:10;7194:9;7205:6;7168:13;:44::i;:::-;7161:51;;7064:156;;;;:::o;6569:133::-;6653:7;6671:11;:19;6683:6;6671:19;;;;;;;;;;;;;;;:28;6691:7;6671:28;;;;;;;;;;;;;;;;6664:35;;6569:133;;;;:::o;11496:142::-;2369:19;2377:10;2369:7;:19::i;:::-;2361:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11626:4:::1;11608:13;11593:12;;:28;;;;:::i;:::-;11592:38;;;;:::i;:::-;11573:16;:57;;;;11496:142:::0;:::o;5111:24::-;;;;;;;;;;;;;:::o;505:190::-;591:7;624:1;619;:6;;627:12;611:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;651:9;667:1;663;:5;;;;:::i;:::-;651:17;;686:1;679:8;;;505:190;;;;;:::o;7606:792::-;7698:4;7718:6;;;;;;;;;;;7715:63;;;7734:41;7749:6;7757:9;7768:6;7734:14;:41::i;:::-;7727:48;;;;7715:63;7815:4;;;;;;;;;;;7802:17;;:9;:17;;;;:38;;;;;7836:4;;;;;;;;;;;7823:17;;:9;:17;;;;7802:38;7798:200;;;7865:15;:26;7881:9;7865:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7928:16;;7918:6;7895:9;:20;7905:9;7895:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7865:79;7857:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7798:200;8021:16;:14;:16::i;:::-;8018:35;;;8040:10;:8;:10::i;:::-;8018:35;8086:53;8108:6;8086:53;;;;;;;;;;;;;;;;;:9;:17;8096:6;8086:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8066:9;:17;8076:6;8066:17;;;;;;;;;;;;;;;:73;;;;8152:22;8177:21;8191:6;8177:13;:21::i;:::-;:56;;8227:6;8177:56;;;8201:23;8209:6;8217;8201:7;:23::i;:::-;8177:56;8152:81;;8267:40;8292:14;8267:9;:20;8277:9;8267:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8244:9;:20;8254:9;8244:20;;;;;;;;;;;;;;;:63;;;;8342:9;8325:43;;8334:6;8325:43;;;8353:14;8325:43;;;;;;:::i;:::-;;;;;;;;8386:4;8379:11;;;7606:792;;;;;;:::o;8410:330::-;8503:4;8540:53;8562:6;8540:53;;;;;;;;;;;;;;;;;:9;:17;8550:6;8540:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8520:9;:17;8530:6;8520:17;;;;;;;;;;;;;;;:73;;;;8627:32;8652:6;8627:9;:20;8637:9;8627:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8604:9;:20;8614:9;8604:20;;;;;;;;;;;;;;;:55;;;;8692:9;8675:35;;8684:6;8675:35;;;8703:6;8675:35;;;;;;:::i;:::-;;;;;;;;8728:4;8721:11;;8410:330;;;;;:::o;9207:197::-;9256:4;9294;;;;;;;;;;;9280:18;;:10;:18;;;;:38;;;;;9312:6;;;;;;;;;;;9311:7;9280:38;:62;;;;;9331:11;;;;;;;;;;;9280:62;:116;;;;;9383:13;;9355:9;:24;9373:4;9355:24;;;;;;;;;;;;;;;;:41;;9280:116;9273:123;;9207:197;:::o;9412:1572::-;5321:4;5312:6;;:13;;;;;;;;;;;;;;;;;;9461:28:::1;9492:13;;9461:44;;9516:23;9542:59;9599:1;9542:52;9585:8;;9542:38;9567:12;;9542:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9516:85;;9612:20;9635:41;9660:15;9635:20;:24;;:41;;;;:::i;:::-;9612:64;;9689:21;9727:1;9713:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9689:40;;9758:4;9740;9745:1;9740:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9784:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9774:4;9779:1;9774:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9810:21;9834;9810:45;;9868:6;;;;;;;;;;;:57;;;9940:12;9967:1;9983:4;10010;10030:15;9868:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10067:17;10087:40;10113:13;10087:21;:25;;:40;;;;:::i;:::-;10067:60;;10138:19;10160:33;10173:19;10190:1;10173:12;;:16;;:19;;;;:::i;:::-;10160:8;;:12;;:33;;;;:::i;:::-;10138:55;;10204:26;10233:51;10282:1;10233:44;10265:11;10233:27;10247:12;;10233:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10204:80;;10295:26;10324:44;10356:11;10324:27;10338:12;;10324:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10295:73;;10384:21;10442:20;;;;;;;;;;;10434:34;;10476:18;10501:5;10434:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10383:128;;;10530:16;10522:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10615:1;10597:15;:19;10594:383;;;10632:6;;;;;;;;;;;:22;;;10662:18;10708:4;10732:15;10766:1;10786::::0;10806:42:::1;10867:15;10632:265;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10917:48;10929:18;10949:15;10917:48;;;;;;;:::i;:::-;;;;;;;;10594:383;9450:1534;;;;;;;;;;5339:5:::0;5330:6;;:14;;;;;;;;;;;;;;;;;;9412:1572::o;8748:114::-;8810:4;8835:11;:19;8847:6;8835:19;;;;;;;;;;;;;;;;;;;;;;;;;8834:20;8827:27;;8748:114;;;:::o;8870:329::-;8937:7;8957:17;8977:40;9002:14;;8977:20;8988:8;;8977:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;8957:60;;9055:39;9084:9;9055;:24;9073:4;9055:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9028:9;:24;9046:4;9028:24;;;;;;;;;;;;;;;:66;;;;9135:4;9110:42;;9119:6;9110:42;;;9142:9;9110:42;;;;;;:::i;:::-;;;;;;;;9170:21;9181:9;9170:6;:10;;:21;;;;:::i;:::-;9163:28;;;8870:329;;;;:::o;178:179::-;236:7;256:9;272:1;268;:5;;;;:::i;:::-;256:17;;297:1;292;:6;;284:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;348:1;341:8;;;178:179;;;;:::o;701:246::-;759:7;788:1;783;:6;779:47;;813:1;806:8;;;;779:47;836:9;852:1;848;:5;;;;:::i;:::-;836:17;;881:1;876;872;:5;;;;:::i;:::-;:10;864:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;938:1;931:8;;;701:246;;;;;:::o;953:132::-;1011:7;1038:39;1042:1;1045;1038:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1031:46;;953:132;;;;:::o;363:136::-;421:7;448:43;452:1;455;448:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;441:50;;363:136;;;;:::o;1091:189::-;1177:7;1209:1;1205;:5;1212:12;1197:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1236:9;1252:1;1248;:5;;;;:::i;:::-;1236:17;;1271:1;1264:8;;;1091: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:474::-;5304:6;5312;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5614:2;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5585:118;5236:474;;;;;:::o;5716:118::-;5803:24;5821:5;5803:24;:::i;:::-;5798:3;5791:37;5716:118;;:::o;5840:222::-;5933:4;5971:2;5960:9;5956:18;5948:26;;5984:71;6052:1;6041:9;6037:17;6028:6;5984:71;:::i;:::-;5840:222;;;;:::o;6068:474::-;6136:6;6144;6193:2;6181:9;6172:7;6168:23;6164:32;6161:119;;;6199:79;;:::i;:::-;6161:119;6319:1;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6290:117;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;6068:474;;;;;:::o;6548:329::-;6607:6;6656:2;6644:9;6635:7;6631:23;6627:32;6624:119;;;6662:79;;:::i;:::-;6624:119;6782:1;6807:53;6852:7;6843:6;6832:9;6828:22;6807:53;:::i;:::-;6797:63;;6753:117;6548:329;;;;:::o;6883:60::-;6911:3;6932:5;6925:12;;6883:60;;;:::o;6949:142::-;6999:9;7032:53;7050:34;7059:24;7077:5;7059:24;:::i;:::-;7050:34;:::i;:::-;7032:53;:::i;:::-;7019:66;;6949:142;;;:::o;7097:126::-;7147:9;7180:37;7211:5;7180:37;:::i;:::-;7167:50;;7097:126;;;:::o;7229:144::-;7297:9;7330:37;7361:5;7330:37;:::i;:::-;7317:50;;7229:144;;;:::o;7379:167::-;7484:55;7533:5;7484:55;:::i;:::-;7479:3;7472:68;7379:167;;:::o;7552:258::-;7663:4;7701:2;7690:9;7686:18;7678:26;;7714:89;7800:1;7789:9;7785:17;7776:6;7714:89;:::i;:::-;7552:258;;;;:::o;7816:156::-;7956:8;7952:1;7944:6;7940:14;7933:32;7816:156;:::o;7978:365::-;8120:3;8141:66;8205:1;8200:3;8141:66;:::i;:::-;8134:73;;8216:93;8305:3;8216:93;:::i;:::-;8334:2;8329:3;8325:12;8318:19;;7978:365;;;:::o;8349:419::-;8515:4;8553:2;8542:9;8538:18;8530:26;;8602:9;8596:4;8592:20;8588:1;8577:9;8573:17;8566:47;8630:131;8756:4;8630:131;:::i;:::-;8622:139;;8349:419;;;:::o;8774:180::-;8822:77;8819:1;8812:88;8919:4;8916:1;8909:15;8943:4;8940:1;8933:15;8960:305;9000:3;9019:20;9037:1;9019:20;:::i;:::-;9014:25;;9053:20;9071:1;9053:20;:::i;:::-;9048:25;;9207:1;9139:66;9135:74;9132:1;9129:81;9126:107;;;9213:18;;:::i;:::-;9126:107;9257:1;9254;9250:9;9243:16;;8960:305;;;;:::o;9271:348::-;9311:7;9334:20;9352:1;9334:20;:::i;:::-;9329:25;;9368:20;9386:1;9368:20;:::i;:::-;9363:25;;9556:1;9488:66;9484:74;9481:1;9478:81;9473:1;9466:9;9459:17;9455:105;9452:131;;;9563:18;;:::i;:::-;9452:131;9611:1;9608;9604:9;9593:20;;9271:348;;;;:::o;9625:180::-;9673:77;9670:1;9663:88;9770:4;9767:1;9760:15;9794:4;9791:1;9784:15;9811:185;9851:1;9868:20;9886:1;9868:20;:::i;:::-;9863:25;;9902:20;9920:1;9902:20;:::i;:::-;9897:25;;9941:1;9931:35;;9946:18;;:::i;:::-;9931:35;9988:1;9985;9981:9;9976:14;;9811:185;;;;:::o;10002:191::-;10042:4;10062:20;10080:1;10062:20;:::i;:::-;10057:25;;10096:20;10114:1;10096:20;:::i;:::-;10091:25;;10135:1;10132;10129:8;10126:34;;;10140:18;;:::i;:::-;10126:34;10185:1;10182;10178:9;10170:17;;10002:191;;;;:::o;10199:224::-;10339:34;10335:1;10327:6;10323:14;10316:58;10408:7;10403:2;10395:6;10391:15;10384:32;10199:224;:::o;10429:366::-;10571:3;10592:67;10656:2;10651:3;10592:67;:::i;:::-;10585:74;;10668:93;10757:3;10668:93;:::i;:::-;10786:2;10781:3;10777:12;10770:19;;10429:366;;;:::o;10801:419::-;10967:4;11005:2;10994:9;10990:18;10982:26;;11054:9;11048:4;11044:20;11040:1;11029:9;11025:17;11018:47;11082:131;11208:4;11082:131;:::i;:::-;11074:139;;10801:419;;;:::o;11226:180::-;11274:77;11271:1;11264:88;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11412:180;11460:77;11457:1;11450:88;11557:4;11554:1;11547:15;11581:4;11578:1;11571:15;11598:143;11655:5;11686:6;11680:13;11671:22;;11702:33;11729:5;11702:33;:::i;:::-;11598:143;;;;:::o;11747:351::-;11817:6;11866:2;11854:9;11845:7;11841:23;11837:32;11834:119;;;11872:79;;:::i;:::-;11834:119;11992:1;12017:64;12073:7;12064:6;12053:9;12049:22;12017:64;:::i;:::-;12007:74;;11963:128;11747:351;;;;:::o;12104:85::-;12149:7;12178:5;12167:16;;12104:85;;;:::o;12195:158::-;12253:9;12286:61;12304:42;12313:32;12339:5;12313:32;:::i;:::-;12304:42;:::i;:::-;12286:61;:::i;:::-;12273:74;;12195:158;;;:::o;12359:147::-;12454:45;12493:5;12454:45;:::i;:::-;12449:3;12442:58;12359:147;;:::o;12512:114::-;12579:6;12613:5;12607:12;12597:22;;12512:114;;;:::o;12632:184::-;12731:11;12765:6;12760:3;12753:19;12805:4;12800:3;12796:14;12781:29;;12632:184;;;;:::o;12822:132::-;12889:4;12912:3;12904:11;;12942:4;12937:3;12933:14;12925:22;;12822:132;;;:::o;12960:108::-;13037:24;13055:5;13037:24;:::i;:::-;13032:3;13025:37;12960:108;;:::o;13074:179::-;13143:10;13164:46;13206:3;13198:6;13164:46;:::i;:::-;13242:4;13237:3;13233:14;13219:28;;13074:179;;;;:::o;13259:113::-;13329:4;13361;13356:3;13352:14;13344:22;;13259:113;;;:::o;13408:732::-;13527:3;13556:54;13604:5;13556:54;:::i;:::-;13626:86;13705:6;13700:3;13626:86;:::i;:::-;13619:93;;13736:56;13786:5;13736:56;:::i;:::-;13815:7;13846:1;13831:284;13856:6;13853:1;13850:13;13831:284;;;13932:6;13926:13;13959:63;14018:3;14003:13;13959:63;:::i;:::-;13952:70;;14045:60;14098:6;14045:60;:::i;:::-;14035:70;;13891:224;13878:1;13875;13871:9;13866:14;;13831:284;;;13835:14;14131:3;14124:10;;13532:608;;;13408:732;;;;:::o;14146:831::-;14409:4;14447:3;14436:9;14432:19;14424:27;;14461:71;14529:1;14518:9;14514:17;14505:6;14461:71;:::i;:::-;14542:80;14618:2;14607:9;14603:18;14594:6;14542:80;:::i;:::-;14669:9;14663:4;14659:20;14654:2;14643:9;14639:18;14632:48;14697:108;14800:4;14791:6;14697:108;:::i;:::-;14689:116;;14815:72;14883:2;14872:9;14868:18;14859:6;14815:72;:::i;:::-;14897:73;14965:3;14954:9;14950:19;14941:6;14897:73;:::i;:::-;14146:831;;;;;;;;:::o;14983:147::-;15084:11;15121:3;15106:18;;14983:147;;;;:::o;15136:114::-;;:::o;15256:398::-;15415:3;15436:83;15517:1;15512:3;15436:83;:::i;:::-;15429:90;;15528:93;15617:3;15528:93;:::i;:::-;15646:1;15641:3;15637:11;15630:18;;15256:398;;;:::o;15660:379::-;15844:3;15866:147;16009:3;15866:147;:::i;:::-;15859:154;;16030:3;16023:10;;15660:379;;;:::o;16045:180::-;16185:32;16181:1;16173:6;16169:14;16162:56;16045:180;:::o;16231:366::-;16373:3;16394:67;16458:2;16453:3;16394:67;:::i;:::-;16387:74;;16470:93;16559:3;16470:93;:::i;:::-;16588:2;16583:3;16579:12;16572:19;;16231:366;;;:::o;16603:419::-;16769:4;16807:2;16796:9;16792:18;16784:26;;16856:9;16850:4;16846:20;16842:1;16831:9;16827:17;16820:47;16884:131;17010:4;16884:131;:::i;:::-;16876:139;;16603:419;;;:::o;17028:807::-;17277:4;17315:3;17304:9;17300:19;17292:27;;17329:71;17397:1;17386:9;17382:17;17373:6;17329:71;:::i;:::-;17410:72;17478:2;17467:9;17463:18;17454:6;17410:72;:::i;:::-;17492:80;17568:2;17557:9;17553:18;17544:6;17492:80;:::i;:::-;17582;17658:2;17647:9;17643:18;17634:6;17582:80;:::i;:::-;17672:73;17740:3;17729:9;17725:19;17716:6;17672:73;:::i;:::-;17755;17823:3;17812:9;17808:19;17799:6;17755:73;:::i;:::-;17028:807;;;;;;;;;:::o;17841:143::-;17898:5;17929:6;17923:13;17914:22;;17945:33;17972:5;17945:33;:::i;:::-;17841:143;;;;:::o;17990:663::-;18078:6;18086;18094;18143:2;18131:9;18122:7;18118:23;18114:32;18111:119;;;18149:79;;:::i;:::-;18111:119;18269:1;18294:64;18350:7;18341:6;18330:9;18326:22;18294:64;:::i;:::-;18284:74;;18240:128;18407:2;18433:64;18489:7;18480:6;18469:9;18465:22;18433:64;:::i;:::-;18423:74;;18378:129;18546:2;18572:64;18628:7;18619:6;18608:9;18604:22;18572:64;:::i;:::-;18562:74;;18517:129;17990:663;;;;;:::o;18659:332::-;18780:4;18818:2;18807:9;18803:18;18795:26;;18831:71;18899:1;18888:9;18884:17;18875:6;18831:71;:::i;:::-;18912:72;18980:2;18969:9;18965:18;18956:6;18912:72;:::i;:::-;18659:332;;;;;:::o;18997:177::-;19137:29;19133:1;19125:6;19121:14;19114:53;18997:177;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:220::-;20117:34;20113:1;20105:6;20101:14;20094:58;20186:3;20181:2;20173:6;20169:15;20162:28;19977:220;:::o;20203:366::-;20345:3;20366:67;20430:2;20425:3;20366:67;:::i;:::-;20359:74;;20442:93;20531:3;20442:93;:::i;:::-;20560:2;20555:3;20551:12;20544:19;;20203:366;;;:::o;20575:419::-;20741:4;20779:2;20768:9;20764:18;20756:26;;20828:9;20822:4;20818:20;20814:1;20803:9;20799:17;20792:47;20856:131;20982:4;20856:131;:::i;:::-;20848:139;;20575:419;;;:::o

Swarm Source

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