ETH Price: $3,490.47 (+0.07%)
Gas: 2 Gwei

Token

Epidemic (EPI)
 

Overview

Max Total Supply

100,000,000 EPI

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
100,000 EPI

Value
$0.00
0xcec0d6245bca85eaf86918d6d02c49ca33a60e88
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:
Epidemic

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
 
To Join The Epidemic, You Must Be Referred And Hold 1 $EPI Token To Buy.

Refer Other Users And Earn 1% in $EPI From Their Volume!

https://www.epidemictoken.com/

https://t.me/EpidemicERC

https://twitter.com/EpidemicERC

███████╗██████╗ ██╗██████╗ ███████╗███╗   ███╗██╗ ██████╗
██╔════╝██╔══██╗██║██╔══██╗██╔════╝████╗ ████║██║██╔════╝
█████╗  ██████╔╝██║██║  ██║█████╗  ██╔████╔██║██║██║     
██╔══╝  ██╔═══╝ ██║██║  ██║██╔══╝  ██║╚██╔╝██║██║██║     
███████╗██║     ██║██████╔╝███████╗██║ ╚═╝ ██║██║╚██████╗
╚══════╝╚═╝     ╚═╝╚═════╝ ╚══════╝╚═╝     ╚═╝╚═╝ ╚═════╝
                                                         
*/
 
//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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

interface IERC20 {
    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 Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IUniswapV2Router {
    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 Epidemic is IERC20, Auth {
    using SafeMath for uint256;

    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Epidemic";
    string constant _symbol = "EPI";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000 * (10 ** _decimals);
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100; 
    uint256 public _minTransferForReferral = 1 * (10 ** _decimals); 

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    
    mapping (address => bool) isFeeExempt;
    mapping (address => address) public referrer; 
    mapping(address => bool) public isReferred;

    uint256 liquidityFee = 0;
    uint256 devFee = 0;
    uint256 marketingFee = 5;

    uint256 totalFee = 5;
    uint256 feeDenominator = 100;

    uint256 referralFee = 1;

    uint256 public minSupplyForReferralReward = (_totalSupply * 1) / 1000;
    
    address private marketingFeeReceiver = 0x386e3a4C2D5F9442a0E2D56CFFA138C28B243353;
    address private devFeeReceiver = 0x386e3a4C2D5F9442a0E2D56CFFA138C28B243353;

    IUniswapV2Router public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 3; // 0.3%

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    event ReferralBonus(address indexed feesTo , address indexed feesFrom , uint value);
    event Referred(address indexed referred,address indexed referrer);

    constructor () Auth(msg.sender) {
        router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //Router address
        pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[pair] = true;
        isFeeExempt[address(router)] = true;

        isReferred[_owner] = true;
        
        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }    

        if (recipient != pair && recipient != DEAD) {
            require(isFeeExempt[recipient] || _balances[recipient] + amount <= _maxWalletSize, "Transfer amount exceeds the bag size.");
        }

        uint256 amountReceived = amount; 
        
        if(sender == pair) { //buy
            if(!isFeeExempt[recipient]) {
                require(isReferred[recipient],"Not referred");
                amountReceived = takeReferralFees(recipient,amount);
            }

        } else if(recipient == pair) { //sell
            if(shouldTakeFee(sender)) {
                amountReceived = takeFee(sender, amount);
            }  

        } else if(isReferred[recipient]==false) {
            if(amount >= _minTransferForReferral) {
                isReferred[recipient] = true;
                referrer[recipient] = sender;
                emit Referred(recipient,sender);
            }
        } 
        
        if(shouldSwapBack()){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _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 takeReferralFees(address from,uint256 amount) internal returns(uint) {
        uint256 referralTokens = referralFee * amount / feeDenominator;
        if(_balances[referrer[from]] > minSupplyForReferralReward) {
            _balances[referrer[from]] = _balances[referrer[from]].add(referralTokens);
            emit ReferralBonus(referrer[from],from,referralTokens);
        } else {
             _balances[marketingFeeReceiver] = _balances[marketingFeeReceiver].add(referralTokens);
            emit ReferralBonus(marketingFeeReceiver,from,referralTokens);
        }

        return amount - referralTokens;
    }
    
    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 = balanceOf(address(this));
        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 amountETHDev = amountETH.mul(devFee).div(totalETHFee);
        uint256 amountETHMarketing = amountETH - amountETHLiquidity - amountETHDev;

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

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        if(tokenAmount > 0){
                router.addLiquidityETH{value: ETHAmount}(
                    address(this),
                    tokenAmount,
                    0,
                    0,
                    address(this),
                    block.timestamp
                );
                emit AutoLiquify(ETHAmount, tokenAmount);
            }
    }

    function setMaxWallet(uint256 amount) external onlyOwner() {
        require(amount >= _totalSupply / 1000 );
        _maxWalletSize = amount;
    }   

    function setMinimumBalanceForReferral(uint256 amount) external onlyOwner {
        minSupplyForReferralReward = amount;
    } 

    function setMinTransferForReferral(uint256 amount) external onlyOwner() {
        require(amount <= 1*(10**_decimals) );
        _minTransferForReferral = amount; 
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setReferralFee(uint256 newFee) external authorized {
        referralFee = newFee;
    }

    function setFees(uint256 _liquidityFee, uint256 _devFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        devFee = _devFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_devFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
    }

    function setFeeReceiver(address _marketingFeeReceiver, address _devFeeReceiver) external authorized {
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingFeeReceiver).transfer(contractETHBalance);
    }

    function transferForeignToken(address _token) public authorized {
        require(_token != address(this), "Can't let you take all native token");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        payable(marketingFeeReceiver).transfer(_contractBalance);
    }
        
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }
    
    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":"feesTo","type":"address"},{"indexed":true,"internalType":"address","name":"feesFrom","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ReferralBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referred","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"}],"name":"Referred","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minTransferForReferral","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isReferred","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minSupplyForReferralReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTransferForReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinimumBalanceForReferral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"setReferralFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","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":"_token","type":"address"}],"name":"transferForeignToken","outputs":[],"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"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000999190620009ba565b6305f5e100620000aa919062000af7565b60045560646002600454620000c0919062000af7565b620000cc919062000927565b6005556009600a620000df9190620009ba565b6001620000ed919062000af7565b6006556000600c556000600d556005600e556005600f55606460105560016011556103e8600160045462000122919062000af7565b6200012e919062000927565b60125573386e3a4c2d5f9442a0e2d56cffa138c28b243353601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073386e3a4c2d5f9442a0e2d56cffa138c28b243353601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601660146101000a81548160ff02191690831515021790555060036103e86004546200020a919062000927565b62000216919062000af7565b6017553480156200022657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037e57600080fd5b505afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000889565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043d57600080fd5b505afa15801562000452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000478919062000889565b306040518363ffffffff1660e01b815260040162000498929190620008dd565b602060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee919062000889565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200086391906200090a565b60405180910390a35062000c2d565b600081519050620008838162000c13565b92915050565b600060208284031215620008a257620008a162000c01565b5b6000620008b28482850162000872565b91505092915050565b620008c68162000b58565b82525050565b620008d78162000b8c565b82525050565b6000604082019050620008f46000830185620008bb565b620009036020830184620008bb565b9392505050565b6000602082019050620009216000830184620008cc565b92915050565b6000620009348262000b8c565b9150620009418362000b8c565b92508262000954576200095362000bd2565b5b828204905092915050565b6000808291508390505b6001851115620009b15780860481111562000989576200098862000ba3565b5b6001851615620009995780820291505b8081029050620009a98562000c06565b945062000969565b94509492505050565b6000620009c78262000b8c565b9150620009d48362000b96565b925062000a037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0b565b905092915050565b60008262000a1d576001905062000af0565b8162000a2d576000905062000af0565b816001811462000a46576002811462000a515762000a87565b600191505062000af0565b60ff84111562000a665762000a6562000ba3565b5b8360020a91508482111562000a805762000a7f62000ba3565b5b5062000af0565b5060208310610133831016604e8410600b841016171562000ac15782820a90508381111562000abb5762000aba62000ba3565b5b62000af0565b62000ad084848460016200095f565b9250905081840481111562000aea5762000ae962000ba3565b5b81810290505b9392505050565b600062000b048262000b8c565b915062000b118362000b8c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b4d5762000b4c62000ba3565b5b828202905092915050565b600062000b658262000b6c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c1e8162000b58565b811462000c2a57600080fd5b50565b6141498062000c3d6000396000f3fe6080604052600436106102295760003560e01c8063893d20e811610123578063de91b99e116100ab578063f0bc6cfb1161006f578063f0bc6cfb1461085e578063f2fde38b1461089b578063f4293890146108c4578063f887ea40146108db578063fe9fbb801461090657610230565b8063de91b99e14610791578063df20fd49146107ba578063e66db25e146107e3578063ea23a2b81461080c578063f0b37c041461083557610230565b8063a9059cbb116100f2578063a9059cbb14610688578063b6a5d7de146106c5578063d51ed1c8146106ee578063dc93cf701461072b578063dd62ed3e1461075457610230565b8063893d20e8146105dc5780638f9a55c01461060757806395d89b4114610632578063a8aa1b311461065d57610230565b8063313ce567116101b15780636ddd1713116101755780636ddd1713146104f75780636fcba3771461052257806370a082311461054b578063713494d71461058857806371d0979b146105b157610230565b8063313ce56714610412578063571ac8b01461043d5780635acbdedb1461047a5780635d0044ca146104a5578063658d4b7f146104ce57610230565b806318160ddd116101f857806318160ddd1461030557806323b872dd146103305780632b112e491461036d5780632cf003c2146103985780632f54bf6e146103d557610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780631161ae39146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610943565b6040516102579190613976565b60405180910390f35b34801561026c57600080fd5b50610275610949565b6040516102829190613854565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad919061333c565b610986565b6040516102bf919061381e565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613416565b610a78565b6040516102fc919061381e565b60405180910390f35b34801561031157600080fd5b5061031a610a8d565b6040516103279190613976565b60405180910390f35b34801561033c57600080fd5b50610357600480360381019061035291906132a9565b610a97565b604051610364919061381e565b60405180910390f35b34801561037957600080fd5b50610382610c97565b60405161038f9190613976565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906131e2565b610d19565b6040516103cc9190613787565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f791906131e2565b610d4c565b604051610409919061381e565b60405180910390f35b34801561041e57600080fd5b50610427610da5565b6040516104349190613a14565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f91906131e2565b610dae565b604051610471919061381e565b60405180910390f35b34801561048657600080fd5b5061048f610de1565b60405161049c9190613976565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c791906133bc565b610de7565b005b3480156104da57600080fd5b506104f560048036038101906104f091906132fc565b610e55565b005b34801561050357600080fd5b5061050c610ef8565b604051610519919061381e565b60405180910390f35b34801561052e57600080fd5b50610549600480360381019061054491906134a9565b610f0b565b005b34801561055757600080fd5b50610572600480360381019061056d91906131e2565b610fa0565b60405161057f9190613976565b60405180910390f35b34801561059457600080fd5b506105af60048036038101906105aa91906133bc565b610fe9565b005b3480156105bd57600080fd5b506105c661103b565b6040516105d39190613976565b60405180910390f35b3480156105e857600080fd5b506105f1611041565b6040516105fe9190613787565b60405180910390f35b34801561061357600080fd5b5061061c61106a565b6040516106299190613976565b60405180910390f35b34801561063e57600080fd5b50610647611070565b6040516106549190613854565b60405180910390f35b34801561066957600080fd5b506106726110ad565b60405161067f9190613787565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa919061333c565b6110d3565b6040516106bc919061381e565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e791906131e2565b6110e8565b005b3480156106fa57600080fd5b50610715600480360381019061071091906133bc565b61118a565b6040516107229190613976565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d91906131e2565b6111fc565b005b34801561076057600080fd5b5061077b60048036038101906107769190613269565b6113ad565b6040516107889190613976565b60405180910390f35b34801561079d57600080fd5b506107b860048036038101906107b391906133bc565b611434565b005b3480156107c657600080fd5b506107e160048036038101906107dc919061337c565b611486565b005b3480156107ef57600080fd5b5061080a60048036038101906108059190613269565b6114f3565b005b34801561081857600080fd5b50610833600480360381019061082e91906133bc565b6115c1565b005b34801561084157600080fd5b5061085c600480360381019061085791906131e2565b611639565b005b34801561086a57600080fd5b50610885600480360381019061088091906131e2565b6116dc565b604051610892919061381e565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd919061323c565b6116fc565b005b3480156108d057600080fd5b506108d9611815565b005b3480156108e757600080fd5b506108f06118ce565b6040516108fd9190613839565b60405180910390f35b34801561091257600080fd5b5061092d600480360381019061092891906131e2565b6118f4565b60405161093a919061381e565b60405180910390f35b60175481565b60606040518060400160405280600881526020017f45706964656d6963000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a669190613976565b60405180910390a36001905092915050565b600082610a848361118a565b11905092915050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8357610c02826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c8e8484846119ae565b90509392505050565b6000610d14610cc7600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fa0565b610d06610cf5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fa0565b6004546120ab90919063ffffffff16565b6120ab90919063ffffffff16565b905090565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610dda827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b9050919050565b60125481565b610df033610d4c565b610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2690613936565b60405180910390fd5b6103e8600454610e3f9190613ae5565b811015610e4b57600080fd5b8060058190555050565b610e5e336118f4565b610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490613956565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660149054906101000a900460ff1681565b610f14336118f4565b610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613956565b60405180910390fd5b83600c8190555082600d8190555081600e81905550610f8d82610f7f85876120f590919063ffffffff16565b6120f590919063ffffffff16565b600f819055508060108190555050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ff2336118f4565b611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613956565b60405180910390fd5b8060118190555050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600381526020017f4550490000000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006110e03384846119ae565b905092915050565b6110f133610d4c565b611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790613936565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006111f5611197610c97565b6111e76111d860026111ca601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fa0565b61215390919063ffffffff16565b8561215390919063ffffffff16565b6121ce90919063ffffffff16565b9050919050565b611205336118f4565b611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613956565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90613896565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112ee9190613787565b60206040518083038186803b15801561130657600080fd5b505afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e91906133e9565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113a8573d6000803e3d6000fd5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61143d33610d4c565b61147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613936565b60405180910390fd5b8060128190555050565b61148f336118f4565b6114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c590613956565b60405180910390fd5b81601660146101000a81548160ff021916908315150217905550806017819055505050565b6114fc336118f4565b61153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290613956565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6115ca33610d4c565b611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613936565b60405180910390fd5b6009600a6116179190613b69565b60016116239190613c87565b81111561162f57600080fd5b8060068190555050565b61164233610d4c565b611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890613936565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61170533610d4c565b611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90613936565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161180a91906137a2565b60405180910390a150565b61181e336118f4565b61185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613956565b60405180910390fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118ca573d6000803e3d6000fd5b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119899190613854565b60405180910390fd5b50600083856119a19190613ce1565b9050809150509392505050565b6000601860009054906101000a900460ff16156119d7576119d0848484612218565b90506120a4565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a835750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6c57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b2c575060055482600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b299190613a8f565b11155b611b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6290613876565b60405180910390fd5b5b6000829050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611cb657600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cb157600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b906138f6565b60405180910390fd5b611cae84846123eb565b90505b611ec2565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d2c57611d1585612845565b15611d2757611d24858461289c565b90505b611ec1565b60001515600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611ec0576006548310611ebf576001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555084600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2c07cd45454a31c572d49686c5ec6fef884778b2cf441c7fd58f4bde0fa6400b60405160405180910390a35b5b5b5b611eca6129e0565b15611ed857611ed7612ab7565b5b611f61836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9092919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff681600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120969190613976565b60405180910390a360019150505b9392505050565b60006120ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061194a565b905092915050565b60008082846121049190613a8f565b905083811015612149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612140906138b6565b60405180910390fd5b8091505092915050565b60008083141561216657600090506121c8565b600082846121749190613c87565b90508284826121839190613ae5565b146121c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ba90613916565b60405180910390fd5b809150505b92915050565b600061221083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ffe565b905092915050565b60006122a3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233882600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d89190613976565b60405180910390a3600190509392505050565b600080601054836011546123ff9190613c87565b6124099190613ae5565b905060125460076000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156126cf576125648160076000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b60076000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630836040516126c29190613976565b60405180910390a3612830565b6127438160076000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b60076000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630836040516128279190613976565b60405180910390a35b808361283c9190613ce1565b91505092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806128c86010546128ba600f548661215390919063ffffffff16565b6121ce90919063ffffffff16565b905061291c81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129bc9190613976565b60405180910390a36129d781846120ab90919063ffffffff16565b91505092915050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a4d5750601860009054906101000a900460ff16155b8015612a655750601660149054906101000a900460ff165b8015612ab25750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601860006101000a81548160ff0219169083151502179055506000612add30610fa0565b90506000612b1d6002612b0f600f54612b01600c548761215390919063ffffffff16565b6121ce90919063ffffffff16565b6121ce90919063ffffffff16565b90506000612b3482846120ab90919063ffffffff16565b90506000600267ffffffffffffffff811115612b5357612b52613ea8565b5b604051908082528060200260200182016040528015612b815781602001602082028036833780820191505090505b5090503081600081518110612b9957612b98613e79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3b57600080fd5b505afa158015612c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c73919061320f565b81600181518110612c8757612c86613e79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612d2a959493929190613991565b600060405180830381600087803b158015612d4457600080fd5b505af1158015612d58573d6000803e3d6000fd5b505050506000612d7182476120ab90919063ffffffff16565b90506000612d9f612d8e6002600c546121ce90919063ffffffff16565b600f546120ab90919063ffffffff16565b90506000612ddd6002612dcf84612dc1600c548861215390919063ffffffff16565b6121ce90919063ffffffff16565b6121ce90919063ffffffff16565b90506000612e0883612dfa600d548761215390919063ffffffff16565b6121ce90919063ffffffff16565b90506000818386612e199190613ce1565b612e239190613ce1565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612e7190613772565b600060405180830381858888f193505050503d8060008114612eaf576040519150601f19603f3d011682016040523d82523d6000602084013e612eb4565b606091505b5050905080612ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eef906138d6565b60405180910390fd5b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612f4490613772565b600060405180830381858888f193505050503d8060008114612f82576040519150601f19603f3d011682016040523d82523d6000602084013e612f87565b606091505b5050905080612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc2906138d6565b60405180910390fd5b612fd58b86613061565b5050505050505050505050506000601860006101000a81548160ff021916908315150217905550565b60008083118290613045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303c9190613854565b60405180910390fd5b50600083856130549190613ae5565b9050809150509392505050565b600082111561316057601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016130d1969594939291906137bd565b6060604051808303818588803b1580156130ea57600080fd5b505af11580156130fe573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131239190613456565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516131579291906139eb565b60405180910390a15b5050565b600081359050613173816140b7565b92915050565b600081519050613188816140b7565b92915050565b60008135905061319d816140ce565b92915050565b6000813590506131b2816140e5565b92915050565b6000813590506131c7816140fc565b92915050565b6000815190506131dc816140fc565b92915050565b6000602082840312156131f8576131f7613ed7565b5b600061320684828501613164565b91505092915050565b60006020828403121561322557613224613ed7565b5b600061323384828501613179565b91505092915050565b60006020828403121561325257613251613ed7565b5b60006132608482850161318e565b91505092915050565b600080604083850312156132805761327f613ed7565b5b600061328e85828601613164565b925050602061329f85828601613164565b9150509250929050565b6000806000606084860312156132c2576132c1613ed7565b5b60006132d086828701613164565b93505060206132e186828701613164565b92505060406132f2868287016131b8565b9150509250925092565b6000806040838503121561331357613312613ed7565b5b600061332185828601613164565b9250506020613332858286016131a3565b9150509250929050565b6000806040838503121561335357613352613ed7565b5b600061336185828601613164565b9250506020613372858286016131b8565b9150509250929050565b6000806040838503121561339357613392613ed7565b5b60006133a1858286016131a3565b92505060206133b2858286016131b8565b9150509250929050565b6000602082840312156133d2576133d1613ed7565b5b60006133e0848285016131b8565b91505092915050565b6000602082840312156133ff576133fe613ed7565b5b600061340d848285016131cd565b91505092915050565b6000806040838503121561342d5761342c613ed7565b5b600061343b858286016131b8565b925050602061344c858286016131b8565b9150509250929050565b60008060006060848603121561346f5761346e613ed7565b5b600061347d868287016131cd565b935050602061348e868287016131cd565b925050604061349f868287016131cd565b9150509250925092565b600080600080608085870312156134c3576134c2613ed7565b5b60006134d1878288016131b8565b94505060206134e2878288016131b8565b93505060406134f3878288016131b8565b9250506060613504878288016131b8565b91505092959194509250565b600061351c8383613537565b60208301905092915050565b61353181613d7c565b82525050565b61354081613d15565b82525050565b61354f81613d15565b82525050565b600061356082613a3f565b61356a8185613a62565b935061357583613a2f565b8060005b838110156135a657815161358d8882613510565b975061359883613a55565b925050600181019050613579565b5085935050505092915050565b6135bc81613d39565b82525050565b6135cb81613d8e565b82525050565b6135da81613db2565b82525050565b60006135eb82613a4a565b6135f58185613a7e565b9350613605818560208601613de8565b61360e81613edc565b840191505092915050565b6000613626602583613a7e565b915061363182613efa565b604082019050919050565b6000613649602383613a7e565b915061365482613f49565b604082019050919050565b600061366c601b83613a7e565b915061367782613f98565b602082019050919050565b600061368f601e83613a7e565b915061369a82613fc1565b602082019050919050565b60006136b2600c83613a7e565b91506136bd82613fea565b602082019050919050565b60006136d5602183613a7e565b91506136e082614013565b604082019050919050565b60006136f8600683613a7e565b915061370382614062565b602082019050919050565b600061371b600083613a73565b91506137268261408b565b600082019050919050565b600061373e600b83613a7e565b91506137498261408e565b602082019050919050565b61375d81613d65565b82525050565b61376c81613d6f565b82525050565b600061377d8261370e565b9150819050919050565b600060208201905061379c6000830184613546565b92915050565b60006020820190506137b76000830184613528565b92915050565b600060c0820190506137d26000830189613546565b6137df6020830188613754565b6137ec60408301876135d1565b6137f960608301866135d1565b6138066080830185613546565b61381360a0830184613754565b979650505050505050565b600060208201905061383360008301846135b3565b92915050565b600060208201905061384e60008301846135c2565b92915050565b6000602082019050818103600083015261386e81846135e0565b905092915050565b6000602082019050818103600083015261388f81613619565b9050919050565b600060208201905081810360008301526138af8161363c565b9050919050565b600060208201905081810360008301526138cf8161365f565b9050919050565b600060208201905081810360008301526138ef81613682565b9050919050565b6000602082019050818103600083015261390f816136a5565b9050919050565b6000602082019050818103600083015261392f816136c8565b9050919050565b6000602082019050818103600083015261394f816136eb565b9050919050565b6000602082019050818103600083015261396f81613731565b9050919050565b600060208201905061398b6000830184613754565b92915050565b600060a0820190506139a66000830188613754565b6139b360208301876135d1565b81810360408301526139c58186613555565b90506139d46060830185613546565b6139e16080830184613754565b9695505050505050565b6000604082019050613a006000830185613754565b613a0d6020830184613754565b9392505050565b6000602082019050613a296000830184613763565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613a9a82613d65565b9150613aa583613d65565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ada57613ad9613e1b565b5b828201905092915050565b6000613af082613d65565b9150613afb83613d65565b925082613b0b57613b0a613e4a565b5b828204905092915050565b6000808291508390505b6001851115613b6057808604811115613b3c57613b3b613e1b565b5b6001851615613b4b5780820291505b8081029050613b5985613eed565b9450613b20565b94509492505050565b6000613b7482613d65565b9150613b7f83613d6f565b9250613bac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bb4565b905092915050565b600082613bc45760019050613c80565b81613bd25760009050613c80565b8160018114613be85760028114613bf257613c21565b6001915050613c80565b60ff841115613c0457613c03613e1b565b5b8360020a915084821115613c1b57613c1a613e1b565b5b50613c80565b5060208310610133831016604e8410600b8410161715613c565782820a905083811115613c5157613c50613e1b565b5b613c80565b613c638484846001613b16565b92509050818404811115613c7a57613c79613e1b565b5b81810290505b9392505050565b6000613c9282613d65565b9150613c9d83613d65565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd657613cd5613e1b565b5b828202905092915050565b6000613cec82613d65565b9150613cf783613d65565b925082821015613d0a57613d09613e1b565b5b828203905092915050565b6000613d2082613d45565b9050919050565b6000613d3282613d45565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d8782613dc4565b9050919050565b6000613d9982613da0565b9050919050565b6000613dab82613d45565b9050919050565b6000613dbd82613d65565b9050919050565b6000613dcf82613dd6565b9050919050565b6000613de182613d45565b9050919050565b60005b83811015613e06578082015181840152602081019050613deb565b83811115613e15576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f4e6f742072656665727265640000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6140c081613d15565b81146140cb57600080fd5b50565b6140d781613d27565b81146140e257600080fd5b50565b6140ee81613d39565b81146140f957600080fd5b50565b61410581613d65565b811461411057600080fd5b5056fea26469706673582212206da100dfcb520bf03524468c917b507ae2d67b8b657fb56e18e3464a5512e29064736f6c63430008050033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063893d20e811610123578063de91b99e116100ab578063f0bc6cfb1161006f578063f0bc6cfb1461085e578063f2fde38b1461089b578063f4293890146108c4578063f887ea40146108db578063fe9fbb801461090657610230565b8063de91b99e14610791578063df20fd49146107ba578063e66db25e146107e3578063ea23a2b81461080c578063f0b37c041461083557610230565b8063a9059cbb116100f2578063a9059cbb14610688578063b6a5d7de146106c5578063d51ed1c8146106ee578063dc93cf701461072b578063dd62ed3e1461075457610230565b8063893d20e8146105dc5780638f9a55c01461060757806395d89b4114610632578063a8aa1b311461065d57610230565b8063313ce567116101b15780636ddd1713116101755780636ddd1713146104f75780636fcba3771461052257806370a082311461054b578063713494d71461058857806371d0979b146105b157610230565b8063313ce56714610412578063571ac8b01461043d5780635acbdedb1461047a5780635d0044ca146104a5578063658d4b7f146104ce57610230565b806318160ddd116101f857806318160ddd1461030557806323b872dd146103305780632b112e491461036d5780632cf003c2146103985780632f54bf6e146103d557610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780631161ae39146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a610943565b6040516102579190613976565b60405180910390f35b34801561026c57600080fd5b50610275610949565b6040516102829190613854565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad919061333c565b610986565b6040516102bf919061381e565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190613416565b610a78565b6040516102fc919061381e565b60405180910390f35b34801561031157600080fd5b5061031a610a8d565b6040516103279190613976565b60405180910390f35b34801561033c57600080fd5b50610357600480360381019061035291906132a9565b610a97565b604051610364919061381e565b60405180910390f35b34801561037957600080fd5b50610382610c97565b60405161038f9190613976565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906131e2565b610d19565b6040516103cc9190613787565b60405180910390f35b3480156103e157600080fd5b506103fc60048036038101906103f791906131e2565b610d4c565b604051610409919061381e565b60405180910390f35b34801561041e57600080fd5b50610427610da5565b6040516104349190613a14565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f91906131e2565b610dae565b604051610471919061381e565b60405180910390f35b34801561048657600080fd5b5061048f610de1565b60405161049c9190613976565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c791906133bc565b610de7565b005b3480156104da57600080fd5b506104f560048036038101906104f091906132fc565b610e55565b005b34801561050357600080fd5b5061050c610ef8565b604051610519919061381e565b60405180910390f35b34801561052e57600080fd5b50610549600480360381019061054491906134a9565b610f0b565b005b34801561055757600080fd5b50610572600480360381019061056d91906131e2565b610fa0565b60405161057f9190613976565b60405180910390f35b34801561059457600080fd5b506105af60048036038101906105aa91906133bc565b610fe9565b005b3480156105bd57600080fd5b506105c661103b565b6040516105d39190613976565b60405180910390f35b3480156105e857600080fd5b506105f1611041565b6040516105fe9190613787565b60405180910390f35b34801561061357600080fd5b5061061c61106a565b6040516106299190613976565b60405180910390f35b34801561063e57600080fd5b50610647611070565b6040516106549190613854565b60405180910390f35b34801561066957600080fd5b506106726110ad565b60405161067f9190613787565b60405180910390f35b34801561069457600080fd5b506106af60048036038101906106aa919061333c565b6110d3565b6040516106bc919061381e565b60405180910390f35b3480156106d157600080fd5b506106ec60048036038101906106e791906131e2565b6110e8565b005b3480156106fa57600080fd5b50610715600480360381019061071091906133bc565b61118a565b6040516107229190613976565b60405180910390f35b34801561073757600080fd5b50610752600480360381019061074d91906131e2565b6111fc565b005b34801561076057600080fd5b5061077b60048036038101906107769190613269565b6113ad565b6040516107889190613976565b60405180910390f35b34801561079d57600080fd5b506107b860048036038101906107b391906133bc565b611434565b005b3480156107c657600080fd5b506107e160048036038101906107dc919061337c565b611486565b005b3480156107ef57600080fd5b5061080a60048036038101906108059190613269565b6114f3565b005b34801561081857600080fd5b50610833600480360381019061082e91906133bc565b6115c1565b005b34801561084157600080fd5b5061085c600480360381019061085791906131e2565b611639565b005b34801561086a57600080fd5b50610885600480360381019061088091906131e2565b6116dc565b604051610892919061381e565b60405180910390f35b3480156108a757600080fd5b506108c260048036038101906108bd919061323c565b6116fc565b005b3480156108d057600080fd5b506108d9611815565b005b3480156108e757600080fd5b506108f06118ce565b6040516108fd9190613839565b60405180910390f35b34801561091257600080fd5b5061092d600480360381019061092891906131e2565b6118f4565b60405161093a919061381e565b60405180910390f35b60175481565b60606040518060400160405280600881526020017f45706964656d6963000000000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a669190613976565b60405180910390a36001905092915050565b600082610a848361118a565b11905092915050565b6000600454905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8357610c02826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c8e8484846119ae565b90509392505050565b6000610d14610cc7600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fa0565b610d06610cf5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fa0565b6004546120ab90919063ffffffff16565b6120ab90919063ffffffff16565b905090565b600a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000610dda827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610986565b9050919050565b60125481565b610df033610d4c565b610e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2690613936565b60405180910390fd5b6103e8600454610e3f9190613ae5565b811015610e4b57600080fd5b8060058190555050565b610e5e336118f4565b610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490613956565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660149054906101000a900460ff1681565b610f14336118f4565b610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a90613956565b60405180910390fd5b83600c8190555082600d8190555081600e81905550610f8d82610f7f85876120f590919063ffffffff16565b6120f590919063ffffffff16565b600f819055508060108190555050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ff2336118f4565b611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890613956565b60405180910390fd5b8060118190555050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b60606040518060400160405280600381526020017f4550490000000000000000000000000000000000000000000000000000000000815250905090565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006110e03384846119ae565b905092915050565b6110f133610d4c565b611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790613936565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006111f5611197610c97565b6111e76111d860026111ca601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fa0565b61215390919063ffffffff16565b8561215390919063ffffffff16565b6121ce90919063ffffffff16565b9050919050565b611205336118f4565b611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90613956565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90613896565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112ee9190613787565b60206040518083038186803b15801561130657600080fd5b505afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e91906133e9565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156113a8573d6000803e3d6000fd5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61143d33610d4c565b61147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390613936565b60405180910390fd5b8060128190555050565b61148f336118f4565b6114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c590613956565b60405180910390fd5b81601660146101000a81548160ff021916908315150217905550806017819055505050565b6114fc336118f4565b61153b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153290613956565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6115ca33610d4c565b611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613936565b60405180910390fd5b6009600a6116179190613b69565b60016116239190613c87565b81111561162f57600080fd5b8060068190555050565b61164233610d4c565b611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890613936565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b61170533610d4c565b611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b90613936565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861638160405161180a91906137a2565b60405180910390a150565b61181e336118f4565b61185d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185490613956565b60405180910390fd5b6000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156118ca573d6000803e3d6000fd5b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000838311158290611992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119899190613854565b60405180910390fd5b50600083856119a19190613ce1565b9050809150509392505050565b6000601860009054906101000a900460ff16156119d7576119d0848484612218565b90506120a4565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a835750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b6c57600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b2c575060055482600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b299190613a8f565b11155b611b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6290613876565b60405180910390fd5b5b6000829050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611cb657600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cb157600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b906138f6565b60405180910390fd5b611cae84846123eb565b90505b611ec2565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d2c57611d1585612845565b15611d2757611d24858461289c565b90505b611ec1565b60001515600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611ec0576006548310611ebf576001600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555084600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f2c07cd45454a31c572d49686c5ec6fef884778b2cf441c7fd58f4bde0fa6400b60405160405180910390a35b5b5b5b611eca6129e0565b15611ed857611ed7612ab7565b5b611f61836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9092919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff681600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120969190613976565b60405180910390a360019150505b9392505050565b60006120ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061194a565b905092915050565b60008082846121049190613a8f565b905083811015612149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612140906138b6565b60405180910390fd5b8091505092915050565b60008083141561216657600090506121c8565b600082846121749190613c87565b90508284826121839190613ae5565b146121c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ba90613916565b60405180910390fd5b809150505b92915050565b600061221083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ffe565b905092915050565b60006122a3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461194a9092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233882600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d89190613976565b60405180910390a3600190509392505050565b600080601054836011546123ff9190613c87565b6124099190613ae5565b905060125460076000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156126cf576125648160076000600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b60076000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630836040516126c29190613976565b60405180910390a3612830565b6127438160076000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b60076000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff16601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f9be71e54c914a5355f90883acdff2a1d75cebe9a1c6f15305d1fb0c28d7d7630836040516128279190613976565b60405180910390a35b808361283c9190613ce1565b91505092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806128c86010546128ba600f548661215390919063ffffffff16565b6121ce90919063ffffffff16565b905061291c81600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120f590919063ffffffff16565b600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129bc9190613976565b60405180910390a36129d781846120ab90919063ffffffff16565b91505092915050565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015612a4d5750601860009054906101000a900460ff16155b8015612a655750601660149054906101000a900460ff165b8015612ab25750601754600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601860006101000a81548160ff0219169083151502179055506000612add30610fa0565b90506000612b1d6002612b0f600f54612b01600c548761215390919063ffffffff16565b6121ce90919063ffffffff16565b6121ce90919063ffffffff16565b90506000612b3482846120ab90919063ffffffff16565b90506000600267ffffffffffffffff811115612b5357612b52613ea8565b5b604051908082528060200260200182016040528015612b815781602001602082028036833780820191505090505b5090503081600081518110612b9957612b98613e79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3b57600080fd5b505afa158015612c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c73919061320f565b81600181518110612c8757612c86613e79565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612d2a959493929190613991565b600060405180830381600087803b158015612d4457600080fd5b505af1158015612d58573d6000803e3d6000fd5b505050506000612d7182476120ab90919063ffffffff16565b90506000612d9f612d8e6002600c546121ce90919063ffffffff16565b600f546120ab90919063ffffffff16565b90506000612ddd6002612dcf84612dc1600c548861215390919063ffffffff16565b6121ce90919063ffffffff16565b6121ce90919063ffffffff16565b90506000612e0883612dfa600d548761215390919063ffffffff16565b6121ce90919063ffffffff16565b90506000818386612e199190613ce1565b612e239190613ce1565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612e7190613772565b600060405180830381858888f193505050503d8060008114612eaf576040519150601f19603f3d011682016040523d82523d6000602084013e612eb4565b606091505b5050905080612ef8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eef906138d6565b60405180910390fd5b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168461753090604051612f4490613772565b600060405180830381858888f193505050503d8060008114612f82576040519150601f19603f3d011682016040523d82523d6000602084013e612f87565b606091505b5050905080612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc2906138d6565b60405180910390fd5b612fd58b86613061565b5050505050505050505050506000601860006101000a81548160ff021916908315150217905550565b60008083118290613045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303c9190613854565b60405180910390fd5b50600083856130549190613ae5565b9050809150509392505050565b600082111561316057601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b81526004016130d1969594939291906137bd565b6060604051808303818588803b1580156130ea57600080fd5b505af11580156130fe573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131239190613456565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516131579291906139eb565b60405180910390a15b5050565b600081359050613173816140b7565b92915050565b600081519050613188816140b7565b92915050565b60008135905061319d816140ce565b92915050565b6000813590506131b2816140e5565b92915050565b6000813590506131c7816140fc565b92915050565b6000815190506131dc816140fc565b92915050565b6000602082840312156131f8576131f7613ed7565b5b600061320684828501613164565b91505092915050565b60006020828403121561322557613224613ed7565b5b600061323384828501613179565b91505092915050565b60006020828403121561325257613251613ed7565b5b60006132608482850161318e565b91505092915050565b600080604083850312156132805761327f613ed7565b5b600061328e85828601613164565b925050602061329f85828601613164565b9150509250929050565b6000806000606084860312156132c2576132c1613ed7565b5b60006132d086828701613164565b93505060206132e186828701613164565b92505060406132f2868287016131b8565b9150509250925092565b6000806040838503121561331357613312613ed7565b5b600061332185828601613164565b9250506020613332858286016131a3565b9150509250929050565b6000806040838503121561335357613352613ed7565b5b600061336185828601613164565b9250506020613372858286016131b8565b9150509250929050565b6000806040838503121561339357613392613ed7565b5b60006133a1858286016131a3565b92505060206133b2858286016131b8565b9150509250929050565b6000602082840312156133d2576133d1613ed7565b5b60006133e0848285016131b8565b91505092915050565b6000602082840312156133ff576133fe613ed7565b5b600061340d848285016131cd565b91505092915050565b6000806040838503121561342d5761342c613ed7565b5b600061343b858286016131b8565b925050602061344c858286016131b8565b9150509250929050565b60008060006060848603121561346f5761346e613ed7565b5b600061347d868287016131cd565b935050602061348e868287016131cd565b925050604061349f868287016131cd565b9150509250925092565b600080600080608085870312156134c3576134c2613ed7565b5b60006134d1878288016131b8565b94505060206134e2878288016131b8565b93505060406134f3878288016131b8565b9250506060613504878288016131b8565b91505092959194509250565b600061351c8383613537565b60208301905092915050565b61353181613d7c565b82525050565b61354081613d15565b82525050565b61354f81613d15565b82525050565b600061356082613a3f565b61356a8185613a62565b935061357583613a2f565b8060005b838110156135a657815161358d8882613510565b975061359883613a55565b925050600181019050613579565b5085935050505092915050565b6135bc81613d39565b82525050565b6135cb81613d8e565b82525050565b6135da81613db2565b82525050565b60006135eb82613a4a565b6135f58185613a7e565b9350613605818560208601613de8565b61360e81613edc565b840191505092915050565b6000613626602583613a7e565b915061363182613efa565b604082019050919050565b6000613649602383613a7e565b915061365482613f49565b604082019050919050565b600061366c601b83613a7e565b915061367782613f98565b602082019050919050565b600061368f601e83613a7e565b915061369a82613fc1565b602082019050919050565b60006136b2600c83613a7e565b91506136bd82613fea565b602082019050919050565b60006136d5602183613a7e565b91506136e082614013565b604082019050919050565b60006136f8600683613a7e565b915061370382614062565b602082019050919050565b600061371b600083613a73565b91506137268261408b565b600082019050919050565b600061373e600b83613a7e565b91506137498261408e565b602082019050919050565b61375d81613d65565b82525050565b61376c81613d6f565b82525050565b600061377d8261370e565b9150819050919050565b600060208201905061379c6000830184613546565b92915050565b60006020820190506137b76000830184613528565b92915050565b600060c0820190506137d26000830189613546565b6137df6020830188613754565b6137ec60408301876135d1565b6137f960608301866135d1565b6138066080830185613546565b61381360a0830184613754565b979650505050505050565b600060208201905061383360008301846135b3565b92915050565b600060208201905061384e60008301846135c2565b92915050565b6000602082019050818103600083015261386e81846135e0565b905092915050565b6000602082019050818103600083015261388f81613619565b9050919050565b600060208201905081810360008301526138af8161363c565b9050919050565b600060208201905081810360008301526138cf8161365f565b9050919050565b600060208201905081810360008301526138ef81613682565b9050919050565b6000602082019050818103600083015261390f816136a5565b9050919050565b6000602082019050818103600083015261392f816136c8565b9050919050565b6000602082019050818103600083015261394f816136eb565b9050919050565b6000602082019050818103600083015261396f81613731565b9050919050565b600060208201905061398b6000830184613754565b92915050565b600060a0820190506139a66000830188613754565b6139b360208301876135d1565b81810360408301526139c58186613555565b90506139d46060830185613546565b6139e16080830184613754565b9695505050505050565b6000604082019050613a006000830185613754565b613a0d6020830184613754565b9392505050565b6000602082019050613a296000830184613763565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613a9a82613d65565b9150613aa583613d65565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ada57613ad9613e1b565b5b828201905092915050565b6000613af082613d65565b9150613afb83613d65565b925082613b0b57613b0a613e4a565b5b828204905092915050565b6000808291508390505b6001851115613b6057808604811115613b3c57613b3b613e1b565b5b6001851615613b4b5780820291505b8081029050613b5985613eed565b9450613b20565b94509492505050565b6000613b7482613d65565b9150613b7f83613d6f565b9250613bac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613bb4565b905092915050565b600082613bc45760019050613c80565b81613bd25760009050613c80565b8160018114613be85760028114613bf257613c21565b6001915050613c80565b60ff841115613c0457613c03613e1b565b5b8360020a915084821115613c1b57613c1a613e1b565b5b50613c80565b5060208310610133831016604e8410600b8410161715613c565782820a905083811115613c5157613c50613e1b565b5b613c80565b613c638484846001613b16565b92509050818404811115613c7a57613c79613e1b565b5b81810290505b9392505050565b6000613c9282613d65565b9150613c9d83613d65565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd657613cd5613e1b565b5b828202905092915050565b6000613cec82613d65565b9150613cf783613d65565b925082821015613d0a57613d09613e1b565b5b828203905092915050565b6000613d2082613d45565b9050919050565b6000613d3282613d45565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613d8782613dc4565b9050919050565b6000613d9982613da0565b9050919050565b6000613dab82613d45565b9050919050565b6000613dbd82613d65565b9050919050565b6000613dcf82613dd6565b9050919050565b6000613de182613d45565b9050919050565b60005b83811015613e06578082015181840152602081019050613deb565b83811115613e15576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f4e6f742072656665727265640000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b6140c081613d15565b81146140cb57600080fd5b50565b6140d781613d27565b81146140e257600080fd5b50565b6140ee81613d39565b81146140f957600080fd5b50565b61410581613d65565b811461411057600080fd5b5056fea26469706673582212206da100dfcb520bf03524468c917b507ae2d67b8b657fb56e18e3464a5512e29064736f6c63430008050033

Deployed Bytecode Sourcemap

6081:11427:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7405:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8646:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9068:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17287:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8376:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9586:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16962:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6761:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4138:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8470:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9292:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7049:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15013:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15491:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7368:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15726:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8816:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15619:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6526:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8732:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6462:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8556:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7340:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9422:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3931:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17112:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16648:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8927:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15175:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16296:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16082:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15311:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4033:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6813:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4364:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16460:180;;;;;;;;;;;;;:::i;:::-;;7303:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4249:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7405:54;;;;:::o;8646:80::-;8694:13;8718:5;;;;;;;;;;;;;;;;;8711:12;;8646:80;:::o;9068:216::-;9143:4;9195:6;9160:11;:23;9172:10;9160:23;;;;;;;;;;;;;;;:32;9184:7;9160:32;;;;;;;;;;;;;;;:41;;;;9238:7;9217:37;;9226:10;9217:37;;;9247:6;9217:37;;;;;;:::i;:::-;;;;;;;;9272:4;9265:11;;9068:216;;;;:::o;17287:150::-;17367:4;17423:6;17391:29;17411:8;17391:19;:29::i;:::-;:38;17384:45;;17287:150;;;;:::o;8376:88::-;8431:7;8449:12;;8442:19;;8376:88;:::o;9586:370::-;9686:4;9741:17;9706:11;:19;9718:6;9706:19;;;;;;;;;;;;;;;:31;9726:10;9706:31;;;;;;;;;;;;;;;;:52;9703:186;;9808:69;9844:6;9808:69;;;;;;;;;;;;;;;;;:11;:19;9820:6;9808:19;;;;;;;;;;;;;;;:31;9828:10;9808:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;9774:11;:19;9786:6;9774:19;;;;;;;;;;;;;;;:31;9794:10;9774:31;;;;;;;;;;;;;;;:103;;;;9703:186;9908:40;9922:6;9930:9;9941:6;9908:13;:40::i;:::-;9901:47;;9586:370;;;;;:::o;16962:142::-;17015:7;17042:54;17080:15;17090:4;;;;;;;;;;;17080:9;:15::i;:::-;17042:33;17059:15;17069:4;;;;;;;;;;;17059:9;:15::i;:::-;17042:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;17035:61;;16962:142;:::o;6761:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;4138:103::-;4193:4;4228:5;;;;;;;;;;;4217:16;;:7;:16;;;4210:23;;4138:103;;;:::o;8470:80::-;8522:5;6393:1;8531:16;;8470:80;:::o;9292:122::-;9347:4;9371:35;9379:7;9388:17;9371:7;:35::i;:::-;9364:42;;9292:122;;;:::o;7049:69::-;;;;:::o;15013:151::-;3782:19;3790:10;3782:7;:19::i;:::-;3774:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15116:4:::1;15101:12;;:19;;;;:::i;:::-;15091:6;:29;;15083:39;;;::::0;::::1;;15150:6;15133:14;:23;;;;15013:151:::0;:::o;15491:120::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15597:6:::1;15575:11;:19;15587:6;15575:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15491:120:::0;;:::o;7368:30::-;;;;;;;;;;;;;:::o;15726:348::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15877:13:::1;15862:12;:28;;;;15910:7;15901:6;:16;;;;15943:13;15928:12;:28;;;;15978:45;16009:13;15978:26;15996:7;15978:13;:17;;:26;;;;:::i;:::-;:30;;:45;;;;:::i;:::-;15967:8;:56;;;;16051:15;16034:14;:32;;;;15726:348:::0;;;;:::o;8816:105::-;8882:7;8900:9;:18;8910:7;8900:18;;;;;;;;;;;;;;;;8893:25;;8816:105;;;:::o;15619:99::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15704:6:::1;15690:11;:20;;;;15619:99:::0;:::o;6526:62::-;;;;:::o;8732:78::-;8784:7;8802:5;;;;;;;;;;;8795:12;;8732:78;:::o;6462:56::-;;;;:::o;8556:84::-;8606:13;8630:7;;;;;;;;;;;;;;;;;8623:14;;8556:84;:::o;7340:19::-;;;;;;;;;;;;;:::o;9422:156::-;9502:4;9526:44;9540:10;9552:9;9563:6;9526:13;:44::i;:::-;9519:51;;9422:156;;;;:::o;3931:94::-;3782:19;3790:10;3782:7;:19::i;:::-;3774:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4013:4:::1;3991:14:::0;:19:::1;4006:3;3991:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3931:94:::0;:::o;17112:167::-;17180:7;17207:64;17248:22;:20;:22::i;:::-;17207:36;17220:22;17240:1;17220:15;17230:4;;;;;;;;;;;17220:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;17207:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;17200:71;;17112:167;;;:::o;16648:298::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16749:4:::1;16731:23;;:6;:23;;;;16723:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16805:24;16839:6;16832:24;;;16865:4;16832:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16805:66;;16890:20;;;;;;;;;;;16882:38;;:56;16921:16;16882:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16712:234;16648:298:::0;:::o;8927:133::-;9011:7;9029:11;:19;9041:6;9029:19;;;;;;;;;;;;;;;:28;9049:7;9029:28;;;;;;;;;;;;;;;;9022:35;;8927:133;;;;:::o;15175:127::-;3782:19;3790:10;3782:7;:19::i;:::-;3774:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15288:6:::1;15259:26;:35;;;;15175:127:::0;:::o;16296:156::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16402:8:::1;16388:11;;:22;;;;;;;;;;;;;;;;;;16437:7;16421:13;:23;;;;16296:156:::0;;:::o;16082:206::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16216:21:::1;16193:20;;:44;;;;;;;;;;;;;;;;;;16265:15;16248:14;;:32;;;;;;;;;;;;;;;;;;16082:206:::0;;:::o;15311:172::-;3782:19;3790:10;3782:7;:19::i;:::-;3774:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6393:1:::1;15415:2;:13;;;;:::i;:::-;15412:1;:17;;;;:::i;:::-;15402:6;:27;;15394:37;;;::::0;::::1;;15468:6;15442:23;:32;;;;15311:172:::0;:::o;4033:97::-;3782:19;3790:10;3782:7;:19::i;:::-;3774:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:5:::1;4095:14;:19;4110:3;4095:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;4033:97:::0;:::o;6813:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;4364:173::-;3782:19;3790:10;3782:7;:19::i;:::-;3774:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4448:3:::1;4440:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4484:4;4462:14:::0;:19:::1;4477:3;4462:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4504:25;4525:3;4504:25;;;;;;:::i;:::-;;;;;;;;4364:173:::0;:::o;16460:180::-;3872:24;3885:10;3872:12;:24::i;:::-;3864:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16513:26:::1;16542:21;16513:50;;16582:20;;;;;;;;;;;16574:38;;:58;16613:18;16574:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16502:138;16460:180::o:0;7303:30::-;;;;;;;;;;;;;:::o;4249:107::-;4305:4;4329:14;:19;4344:3;4329:19;;;;;;;;;;;;;;;;;;;;;;;;;4322:26;;4249:107;;;:::o;1658:192::-;1744:7;1777:1;1772;:6;;1780:12;1764:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1804:9;1820:1;1816;:5;;;;:::i;:::-;1804:17;;1841:1;1834:8;;;1658:192;;;;;:::o;9964:1413::-;10056:4;10076:6;;;;;;;;;;;10073:63;;;10092:41;10107:6;10115:9;10126:6;10092:14;:41::i;:::-;10085:48;;;;10073:63;10169:4;;;;;;;;;;;10156:17;;:9;:17;;;;:38;;;;;10190:4;;;;;;;;;;;10177:17;;:9;:17;;;;10156:38;10152:194;;;10219:11;:22;10231:9;10219:22;;;;;;;;;;;;;;;;;;;;;;;;;:73;;;;10278:14;;10268:6;10245:9;:20;10255:9;10245:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;10219:73;10211:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;10152:194;10358:22;10383:6;10358:31;;10424:4;;;;;;;;;;;10414:14;;:6;:14;;;10411:660;;;10455:11;:22;10467:9;10455:22;;;;;;;;;;;;;;;;;;;;;;;;;10451:178;;10506:10;:21;10517:9;10506:21;;;;;;;;;;;;;;;;;;;;;;;;;10498:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;10579:34;10596:9;10606:6;10579:16;:34::i;:::-;10562:51;;10451:178;10411:660;;;10664:4;;;;;;;;;;;10651:17;;:9;:17;;;10648:423;;;10695:21;10709:6;10695:13;:21::i;:::-;10692:101;;;10754:23;10762:6;10770;10754:7;:23::i;:::-;10737:40;;10692:101;10648:423;;;10840:5;10817:28;;:10;:21;10828:9;10817:21;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;10814:257;;;10875:23;;10865:6;:33;10862:198;;10943:4;10919:10;:21;10930:9;10919:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10988:6;10966:8;:19;10975:9;10966:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11037:6;11018:26;;11027:9;11018:26;;;;;;;;;;;;10862:198;10814:257;10648:423;10411:660;11095:16;:14;:16::i;:::-;11092:35;;;11114:10;:8;:10::i;:::-;11092:35;11159:53;11181:6;11159:53;;;;;;;;;;;;;;;;;:9;:17;11169:6;11159:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11139:9;:17;11149:6;11139:17;;;;;;;;;;;;;;;:73;;;;11246:40;11271:14;11246:9;:20;11256:9;11246:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11223:9;:20;11233:9;11223:20;;;;;;;;;;;;;;;:63;;;;11321:9;11304:43;;11313:6;11304:43;;;11332:14;11304:43;;;;;;:::i;:::-;;;;;;;;11365:4;11358:11;;;9964:1413;;;;;;:::o;1516:136::-;1574:7;1601:43;1605:1;1608;1601:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1594:50;;1516:136;;;;:::o;1329:181::-;1387:7;1407:9;1423:1;1419;:5;;;;:::i;:::-;1407:17;;1448:1;1443;:6;;1435:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1501:1;1494:8;;;1329:181;;;;:::o;1856:250::-;1914:7;1943:1;1938;:6;1934:47;;;1968:1;1961:8;;;;1934:47;1993:9;2009:1;2005;:5;;;;:::i;:::-;1993:17;;2038:1;2033;2029;:5;;;;:::i;:::-;:10;2021:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2097:1;2090:8;;;1856:250;;;;;:::o;2112:132::-;2170:7;2197:39;2201:1;2204;2197:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2190:46;;2112:132;;;;:::o;11389:330::-;11482:4;11519:53;11541:6;11519:53;;;;;;;;;;;;;;;;;:9;:17;11529:6;11519:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11499:9;:17;11509:6;11499:17;;;;;;;;;;;;;;;:73;;;;11606:32;11631:6;11606:9;:20;11616:9;11606:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11583:9;:20;11593:9;11583:20;;;;;;;;;;;;;;;:55;;;;11671:9;11654:35;;11663:6;11654:35;;;11682:6;11654:35;;;;;;:::i;:::-;;;;;;;;11707:4;11700:11;;11389:330;;;;;:::o;11727:634::-;11799:4;11816:22;11864:14;;11855:6;11841:11;;:20;;;;:::i;:::-;:37;;;;:::i;:::-;11816:62;;11920:26;;11892:9;:25;11902:8;:14;11911:4;11902:14;;;;;;;;;;;;;;;;;;;;;;;;;11892:25;;;;;;;;;;;;;;;;:54;11889:422;;;11991:45;12021:14;11991:9;:25;12001:8;:14;12010:4;12001:14;;;;;;;;;;;;;;;;;;;;;;;;;11991:25;;;;;;;;;;;;;;;;:29;;:45;;;;:::i;:::-;11963:9;:25;11973:8;:14;11982:4;11973:14;;;;;;;;;;;;;;;;;;;;;;;;;11963:25;;;;;;;;;;;;;;;:73;;;;12085:4;12056:49;;12070:8;:14;12079:4;12070:14;;;;;;;;;;;;;;;;;;;;;;;;;12056:49;;;12090:14;12056:49;;;;;;:::i;:::-;;;;;;;;11889:422;;;12173:51;12209:14;12173:9;:31;12183:20;;;;;;;;;;;12173:31;;;;;;;;;;;;;;;;:35;;:51;;;;:::i;:::-;12139:9;:31;12149:20;;;;;;;;;;;12139:31;;;;;;;;;;;;;;;:85;;;;12279:4;12244:55;;12258:20;;;;;;;;;;;12244:55;;;12284:14;12244:55;;;;;;:::i;:::-;;;;;;;;11889:422;12339:14;12330:6;:23;;;;:::i;:::-;12323:30;;;11727:634;;;;:::o;12373:114::-;12435:4;12460:11;:19;12472:6;12460:19;;;;;;;;;;;;;;;;;;;;;;;;;12459:20;12452:27;;12373:114;;;:::o;12495:333::-;12562:7;12582:17;12602:40;12627:14;;12602:20;12613:8;;12602:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;12582:60;;12682:39;12711:9;12682;:24;12700:4;12682:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12655:9;:24;12673:4;12655:24;;;;;;;;;;;;;;;:66;;;;12762:4;12737:42;;12746:6;12737:42;;;12769:9;12737:42;;;;;;:::i;:::-;;;;;;;;12799:21;12810:9;12799:6;:10;;:21;;;;:::i;:::-;12792:28;;;12495:333;;;;:::o;12836:197::-;12885:4;12923;;;;;;;;;;;12909:18;;:10;:18;;;;:38;;;;;12941:6;;;;;;;;;;;12940:7;12909:38;:62;;;;;12960:11;;;;;;;;;;;12909:62;:116;;;;;13012:13;;12984:9;:24;13002:4;12984:24;;;;;;;;;;;;;;;;:41;;12909:116;12902:123;;12836:197;:::o;13041:1504::-;7525:4;7516:6;;:13;;;;;;;;;;;;;;;;;;13090:28:::1;13121:24;13139:4;13121:9;:24::i;:::-;13090:55;;13156:23;13182:59;13239:1;13182:52;13225:8;;13182:38;13207:12;;13182:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13156:85;;13252:20;13275:41;13300:15;13275:20;:24;;:41;;;;:::i;:::-;13252:64;;13329:21;13367:1;13353:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13329:40;;13398:4;13380;13385:1;13380:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13424:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13414:4;13419:1;13414:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13450:21;13474;13450:45;;13508:6;;;;;;;;;;;:57;;;13580:12;13607:1;13623:4;13650;13670:15;13508:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13707:17;13727:40;13753:13;13727:21;:25;;:40;;;;:::i;:::-;13707:60;;13778:19;13800:33;13813:19;13830:1;13813:12;;:16;;:19;;;;:::i;:::-;13800:8;;:12;;:33;;;;:::i;:::-;13778:55;;13844:26;13873:51;13922:1;13873:44;13905:11;13873:27;13887:12;;13873:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;13844:80;;13935:20;13958:38;13984:11;13958:21;13972:6;;13958:9;:13;;:21;;;;:::i;:::-;:25;;:38;;;;:::i;:::-;13935:61;;14007:26;14069:12;14048:18;14036:9;:30;;;;:::i;:::-;:45;;;;:::i;:::-;14007:74;;14095:21;14153:20;;;;;;;;;;;14145:34;;14187:18;14212:5;14145:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14094:128;;;14241:16;14233:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;14304:15;14356:14;;;;;;;;;;;14348:28;;14384:12;14403:5;14348:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14303:110;;;14432:10;14424:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14488:49;14501:15;14518:18;14488:12;:49::i;:::-;13079:1466;;;;;;;;;;;;7543:5:::0;7534:6;;:14;;;;;;;;;;;;;;;;;;13041:1504::o;2250:345::-;2336:7;2435:1;2431;:5;2438:12;2423:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2462:9;2478:1;2474;:5;;;;:::i;:::-;2462:17;;2586:1;2579:8;;;2250:345;;;;;:::o;14553:452::-;14651:1;14637:11;:15;14634:364;;;14672:6;;;;;;;;;;;:22;;;14702:9;14743:4;14771:11;14805:1;14829;14861:4;14889:15;14672:251;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14947:35;14959:9;14970:11;14947:35;;;;;;;:::i;:::-;;;;;;;;14634:364;14553:452;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;511:84;;;;:::o;601:139::-;647:5;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;653:87;;;;:::o;746:143::-;803:5;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;809:80;;;;:::o;895:329::-;954:6;1003:2;991:9;982:7;978:23;974:32;971:2;;;1009:79;;:::i;:::-;971:2;1129:1;1154:53;1199:7;1190:6;1179:9;1175:22;1154:53;:::i;:::-;1144:63;;1100:117;961:263;;;;:::o;1230:351::-;1300:6;1349:2;1337:9;1328:7;1324:23;1320:32;1317:2;;;1355:79;;:::i;:::-;1317:2;1475:1;1500:64;1556:7;1547:6;1536:9;1532:22;1500:64;:::i;:::-;1490:74;;1446:128;1307:274;;;;:::o;1587:345::-;1654:6;1703:2;1691:9;1682:7;1678:23;1674:32;1671:2;;;1709:79;;:::i;:::-;1671:2;1829:1;1854:61;1907:7;1898:6;1887:9;1883:22;1854:61;:::i;:::-;1844:71;;1800:125;1661:271;;;;:::o;1938:474::-;2006:6;2014;2063:2;2051:9;2042:7;2038:23;2034:32;2031:2;;;2069:79;;:::i;:::-;2031:2;2189:1;2214:53;2259:7;2250:6;2239:9;2235:22;2214:53;:::i;:::-;2204:63;;2160:117;2316:2;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2287:118;2021:391;;;;;:::o;2418:619::-;2495:6;2503;2511;2560:2;2548:9;2539:7;2535:23;2531:32;2528:2;;;2566:79;;:::i;:::-;2528:2;2686:1;2711:53;2756:7;2747:6;2736:9;2732:22;2711:53;:::i;:::-;2701:63;;2657:117;2813:2;2839:53;2884:7;2875:6;2864:9;2860:22;2839:53;:::i;:::-;2829:63;;2784:118;2941:2;2967:53;3012:7;3003:6;2992:9;2988:22;2967:53;:::i;:::-;2957:63;;2912:118;2518:519;;;;;:::o;3043:468::-;3108:6;3116;3165:2;3153:9;3144:7;3140:23;3136:32;3133:2;;;3171:79;;:::i;:::-;3133:2;3291:1;3316:53;3361:7;3352:6;3341:9;3337:22;3316:53;:::i;:::-;3306:63;;3262:117;3418:2;3444:50;3486:7;3477:6;3466:9;3462:22;3444:50;:::i;:::-;3434:60;;3389:115;3123:388;;;;;:::o;3517:474::-;3585:6;3593;3642:2;3630:9;3621:7;3617:23;3613:32;3610:2;;;3648:79;;:::i;:::-;3610:2;3768:1;3793:53;3838:7;3829:6;3818:9;3814:22;3793:53;:::i;:::-;3783:63;;3739:117;3895:2;3921:53;3966:7;3957:6;3946:9;3942:22;3921:53;:::i;:::-;3911:63;;3866:118;3600:391;;;;;:::o;3997:468::-;4062:6;4070;4119:2;4107:9;4098:7;4094:23;4090:32;4087:2;;;4125:79;;:::i;:::-;4087:2;4245:1;4270:50;4312:7;4303:6;4292:9;4288:22;4270:50;:::i;:::-;4260:60;;4216:114;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;4077:388;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:2;;;4585:79;;:::i;:::-;4547:2;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4537:263;;;;:::o;4806:351::-;4876:6;4925:2;4913:9;4904:7;4900:23;4896:32;4893:2;;;4931:79;;:::i;:::-;4893:2;5051:1;5076:64;5132:7;5123:6;5112:9;5108:22;5076:64;:::i;:::-;5066:74;;5022:128;4883:274;;;;:::o;5163:474::-;5231:6;5239;5288:2;5276:9;5267:7;5263:23;5259:32;5256:2;;;5294:79;;:::i;:::-;5256:2;5414:1;5439:53;5484:7;5475:6;5464:9;5460:22;5439:53;:::i;:::-;5429:63;;5385:117;5541:2;5567:53;5612:7;5603:6;5592:9;5588:22;5567:53;:::i;:::-;5557:63;;5512:118;5246:391;;;;;:::o;5643:663::-;5731:6;5739;5747;5796:2;5784:9;5775:7;5771:23;5767:32;5764:2;;;5802:79;;:::i;:::-;5764:2;5922:1;5947:64;6003:7;5994:6;5983:9;5979:22;5947:64;:::i;:::-;5937:74;;5893:128;6060:2;6086:64;6142:7;6133:6;6122:9;6118:22;6086:64;:::i;:::-;6076:74;;6031:129;6199:2;6225:64;6281:7;6272:6;6261:9;6257:22;6225:64;:::i;:::-;6215:74;;6170:129;5754:552;;;;;:::o;6312:765::-;6398:6;6406;6414;6422;6471:3;6459:9;6450:7;6446:23;6442:33;6439:2;;;6478:79;;:::i;:::-;6439:2;6598:1;6623:53;6668:7;6659:6;6648:9;6644:22;6623:53;:::i;:::-;6613:63;;6569:117;6725:2;6751:53;6796:7;6787:6;6776:9;6772:22;6751:53;:::i;:::-;6741:63;;6696:118;6853:2;6879:53;6924:7;6915:6;6904:9;6900:22;6879:53;:::i;:::-;6869:63;;6824:118;6981:2;7007:53;7052:7;7043:6;7032:9;7028:22;7007:53;:::i;:::-;6997:63;;6952:118;6429:648;;;;;;;:::o;7083:179::-;7152:10;7173:46;7215:3;7207:6;7173:46;:::i;:::-;7251:4;7246:3;7242:14;7228:28;;7163:99;;;;:::o;7268:147::-;7363:45;7402:5;7363:45;:::i;:::-;7358:3;7351:58;7341:74;;:::o;7421:108::-;7498:24;7516:5;7498:24;:::i;:::-;7493:3;7486:37;7476:53;;:::o;7535:118::-;7622:24;7640:5;7622:24;:::i;:::-;7617:3;7610:37;7600:53;;:::o;7689:732::-;7808:3;7837:54;7885:5;7837:54;:::i;:::-;7907:86;7986:6;7981:3;7907:86;:::i;:::-;7900:93;;8017:56;8067:5;8017:56;:::i;:::-;8096:7;8127:1;8112:284;8137:6;8134:1;8131:13;8112:284;;;8213:6;8207:13;8240:63;8299:3;8284:13;8240:63;:::i;:::-;8233:70;;8326:60;8379:6;8326:60;:::i;:::-;8316:70;;8172:224;8159:1;8156;8152:9;8147:14;;8112:284;;;8116:14;8412:3;8405:10;;7813:608;;;;;;;:::o;8427:109::-;8508:21;8523:5;8508:21;:::i;:::-;8503:3;8496:34;8486:50;;:::o;8542:179::-;8653:61;8708:5;8653:61;:::i;:::-;8648:3;8641:74;8631:90;;:::o;8727:147::-;8822:45;8861:5;8822:45;:::i;:::-;8817:3;8810:58;8800:74;;:::o;8880:364::-;8968:3;8996:39;9029:5;8996:39;:::i;:::-;9051:71;9115:6;9110:3;9051:71;:::i;:::-;9044:78;;9131:52;9176:6;9171:3;9164:4;9157:5;9153:16;9131:52;:::i;:::-;9208:29;9230:6;9208:29;:::i;:::-;9203:3;9199:39;9192:46;;8972:272;;;;;:::o;9250:366::-;9392:3;9413:67;9477:2;9472:3;9413:67;:::i;:::-;9406:74;;9489:93;9578:3;9489:93;:::i;:::-;9607:2;9602:3;9598:12;9591:19;;9396:220;;;:::o;9622:366::-;9764:3;9785:67;9849:2;9844:3;9785:67;:::i;:::-;9778:74;;9861:93;9950:3;9861:93;:::i;:::-;9979:2;9974:3;9970:12;9963:19;;9768:220;;;:::o;9994:366::-;10136:3;10157:67;10221:2;10216:3;10157:67;:::i;:::-;10150:74;;10233:93;10322:3;10233:93;:::i;:::-;10351:2;10346:3;10342:12;10335:19;;10140:220;;;:::o;10366:366::-;10508:3;10529:67;10593:2;10588:3;10529:67;:::i;:::-;10522:74;;10605:93;10694:3;10605:93;:::i;:::-;10723:2;10718:3;10714:12;10707:19;;10512:220;;;:::o;10738:366::-;10880:3;10901:67;10965:2;10960:3;10901:67;:::i;:::-;10894:74;;10977:93;11066:3;10977:93;:::i;:::-;11095:2;11090:3;11086:12;11079:19;;10884:220;;;:::o;11110:366::-;11252:3;11273:67;11337:2;11332:3;11273:67;:::i;:::-;11266:74;;11349:93;11438:3;11349:93;:::i;:::-;11467:2;11462:3;11458:12;11451:19;;11256:220;;;:::o;11482:365::-;11624:3;11645:66;11709:1;11704:3;11645:66;:::i;:::-;11638:73;;11720:93;11809:3;11720:93;:::i;:::-;11838:2;11833:3;11829:12;11822:19;;11628:219;;;:::o;11853:398::-;12012:3;12033:83;12114:1;12109:3;12033:83;:::i;:::-;12026:90;;12125:93;12214:3;12125:93;:::i;:::-;12243:1;12238:3;12234:11;12227:18;;12016:235;;;:::o;12257:366::-;12399:3;12420:67;12484:2;12479:3;12420:67;:::i;:::-;12413:74;;12496:93;12585:3;12496:93;:::i;:::-;12614:2;12609:3;12605:12;12598:19;;12403:220;;;:::o;12629:118::-;12716:24;12734:5;12716:24;:::i;:::-;12711:3;12704:37;12694:53;;:::o;12753:112::-;12836:22;12852:5;12836:22;:::i;:::-;12831:3;12824:35;12814:51;;:::o;12871:379::-;13055:3;13077:147;13220:3;13077:147;:::i;:::-;13070:154;;13241:3;13234:10;;13059:191;;;:::o;13256:222::-;13349:4;13387:2;13376:9;13372:18;13364:26;;13400:71;13468:1;13457:9;13453:17;13444:6;13400:71;:::i;:::-;13354:124;;;;:::o;13484:238::-;13585:4;13623:2;13612:9;13608:18;13600:26;;13636:79;13712:1;13701:9;13697:17;13688:6;13636:79;:::i;:::-;13590:132;;;;:::o;13728:807::-;13977:4;14015:3;14004:9;14000:19;13992:27;;14029:71;14097:1;14086:9;14082:17;14073:6;14029:71;:::i;:::-;14110:72;14178:2;14167:9;14163:18;14154:6;14110:72;:::i;:::-;14192:80;14268:2;14257:9;14253:18;14244:6;14192:80;:::i;:::-;14282;14358:2;14347:9;14343:18;14334:6;14282:80;:::i;:::-;14372:73;14440:3;14429:9;14425:19;14416:6;14372:73;:::i;:::-;14455;14523:3;14512:9;14508:19;14499:6;14455:73;:::i;:::-;13982:553;;;;;;;;;:::o;14541:210::-;14628:4;14666:2;14655:9;14651:18;14643:26;;14679:65;14741:1;14730:9;14726:17;14717:6;14679:65;:::i;:::-;14633:118;;;;:::o;14757:270::-;14874:4;14912:2;14901:9;14897:18;14889:26;;14925:95;15017:1;15006:9;15002:17;14993:6;14925:95;:::i;:::-;14879:148;;;;:::o;15033:313::-;15146:4;15184:2;15173:9;15169:18;15161:26;;15233:9;15227:4;15223:20;15219:1;15208:9;15204:17;15197:47;15261:78;15334:4;15325:6;15261:78;:::i;:::-;15253:86;;15151:195;;;;:::o;15352:419::-;15518:4;15556:2;15545:9;15541:18;15533:26;;15605:9;15599:4;15595:20;15591:1;15580:9;15576:17;15569:47;15633:131;15759:4;15633:131;:::i;:::-;15625:139;;15523:248;;;:::o;15777:419::-;15943:4;15981:2;15970:9;15966:18;15958:26;;16030:9;16024:4;16020:20;16016:1;16005:9;16001:17;15994:47;16058:131;16184:4;16058:131;:::i;:::-;16050:139;;15948:248;;;:::o;16202:419::-;16368:4;16406:2;16395:9;16391:18;16383:26;;16455:9;16449:4;16445:20;16441:1;16430:9;16426:17;16419:47;16483:131;16609:4;16483:131;:::i;:::-;16475:139;;16373:248;;;:::o;16627:419::-;16793:4;16831:2;16820:9;16816:18;16808:26;;16880:9;16874:4;16870:20;16866:1;16855:9;16851:17;16844:47;16908:131;17034:4;16908:131;:::i;:::-;16900:139;;16798:248;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17223:248;;;:::o;17477:419::-;17643:4;17681:2;17670:9;17666:18;17658:26;;17730:9;17724:4;17720:20;17716:1;17705:9;17701:17;17694:47;17758:131;17884:4;17758:131;:::i;:::-;17750:139;;17648:248;;;:::o;17902:419::-;18068:4;18106:2;18095:9;18091:18;18083:26;;18155:9;18149:4;18145:20;18141:1;18130:9;18126:17;18119:47;18183:131;18309:4;18183:131;:::i;:::-;18175:139;;18073:248;;;:::o;18327:419::-;18493:4;18531:2;18520:9;18516:18;18508:26;;18580:9;18574:4;18570:20;18566:1;18555:9;18551:17;18544:47;18608:131;18734:4;18608:131;:::i;:::-;18600:139;;18498:248;;;:::o;18752:222::-;18845:4;18883:2;18872:9;18868:18;18860:26;;18896:71;18964:1;18953:9;18949:17;18940:6;18896:71;:::i;:::-;18850:124;;;;:::o;18980:831::-;19243:4;19281:3;19270:9;19266:19;19258:27;;19295:71;19363:1;19352:9;19348:17;19339:6;19295:71;:::i;:::-;19376:80;19452:2;19441:9;19437:18;19428:6;19376:80;:::i;:::-;19503:9;19497:4;19493:20;19488:2;19477:9;19473:18;19466:48;19531:108;19634:4;19625:6;19531:108;:::i;:::-;19523:116;;19649:72;19717:2;19706:9;19702:18;19693:6;19649:72;:::i;:::-;19731:73;19799:3;19788:9;19784:19;19775:6;19731:73;:::i;:::-;19248:563;;;;;;;;:::o;19817:332::-;19938:4;19976:2;19965:9;19961:18;19953:26;;19989:71;20057:1;20046:9;20042:17;20033:6;19989:71;:::i;:::-;20070:72;20138:2;20127:9;20123:18;20114:6;20070:72;:::i;:::-;19943:206;;;;;:::o;20155:214::-;20244:4;20282:2;20271:9;20267:18;20259:26;;20295:67;20359:1;20348:9;20344:17;20335:6;20295:67;:::i;:::-;20249:120;;;;:::o;20456:132::-;20523:4;20546:3;20538:11;;20576:4;20571:3;20567:14;20559:22;;20528:60;;;:::o;20594:114::-;20661:6;20695:5;20689:12;20679:22;;20668:40;;;:::o;20714:99::-;20766:6;20800:5;20794:12;20784:22;;20773:40;;;:::o;20819:113::-;20889:4;20921;20916:3;20912:14;20904:22;;20894:38;;;:::o;20938:184::-;21037:11;21071:6;21066:3;21059:19;21111:4;21106:3;21102:14;21087:29;;21049:73;;;;:::o;21128:147::-;21229:11;21266:3;21251:18;;21241:34;;;;:::o;21281:169::-;21365:11;21399:6;21394:3;21387:19;21439:4;21434:3;21430:14;21415:29;;21377:73;;;;:::o;21456:305::-;21496:3;21515:20;21533:1;21515:20;:::i;:::-;21510:25;;21549:20;21567:1;21549:20;:::i;:::-;21544:25;;21703:1;21635:66;21631:74;21628:1;21625:81;21622:2;;;21709:18;;:::i;:::-;21622:2;21753:1;21750;21746:9;21739:16;;21500:261;;;;:::o;21767:185::-;21807:1;21824:20;21842:1;21824:20;:::i;:::-;21819:25;;21858:20;21876:1;21858:20;:::i;:::-;21853:25;;21897:1;21887:2;;21902:18;;:::i;:::-;21887:2;21944:1;21941;21937:9;21932:14;;21809:143;;;;:::o;21958:848::-;22019:5;22026:4;22050:6;22041:15;;22074:5;22065:14;;22088:712;22109:1;22099:8;22096:15;22088:712;;;22204:4;22199:3;22195:14;22189:4;22186:24;22183:2;;;22213:18;;:::i;:::-;22183:2;22263:1;22253:8;22249:16;22246:2;;;22678:4;22671:5;22667:16;22658:25;;22246:2;22728:4;22722;22718:15;22710:23;;22758:32;22781:8;22758:32;:::i;:::-;22746:44;;22088:712;;;22031:775;;;;;;;:::o;22812:281::-;22870:5;22894:23;22912:4;22894:23;:::i;:::-;22886:31;;22938:25;22954:8;22938:25;:::i;:::-;22926:37;;22982:104;23019:66;23009:8;23003:4;22982:104;:::i;:::-;22973:113;;22876:217;;;;:::o;23099:1073::-;23153:5;23344:8;23334:2;;23365:1;23356:10;;23367:5;;23334:2;23393:4;23383:2;;23410:1;23401:10;;23412:5;;23383:2;23479:4;23527:1;23522:27;;;;23563:1;23558:191;;;;23472:277;;23522:27;23540:1;23531:10;;23542:5;;;23558:191;23603:3;23593:8;23590:17;23587:2;;;23610:18;;:::i;:::-;23587:2;23659:8;23656:1;23652:16;23643:25;;23694:3;23687:5;23684:14;23681:2;;;23701:18;;:::i;:::-;23681:2;23734:5;;;23472:277;;23858:2;23848:8;23845:16;23839:3;23833:4;23830:13;23826:36;23808:2;23798:8;23795:16;23790:2;23784:4;23781:12;23777:35;23761:111;23758:2;;;23914:8;23908:4;23904:19;23895:28;;23949:3;23942:5;23939:14;23936:2;;;23956:18;;:::i;:::-;23936:2;23989:5;;23758:2;24029:42;24067:3;24057:8;24051:4;24048:1;24029:42;:::i;:::-;24014:57;;;;24103:4;24098:3;24094:14;24087:5;24084:25;24081:2;;;24112:18;;:::i;:::-;24081:2;24161:4;24154:5;24150:16;24141:25;;23159:1013;;;;;;:::o;24178:348::-;24218:7;24241:20;24259:1;24241:20;:::i;:::-;24236:25;;24275:20;24293:1;24275:20;:::i;:::-;24270:25;;24463:1;24395:66;24391:74;24388:1;24385:81;24380:1;24373:9;24366:17;24362:105;24359:2;;;24470:18;;:::i;:::-;24359:2;24518:1;24515;24511:9;24500:20;;24226:300;;;;:::o;24532:191::-;24572:4;24592:20;24610:1;24592:20;:::i;:::-;24587:25;;24626:20;24644:1;24626:20;:::i;:::-;24621:25;;24665:1;24662;24659:8;24656:2;;;24670:18;;:::i;:::-;24656:2;24715:1;24712;24708:9;24700:17;;24577:146;;;;:::o;24729:96::-;24766:7;24795:24;24813:5;24795:24;:::i;:::-;24784:35;;24774:51;;;:::o;24831:104::-;24876:7;24905:24;24923:5;24905:24;:::i;:::-;24894:35;;24884:51;;;:::o;24941:90::-;24975:7;25018:5;25011:13;25004:21;24993:32;;24983:48;;;:::o;25037:126::-;25074:7;25114:42;25107:5;25103:54;25092:65;;25082:81;;;:::o;25169:77::-;25206:7;25235:5;25224:16;;25214:32;;;:::o;25252:86::-;25287:7;25327:4;25320:5;25316:16;25305:27;;25295:43;;;:::o;25344:134::-;25402:9;25435:37;25466:5;25435:37;:::i;:::-;25422:50;;25412:66;;;:::o;25484:174::-;25558:9;25591:61;25646:5;25591:61;:::i;:::-;25578:74;;25568:90;;;:::o;25664:137::-;25738:9;25771:24;25789:5;25771:24;:::i;:::-;25758:37;;25748:53;;;:::o;25807:121::-;25865:9;25898:24;25916:5;25898:24;:::i;:::-;25885:37;;25875:53;;;:::o;25934:126::-;25984:9;26017:37;26048:5;26017:37;:::i;:::-;26004:50;;25994:66;;;:::o;26066:113::-;26116:9;26149:24;26167:5;26149:24;:::i;:::-;26136:37;;26126:53;;;:::o;26185:307::-;26253:1;26263:113;26277:6;26274:1;26271:13;26263:113;;;26362:1;26357:3;26353:11;26347:18;26343:1;26338:3;26334:11;26327:39;26299:2;26296:1;26292:10;26287:15;;26263:113;;;26394:6;26391:1;26388:13;26385:2;;;26474:1;26465:6;26460:3;26456:16;26449:27;26385:2;26234:258;;;;:::o;26498:180::-;26546:77;26543:1;26536:88;26643:4;26640:1;26633:15;26667:4;26664:1;26657:15;26684:180;26732:77;26729:1;26722:88;26829:4;26826:1;26819:15;26853:4;26850:1;26843:15;26870:180;26918:77;26915:1;26908:88;27015:4;27012:1;27005:15;27039:4;27036:1;27029:15;27056:180;27104:77;27101:1;27094:88;27201:4;27198:1;27191:15;27225:4;27222:1;27215:15;27365:117;27474:1;27471;27464:12;27488:102;27529:6;27580:2;27576:7;27571:2;27564:5;27560:14;27556:28;27546:38;;27536:54;;;:::o;27596:102::-;27638:8;27685:5;27682:1;27678:13;27657:34;;27647:51;;;:::o;27704:224::-;27844:34;27840:1;27832:6;27828:14;27821:58;27913:7;27908:2;27900:6;27896:15;27889:32;27810:118;:::o;27934:222::-;28074:34;28070:1;28062:6;28058:14;28051:58;28143:5;28138:2;28130:6;28126:15;28119:30;28040:116;:::o;28162:177::-;28302:29;28298:1;28290:6;28286:14;28279:53;28268:71;:::o;28345:180::-;28485:32;28481:1;28473:6;28469:14;28462:56;28451:74;:::o;28531:162::-;28671:14;28667:1;28659:6;28655:14;28648:38;28637:56;:::o;28699:220::-;28839:34;28835:1;28827:6;28823:14;28816:58;28908:3;28903:2;28895:6;28891:15;28884:28;28805:114;:::o;28925:156::-;29065:8;29061:1;29053:6;29049:14;29042:32;29031:50;:::o;29087:114::-;29193:8;:::o;29207:161::-;29347:13;29343:1;29335:6;29331:14;29324:37;29313:55;:::o;29374:122::-;29447:24;29465:5;29447:24;:::i;:::-;29440:5;29437:35;29427:2;;29486:1;29483;29476:12;29427:2;29417:79;:::o;29502:138::-;29583:32;29609:5;29583:32;:::i;:::-;29576:5;29573:43;29563:2;;29630:1;29627;29620:12;29563:2;29553:87;:::o;29646:116::-;29716:21;29731:5;29716:21;:::i;:::-;29709:5;29706:32;29696:2;;29752:1;29749;29742:12;29696:2;29686:76;:::o;29768:122::-;29841:24;29859:5;29841:24;:::i;:::-;29834:5;29831:35;29821:2;;29880:1;29877;29870:12;29821:2;29811:79;:::o

Swarm Source

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