ETH Price: $2,637.57 (+2.80%)

Token

KUMANU ($KUMANU)
 

Overview

Max Total Supply

100,000,000,000 $KUMANU

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,703,055,286.92273460657429637 $KUMANU

Value
$0.00
0x8e15fc652730bd018144110e184cb4d56005c135
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:
KUMANU

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-14
*/

/**

KUMA IS BACK

*/
//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;
    }


    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }


    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }


    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }


    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }


    event OwnershipTransferred(address owner);
}


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


interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);


    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);


    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);


    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;


    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;


    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract KUMANU is IERC20, Auth {
    using SafeMath for uint256;


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


    string constant _name = "KUMANU";
    string constant _symbol = "$KUMANU";
    uint8 constant _decimals = 18;


    uint256 _totalSupply = 100000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = (_totalSupply * 2) / 100; 
    uint256 public _maxWalletSize = (_totalSupply * 2) / 100; 


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


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


    uint256 liquidityFee = 1;
    uint256 MarketingFee = 4;
    uint256 DevFee = 2;
    uint256 totalFee = 7;
    uint256 feeDenominator = 100;
    
    address private DevFeeReceiver = 0x6e4d4692207e7F239d89Fc87fEa5124c777fD35C;
    address private MarketingFeeReceiver = 0x6e4d4692207e7F239d89Fc87fEa5124c777fD35C;


    IDEXRouter public router;
    address public pair;


    uint256 public launchedAt;


    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000000 * 1; // 0.3%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }


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


        address _owner = owner;
        isFeeExempt[_owner] = true;
        isTxLimitExempt[_owner] = true;


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


    receive() external payable { }


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


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


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


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


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


        return _transferFrom(sender, recipient, amount);
    }


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


        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }


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


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


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


    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
    
    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] = WETH;


        uint256 balanceBefore = address(this).balance;


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


        (bool DevSuccess, /* bytes memory data */) = payable(DevFeeReceiver).call{value: amountETHDev, gas: 30000}("");
        require(DevSuccess, "receiver rejected ETH transfer");
        (bool MarketingSuccess, /* bytes memory data */) = payable(MarketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "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 buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WETH;
        path[1] = address(this);


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


    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }


    function launch() internal {
        launchedAt = block.number;
    }


    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _maxTxAmount = amount;
    }


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


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


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


    function setFees(uint256 _liquidityFee, uint256 _MarketingFee, uint256 _DevFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        MarketingFee = _MarketingFee;
        DevFee = _DevFee;
        totalFee = _liquidityFee.add(_MarketingFee).add(_DevFee);
        feeDenominator = _feeDenominator;
    }


    function setFeeReceiver(address _DevFeeReceiver, address _MarketingFeeReceiver) external authorized {
        DevFeeReceiver = _DevFeeReceiver;
        MarketingFeeReceiver = _MarketingFeeReceiver;
    }


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


    function manualSend() external authorized {
        uint256 contractETHBalance = address(this).balance;
        payable(DevFeeReceiver).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(DevFeeReceiver).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":"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_DevFeeReceiver","type":"address"},{"internalType":"address","name":"_MarketingFeeReceiver","type":"address"}],"name":"setFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_MarketingFee","type":"uint256"},{"internalType":"uint256","name":"_DevFee","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":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","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"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620000ee919062000875565b64174876e800620001009190620009b2565b60055560646002600554620001169190620009b2565b620001229190620007e2565b60065560646002600554620001389190620009b2565b620001449190620007e2565b6007556001600c556004600d556002600e556007600f556064601055736e4d4692207e7f239d89fc87fea5124c777fd35c601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736e4d4692207e7f239d89fc87fea5124c777fd35c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601660006101000a81548160ff0219169083151502179055506001620f42406005546200023a9190620007e2565b620002469190620009b2565b6017553480156200025657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ae57600080fd5b505afa158015620003c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e9919062000744565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200044792919062000798565b602060405180830381600087803b1580156200046257600080fd5b505af115801562000477573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049d919062000744565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600554600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040516200071e9190620007c5565b60405180910390a35062000ae8565b6000815190506200073e8162000ace565b92915050565b6000602082840312156200075d576200075c62000abc565b5b60006200076d848285016200072d565b91505092915050565b620007818162000a13565b82525050565b620007928162000a47565b82525050565b6000604082019050620007af600083018562000776565b620007be602083018462000776565b9392505050565b6000602082019050620007dc600083018462000787565b92915050565b6000620007ef8262000a47565b9150620007fc8362000a47565b9250826200080f576200080e62000a8d565b5b828204905092915050565b6000808291508390505b60018511156200086c5780860481111562000844576200084362000a5e565b5b6001851615620008545780820291505b8081029050620008648562000ac1565b945062000824565b94509492505050565b6000620008828262000a47565b91506200088f8362000a51565b9250620008be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008c6565b905092915050565b600082620008d85760019050620009ab565b81620008e85760009050620009ab565b81600181146200090157600281146200090c5762000942565b6001915050620009ab565b60ff84111562000921576200092062000a5e565b5b8360020a9150848211156200093b576200093a62000a5e565b5b50620009ab565b5060208310610133831016604e8410600b84101617156200097c5782820a90508381111562000976576200097562000a5e565b5b620009ab565b6200098b84848460016200081a565b92509050818404811115620009a557620009a462000a5e565b5b81810290505b9392505050565b6000620009bf8262000a47565b9150620009cc8362000a47565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a085762000a0762000a5e565b5b828202905092915050565b600062000a208262000a27565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000ad98162000a13565b811462000ae557600080fd5b50565b6137d48062000af86000396000f3fe6080604052600436106102085760003560e01c8063893d20e811610118578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b146107ae578063f4293890146107d7578063f84ba65d146107ee578063f887ea4014610817578063fe9fbb80146108425761020f565b8063dd62ed3e146106f6578063df20fd4914610733578063e66db25e1461075c578063f0b37c04146107855761020f565b8063a9059cbb116100e7578063a9059cbb146105ff578063b6a5d7de1461063c578063bf56b37114610665578063d51ed1c814610690578063dc93cf70146106cd5761020f565b8063893d20e8146105535780638f9a55c01461057e57806395d89b41146105a9578063a8aa1b31146105d45761020f565b8063313ce5671161019b578063658d4b7f1161016a578063658d4b7f1461046e5780636ddd1713146104975780636fcba377146104c257806370a08231146104eb5780637d1db4a5146105285761020f565b8063313ce567146103b4578063571ac8b0146103df5780635c85974f1461041c5780635d0044ca146104455761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f5780632b112e491461034c5780632f54bf6e146103775761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780631161ae39146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961087f565b604051610236919061317f565b60405180910390f35b34801561024b57600080fd5b50610254610885565b604051610261919061305d565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612b45565b6108c2565b60405161029e9190613027565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612c1f565b6109b4565b6040516102db9190613027565b60405180910390f35b3480156102f057600080fd5b506102f96109c9565b604051610306919061317f565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190612ab2565b6109d3565b6040516103439190613027565b60405180910390f35b34801561035857600080fd5b50610361610bd3565b60405161036e919061317f565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612a18565b610c55565b6040516103ab9190613027565b60405180910390f35b3480156103c057600080fd5b506103c9610cae565b6040516103d6919061321d565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612a18565b610cb7565b6040516104139190613027565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612bc5565b610cea565b005b34801561045157600080fd5b5061046c60048036038101906104679190612bc5565b610d58565b005b34801561047a57600080fd5b5061049560048036038101906104909190612b05565b610dc5565b005b3480156104a357600080fd5b506104ac610e68565b6040516104b99190613027565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e49190612cb2565b610e7b565b005b3480156104f757600080fd5b50610512600480360381019061050d9190612a18565b610f10565b60405161051f919061317f565b60405180910390f35b34801561053457600080fd5b5061053d610f59565b60405161054a919061317f565b60405180910390f35b34801561055f57600080fd5b50610568610f5f565b6040516105759190612f90565b60405180910390f35b34801561058a57600080fd5b50610593610f88565b6040516105a0919061317f565b60405180910390f35b3480156105b557600080fd5b506105be610f8e565b6040516105cb919061305d565b60405180910390f35b3480156105e057600080fd5b506105e9610fcb565b6040516105f69190612f90565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612b45565b610ff1565b6040516106339190613027565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612a18565b611006565b005b34801561067157600080fd5b5061067a6110a8565b604051610687919061317f565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190612bc5565b6110ae565b6040516106c4919061317f565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190612a18565b611120565b005b34801561070257600080fd5b5061071d60048036038101906107189190612a72565b6112d1565b60405161072a919061317f565b60405180910390f35b34801561073f57600080fd5b5061075a60048036038101906107559190612b85565b611358565b005b34801561076857600080fd5b50610783600480360381019061077e9190612a72565b6113c5565b005b34801561079157600080fd5b506107ac60048036038101906107a79190612a18565b611493565b005b3480156107ba57600080fd5b506107d560048036038101906107d09190612a45565b611536565b005b3480156107e357600080fd5b506107ec61164f565b005b3480156107fa57600080fd5b5061081560048036038101906108109190612b05565b611708565b005b34801561082357600080fd5b5061082c6117ab565b6040516108399190613042565b60405180910390f35b34801561084e57600080fd5b5061086960048036038101906108649190612a18565b6117d1565b6040516108769190613027565b60405180910390f35b60175481565b60606040518060400160405280600681526020017f4b554d414e550000000000000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109a2919061317f565b60405180910390a36001905092915050565b6000826109c0836110ae565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bbf57610b3e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bca84848461188b565b90509392505050565b6000610c50610c03600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f10565b610c42610c31600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f10565b600554611d1a90919063ffffffff16565b611d1a90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610ce3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c2565b9050919050565b610cf3336117d1565b610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d299061315f565b60405180910390fd5b6103e8600554610d4291906132ee565b811015610d4e57600080fd5b8060068190555050565b610d6133610c55565b610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d979061313f565b60405180910390fd5b6064600554610daf91906132ee565b811015610dbb57600080fd5b8060078190555050565b610dce336117d1565b610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e049061315f565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900460ff1681565b610e84336117d1565b610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba9061315f565b60405180910390fd5b83600c8190555082600d8190555081600e81905550610efd82610eef8587611d6490919063ffffffff16565b611d6490919063ffffffff16565b600f819055508060108190555050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600781526020017f244b554d414e5500000000000000000000000000000000000000000000000000815250905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ffe33848461188b565b905092915050565b61100f33610c55565b61104e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110459061313f565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b60006111196110bb610bd3565b61110b6110fc60026110ee601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f10565b611dc290919063ffffffff16565b85611dc290919063ffffffff16565b611e3d90919063ffffffff16565b9050919050565b611129336117d1565b611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f9061315f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce906130bf565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112129190612f90565b60206040518083038186803b15801561122a57600080fd5b505afa15801561123e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112629190612bf2565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112cc573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611361336117d1565b6113a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113979061315f565b60405180910390fd5b81601660006101000a81548160ff021916908315150217905550806017819055505050565b6113ce336117d1565b61140d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114049061315f565b60405180910390fd5b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61149c33610c55565b6114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d29061313f565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61153f33610c55565b61157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115759061313f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516116449190612fab565b60405180910390a150565b611658336117d1565b611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e9061315f565b60405180910390fd5b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611704573d6000803e3d6000fd5b5050565b611711336117d1565b611750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117479061315f565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600083831115829061186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866919061305d565b60405180910390fd5b506000838561187e9190613379565b9050809150509392505050565b6000601860009054906101000a900460ff16156118b4576118ad848484611e87565b9050611d13565b6118be848361205a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561196a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a5357600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a13575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a109190613298565b11155b611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a499061307f565b60405180910390fd5b5b611a5b6120f7565b15611a6957611a686121ce565b5b611a71612698565b158015611acb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611b25576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611b1c57600080fd5b611b246126a5565b5b611bae826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bfc856126ae565b611c065782611c11565b611c108584612705565b5b9050611c6581600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6490919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d05919061317f565b60405180910390a360019150505b9392505050565b6000611d5c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611827565b905092915050565b6000808284611d739190613298565b905083811015611db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daf906130df565b60405180910390fd5b8091505092915050565b600080831415611dd55760009050611e37565b60008284611de3919061331f565b9050828482611df291906132ee565b14611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e299061311f565b60405180910390fd5b809150505b92915050565b6000611e7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612849565b905092915050565b6000611f12826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6490919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612047919061317f565b60405180910390a3600190509392505050565b600654811115806120b45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea9061309f565b60405180910390fd5b5050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156121645750601860009054906101000a900460ff16155b801561217c5750601660009054906101000a900460ff165b80156121c95750601754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601860006101000a81548160ff02191690831515021790555060006121f430610f10565b905060006122346002612226600f54612218600c5487611dc290919063ffffffff16565b611e3d90919063ffffffff16565b611e3d90919063ffffffff16565b9050600061224b8284611d1a90919063ffffffff16565b90506000600267ffffffffffffffff81111561226a57612269613540565b5b6040519080825280602002602001820160405280156122985781602001602082028036833780820191505090505b50905030816000815181106122b0576122af613511565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061232157612320613511565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016123c495949392919061319a565b600060405180830381600087803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b50505050600061240b8247611d1a90919063ffffffff16565b905060006124396124286002600c54611e3d90919063ffffffff16565b600f54611d1a90919063ffffffff16565b9050600061247760026124698461245b600c5488611dc290919063ffffffff16565b611e3d90919063ffffffff16565b611e3d90919063ffffffff16565b905060006124a283612494600d5487611dc290919063ffffffff16565b611e3d90919063ffffffff16565b905060008183866124b39190613379565b6124bd9190613379565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161250b90612f7b565b600060405180830381858888f193505050503d8060008114612549576040519150601f19603f3d011682016040523d82523d6000602084013e61254e565b606091505b5050905080612592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612589906130ff565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684617530906040516125de90612f7b565b600060405180830381858888f193505050503d806000811461261c576040519150601f19603f3d011682016040523d82523d6000602084013e612621565b606091505b5050905080612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265c906130ff565b60405180910390fd5b61266f8b866128ac565b5050505050505050505050506000601860006101000a81548160ff021916908315150217905550565b6000806015541415905090565b43601581905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612731601054612723600f5486611dc290919063ffffffff16565b611e3d90919063ffffffff16565b905061278581600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6490919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612825919061317f565b60405180910390a36128408184611d1a90919063ffffffff16565b91505092915050565b60008083118290612890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612887919061305d565b60405180910390fd5b506000838561289f91906132ee565b9050809150509392505050565b60008211156129ab57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161291c96959493929190612fc6565b6060604051808303818588803b15801561293557600080fd5b505af1158015612949573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061296e9190612c5f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516129a29291906131f4565b60405180910390a15b5050565b6000813590506129be81613742565b92915050565b6000813590506129d381613759565b92915050565b6000813590506129e881613770565b92915050565b6000813590506129fd81613787565b92915050565b600081519050612a1281613787565b92915050565b600060208284031215612a2e57612a2d61356f565b5b6000612a3c848285016129af565b91505092915050565b600060208284031215612a5b57612a5a61356f565b5b6000612a69848285016129c4565b91505092915050565b60008060408385031215612a8957612a8861356f565b5b6000612a97858286016129af565b9250506020612aa8858286016129af565b9150509250929050565b600080600060608486031215612acb57612aca61356f565b5b6000612ad9868287016129af565b9350506020612aea868287016129af565b9250506040612afb868287016129ee565b9150509250925092565b60008060408385031215612b1c57612b1b61356f565b5b6000612b2a858286016129af565b9250506020612b3b858286016129d9565b9150509250929050565b60008060408385031215612b5c57612b5b61356f565b5b6000612b6a858286016129af565b9250506020612b7b858286016129ee565b9150509250929050565b60008060408385031215612b9c57612b9b61356f565b5b6000612baa858286016129d9565b9250506020612bbb858286016129ee565b9150509250929050565b600060208284031215612bdb57612bda61356f565b5b6000612be9848285016129ee565b91505092915050565b600060208284031215612c0857612c0761356f565b5b6000612c1684828501612a03565b91505092915050565b60008060408385031215612c3657612c3561356f565b5b6000612c44858286016129ee565b9250506020612c55858286016129ee565b9150509250929050565b600080600060608486031215612c7857612c7761356f565b5b6000612c8686828701612a03565b9350506020612c9786828701612a03565b9250506040612ca886828701612a03565b9150509250925092565b60008060008060808587031215612ccc57612ccb61356f565b5b6000612cda878288016129ee565b9450506020612ceb878288016129ee565b9350506040612cfc878288016129ee565b9250506060612d0d878288016129ee565b91505092959194509250565b6000612d258383612d40565b60208301905092915050565b612d3a81613414565b82525050565b612d49816133ad565b82525050565b612d58816133ad565b82525050565b6000612d6982613248565b612d73818561326b565b9350612d7e83613238565b8060005b83811015612daf578151612d968882612d19565b9750612da18361325e565b925050600181019050612d82565b5085935050505092915050565b612dc5816133d1565b82525050565b612dd481613426565b82525050565b612de38161344a565b82525050565b6000612df482613253565b612dfe8185613287565b9350612e0e818560208601613480565b612e1781613574565b840191505092915050565b6000612e2f602583613287565b9150612e3a82613585565b604082019050919050565b6000612e52601183613287565b9150612e5d826135d4565b602082019050919050565b6000612e75602383613287565b9150612e80826135fd565b604082019050919050565b6000612e98601b83613287565b9150612ea38261364c565b602082019050919050565b6000612ebb601e83613287565b9150612ec682613675565b602082019050919050565b6000612ede602183613287565b9150612ee98261369e565b604082019050919050565b6000612f01600683613287565b9150612f0c826136ed565b602082019050919050565b6000612f2460008361327c565b9150612f2f82613716565b600082019050919050565b6000612f47600b83613287565b9150612f5282613719565b602082019050919050565b612f66816133fd565b82525050565b612f7581613407565b82525050565b6000612f8682612f17565b9150819050919050565b6000602082019050612fa56000830184612d4f565b92915050565b6000602082019050612fc06000830184612d31565b92915050565b600060c082019050612fdb6000830189612d4f565b612fe86020830188612f5d565b612ff56040830187612dda565b6130026060830186612dda565b61300f6080830185612d4f565b61301c60a0830184612f5d565b979650505050505050565b600060208201905061303c6000830184612dbc565b92915050565b60006020820190506130576000830184612dcb565b92915050565b600060208201905081810360008301526130778184612de9565b905092915050565b6000602082019050818103600083015261309881612e22565b9050919050565b600060208201905081810360008301526130b881612e45565b9050919050565b600060208201905081810360008301526130d881612e68565b9050919050565b600060208201905081810360008301526130f881612e8b565b9050919050565b6000602082019050818103600083015261311881612eae565b9050919050565b6000602082019050818103600083015261313881612ed1565b9050919050565b6000602082019050818103600083015261315881612ef4565b9050919050565b6000602082019050818103600083015261317881612f3a565b9050919050565b60006020820190506131946000830184612f5d565b92915050565b600060a0820190506131af6000830188612f5d565b6131bc6020830187612dda565b81810360408301526131ce8186612d5e565b90506131dd6060830185612d4f565b6131ea6080830184612f5d565b9695505050505050565b60006040820190506132096000830185612f5d565b6132166020830184612f5d565b9392505050565b60006020820190506132326000830184612f6c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006132a3826133fd565b91506132ae836133fd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132e3576132e26134b3565b5b828201905092915050565b60006132f9826133fd565b9150613304836133fd565b925082613314576133136134e2565b5b828204905092915050565b600061332a826133fd565b9150613335836133fd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561336e5761336d6134b3565b5b828202905092915050565b6000613384826133fd565b915061338f836133fd565b9250828210156133a2576133a16134b3565b5b828203905092915050565b60006133b8826133dd565b9050919050565b60006133ca826133dd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061341f8261345c565b9050919050565b600061343182613438565b9050919050565b6000613443826133dd565b9050919050565b6000613455826133fd565b9050919050565b60006134678261346e565b9050919050565b6000613479826133dd565b9050919050565b60005b8381101561349e578082015181840152602081019050613483565b838111156134ad576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61374b816133ad565b811461375657600080fd5b50565b613762816133bf565b811461376d57600080fd5b50565b613779816133d1565b811461378457600080fd5b50565b613790816133fd565b811461379b57600080fd5b5056fea26469706673582212209ebbf0e44b3001be3f3888e2c42f2af1d593134bd6f7f66651748a5ea63d9fb364736f6c63430008050033

Deployed Bytecode

0x6080604052600436106102085760003560e01c8063893d20e811610118578063dd62ed3e116100a0578063f2fde38b1161006f578063f2fde38b146107ae578063f4293890146107d7578063f84ba65d146107ee578063f887ea4014610817578063fe9fbb80146108425761020f565b8063dd62ed3e146106f6578063df20fd4914610733578063e66db25e1461075c578063f0b37c04146107855761020f565b8063a9059cbb116100e7578063a9059cbb146105ff578063b6a5d7de1461063c578063bf56b37114610665578063d51ed1c814610690578063dc93cf70146106cd5761020f565b8063893d20e8146105535780638f9a55c01461057e57806395d89b41146105a9578063a8aa1b31146105d45761020f565b8063313ce5671161019b578063658d4b7f1161016a578063658d4b7f1461046e5780636ddd1713146104975780636fcba377146104c257806370a08231146104eb5780637d1db4a5146105285761020f565b8063313ce567146103b4578063571ac8b0146103df5780635c85974f1461041c5780635d0044ca146104455761020f565b806318160ddd116101d757806318160ddd146102e457806323b872dd1461030f5780632b112e491461034c5780632f54bf6e146103775761020f565b80630445b6671461021457806306fdde031461023f578063095ea7b31461026a5780631161ae39146102a75761020f565b3661020f57005b600080fd5b34801561022057600080fd5b5061022961087f565b604051610236919061317f565b60405180910390f35b34801561024b57600080fd5b50610254610885565b604051610261919061305d565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612b45565b6108c2565b60405161029e9190613027565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612c1f565b6109b4565b6040516102db9190613027565b60405180910390f35b3480156102f057600080fd5b506102f96109c9565b604051610306919061317f565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190612ab2565b6109d3565b6040516103439190613027565b60405180910390f35b34801561035857600080fd5b50610361610bd3565b60405161036e919061317f565b60405180910390f35b34801561038357600080fd5b5061039e60048036038101906103999190612a18565b610c55565b6040516103ab9190613027565b60405180910390f35b3480156103c057600080fd5b506103c9610cae565b6040516103d6919061321d565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612a18565b610cb7565b6040516104139190613027565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612bc5565b610cea565b005b34801561045157600080fd5b5061046c60048036038101906104679190612bc5565b610d58565b005b34801561047a57600080fd5b5061049560048036038101906104909190612b05565b610dc5565b005b3480156104a357600080fd5b506104ac610e68565b6040516104b99190613027565b60405180910390f35b3480156104ce57600080fd5b506104e960048036038101906104e49190612cb2565b610e7b565b005b3480156104f757600080fd5b50610512600480360381019061050d9190612a18565b610f10565b60405161051f919061317f565b60405180910390f35b34801561053457600080fd5b5061053d610f59565b60405161054a919061317f565b60405180910390f35b34801561055f57600080fd5b50610568610f5f565b6040516105759190612f90565b60405180910390f35b34801561058a57600080fd5b50610593610f88565b6040516105a0919061317f565b60405180910390f35b3480156105b557600080fd5b506105be610f8e565b6040516105cb919061305d565b60405180910390f35b3480156105e057600080fd5b506105e9610fcb565b6040516105f69190612f90565b60405180910390f35b34801561060b57600080fd5b5061062660048036038101906106219190612b45565b610ff1565b6040516106339190613027565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e9190612a18565b611006565b005b34801561067157600080fd5b5061067a6110a8565b604051610687919061317f565b60405180910390f35b34801561069c57600080fd5b506106b760048036038101906106b29190612bc5565b6110ae565b6040516106c4919061317f565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190612a18565b611120565b005b34801561070257600080fd5b5061071d60048036038101906107189190612a72565b6112d1565b60405161072a919061317f565b60405180910390f35b34801561073f57600080fd5b5061075a60048036038101906107559190612b85565b611358565b005b34801561076857600080fd5b50610783600480360381019061077e9190612a72565b6113c5565b005b34801561079157600080fd5b506107ac60048036038101906107a79190612a18565b611493565b005b3480156107ba57600080fd5b506107d560048036038101906107d09190612a45565b611536565b005b3480156107e357600080fd5b506107ec61164f565b005b3480156107fa57600080fd5b5061081560048036038101906108109190612b05565b611708565b005b34801561082357600080fd5b5061082c6117ab565b6040516108399190613042565b60405180910390f35b34801561084e57600080fd5b5061086960048036038101906108649190612a18565b6117d1565b6040516108769190613027565b60405180910390f35b60175481565b60606040518060400160405280600681526020017f4b554d414e550000000000000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109a2919061317f565b60405180910390a36001905092915050565b6000826109c0836110ae565b11905092915050565b6000600554905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bbf57610b3e826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610bca84848461188b565b90509392505050565b6000610c50610c03600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f10565b610c42610c31600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f10565b600554611d1a90919063ffffffff16565b611d1a90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006012905090565b6000610ce3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108c2565b9050919050565b610cf3336117d1565b610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d299061315f565b60405180910390fd5b6103e8600554610d4291906132ee565b811015610d4e57600080fd5b8060068190555050565b610d6133610c55565b610da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d979061313f565b60405180910390fd5b6064600554610daf91906132ee565b811015610dbb57600080fd5b8060078190555050565b610dce336117d1565b610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e049061315f565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601660009054906101000a900460ff1681565b610e84336117d1565b610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba9061315f565b60405180910390fd5b83600c8190555082600d8190555081600e81905550610efd82610eef8587611d6490919063ffffffff16565b611d6490919063ffffffff16565b600f819055508060108190555050505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075481565b60606040518060400160405280600781526020017f244b554d414e5500000000000000000000000000000000000000000000000000815250905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ffe33848461188b565b905092915050565b61100f33610c55565b61104e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110459061313f565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60155481565b60006111196110bb610bd3565b61110b6110fc60026110ee601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f10565b611dc290919063ffffffff16565b85611dc290919063ffffffff16565b611e3d90919063ffffffff16565b9050919050565b611129336117d1565b611168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115f9061315f565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce906130bf565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112129190612f90565b60206040518083038186803b15801561122a57600080fd5b505afa15801561123e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112629190612bf2565b9050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112cc573d6000803e3d6000fd5b505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611361336117d1565b6113a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113979061315f565b60405180910390fd5b81601660006101000a81548160ff021916908315150217905550806017819055505050565b6113ce336117d1565b61140d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114049061315f565b60405180910390fd5b81601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61149c33610c55565b6114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d29061313f565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61153f33610c55565b61157e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115759061313f565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516116449190612fab565b60405180910390a150565b611658336117d1565b611697576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168e9061315f565b60405180910390fd5b6000479050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611704573d6000803e3d6000fd5b5050565b611711336117d1565b611750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117479061315f565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600083831115829061186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866919061305d565b60405180910390fd5b506000838561187e9190613379565b9050809150509392505050565b6000601860009054906101000a900460ff16156118b4576118ad848484611e87565b9050611d13565b6118be848361205a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561196a5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a5357600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a13575060075482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a109190613298565b11155b611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a499061307f565b60405180910390fd5b5b611a5b6120f7565b15611a6957611a686121ce565b5b611a71612698565b158015611acb5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611b25576000600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611b1c57600080fd5b611b246126a5565b5b611bae826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bfc856126ae565b611c065782611c11565b611c108584612705565b5b9050611c6581600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6490919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d05919061317f565b60405180910390a360019150505b9392505050565b6000611d5c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611827565b905092915050565b6000808284611d739190613298565b905083811015611db8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611daf906130df565b60405180910390fd5b8091505092915050565b600080831415611dd55760009050611e37565b60008284611de3919061331f565b9050828482611df291906132ee565b14611e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e299061311f565b60405180910390fd5b809150505b92915050565b6000611e7f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612849565b905092915050565b6000611f12826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118279092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6490919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612047919061317f565b60405180910390a3600190509392505050565b600654811115806120b45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6120f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ea9061309f565b60405180910390fd5b5050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156121645750601860009054906101000a900460ff16155b801561217c5750601660009054906101000a900460ff165b80156121c95750601754600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601860006101000a81548160ff02191690831515021790555060006121f430610f10565b905060006122346002612226600f54612218600c5487611dc290919063ffffffff16565b611e3d90919063ffffffff16565b611e3d90919063ffffffff16565b9050600061224b8284611d1a90919063ffffffff16565b90506000600267ffffffffffffffff81111561226a57612269613540565b5b6040519080825280602002602001820160405280156122985781602001602082028036833780820191505090505b50905030816000815181106122b0576122af613511565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061232157612320613511565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016123c495949392919061319a565b600060405180830381600087803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b50505050600061240b8247611d1a90919063ffffffff16565b905060006124396124286002600c54611e3d90919063ffffffff16565b600f54611d1a90919063ffffffff16565b9050600061247760026124698461245b600c5488611dc290919063ffffffff16565b611e3d90919063ffffffff16565b611e3d90919063ffffffff16565b905060006124a283612494600d5487611dc290919063ffffffff16565b611e3d90919063ffffffff16565b905060008183866124b39190613379565b6124bd9190613379565b90506000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161250b90612f7b565b600060405180830381858888f193505050503d8060008114612549576040519150601f19603f3d011682016040523d82523d6000602084013e61254e565b606091505b5050905080612592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612589906130ff565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684617530906040516125de90612f7b565b600060405180830381858888f193505050503d806000811461261c576040519150601f19603f3d011682016040523d82523d6000602084013e612621565b606091505b5050905080612665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265c906130ff565b60405180910390fd5b61266f8b866128ac565b5050505050505050505050506000601860006101000a81548160ff021916908315150217905550565b6000806015541415905090565b43601581905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612731601054612723600f5486611dc290919063ffffffff16565b611e3d90919063ffffffff16565b905061278581600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d6490919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612825919061317f565b60405180910390a36128408184611d1a90919063ffffffff16565b91505092915050565b60008083118290612890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612887919061305d565b60405180910390fd5b506000838561289f91906132ee565b9050809150509392505050565b60008211156129ab57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008030426040518863ffffffff1660e01b815260040161291c96959493929190612fc6565b6060604051808303818588803b15801561293557600080fd5b505af1158015612949573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061296e9190612c5f565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450681836040516129a29291906131f4565b60405180910390a15b5050565b6000813590506129be81613742565b92915050565b6000813590506129d381613759565b92915050565b6000813590506129e881613770565b92915050565b6000813590506129fd81613787565b92915050565b600081519050612a1281613787565b92915050565b600060208284031215612a2e57612a2d61356f565b5b6000612a3c848285016129af565b91505092915050565b600060208284031215612a5b57612a5a61356f565b5b6000612a69848285016129c4565b91505092915050565b60008060408385031215612a8957612a8861356f565b5b6000612a97858286016129af565b9250506020612aa8858286016129af565b9150509250929050565b600080600060608486031215612acb57612aca61356f565b5b6000612ad9868287016129af565b9350506020612aea868287016129af565b9250506040612afb868287016129ee565b9150509250925092565b60008060408385031215612b1c57612b1b61356f565b5b6000612b2a858286016129af565b9250506020612b3b858286016129d9565b9150509250929050565b60008060408385031215612b5c57612b5b61356f565b5b6000612b6a858286016129af565b9250506020612b7b858286016129ee565b9150509250929050565b60008060408385031215612b9c57612b9b61356f565b5b6000612baa858286016129d9565b9250506020612bbb858286016129ee565b9150509250929050565b600060208284031215612bdb57612bda61356f565b5b6000612be9848285016129ee565b91505092915050565b600060208284031215612c0857612c0761356f565b5b6000612c1684828501612a03565b91505092915050565b60008060408385031215612c3657612c3561356f565b5b6000612c44858286016129ee565b9250506020612c55858286016129ee565b9150509250929050565b600080600060608486031215612c7857612c7761356f565b5b6000612c8686828701612a03565b9350506020612c9786828701612a03565b9250506040612ca886828701612a03565b9150509250925092565b60008060008060808587031215612ccc57612ccb61356f565b5b6000612cda878288016129ee565b9450506020612ceb878288016129ee565b9350506040612cfc878288016129ee565b9250506060612d0d878288016129ee565b91505092959194509250565b6000612d258383612d40565b60208301905092915050565b612d3a81613414565b82525050565b612d49816133ad565b82525050565b612d58816133ad565b82525050565b6000612d6982613248565b612d73818561326b565b9350612d7e83613238565b8060005b83811015612daf578151612d968882612d19565b9750612da18361325e565b925050600181019050612d82565b5085935050505092915050565b612dc5816133d1565b82525050565b612dd481613426565b82525050565b612de38161344a565b82525050565b6000612df482613253565b612dfe8185613287565b9350612e0e818560208601613480565b612e1781613574565b840191505092915050565b6000612e2f602583613287565b9150612e3a82613585565b604082019050919050565b6000612e52601183613287565b9150612e5d826135d4565b602082019050919050565b6000612e75602383613287565b9150612e80826135fd565b604082019050919050565b6000612e98601b83613287565b9150612ea38261364c565b602082019050919050565b6000612ebb601e83613287565b9150612ec682613675565b602082019050919050565b6000612ede602183613287565b9150612ee98261369e565b604082019050919050565b6000612f01600683613287565b9150612f0c826136ed565b602082019050919050565b6000612f2460008361327c565b9150612f2f82613716565b600082019050919050565b6000612f47600b83613287565b9150612f5282613719565b602082019050919050565b612f66816133fd565b82525050565b612f7581613407565b82525050565b6000612f8682612f17565b9150819050919050565b6000602082019050612fa56000830184612d4f565b92915050565b6000602082019050612fc06000830184612d31565b92915050565b600060c082019050612fdb6000830189612d4f565b612fe86020830188612f5d565b612ff56040830187612dda565b6130026060830186612dda565b61300f6080830185612d4f565b61301c60a0830184612f5d565b979650505050505050565b600060208201905061303c6000830184612dbc565b92915050565b60006020820190506130576000830184612dcb565b92915050565b600060208201905081810360008301526130778184612de9565b905092915050565b6000602082019050818103600083015261309881612e22565b9050919050565b600060208201905081810360008301526130b881612e45565b9050919050565b600060208201905081810360008301526130d881612e68565b9050919050565b600060208201905081810360008301526130f881612e8b565b9050919050565b6000602082019050818103600083015261311881612eae565b9050919050565b6000602082019050818103600083015261313881612ed1565b9050919050565b6000602082019050818103600083015261315881612ef4565b9050919050565b6000602082019050818103600083015261317881612f3a565b9050919050565b60006020820190506131946000830184612f5d565b92915050565b600060a0820190506131af6000830188612f5d565b6131bc6020830187612dda565b81810360408301526131ce8186612d5e565b90506131dd6060830185612d4f565b6131ea6080830184612f5d565b9695505050505050565b60006040820190506132096000830185612f5d565b6132166020830184612f5d565b9392505050565b60006020820190506132326000830184612f6c565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006132a3826133fd565b91506132ae836133fd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132e3576132e26134b3565b5b828201905092915050565b60006132f9826133fd565b9150613304836133fd565b925082613314576133136134e2565b5b828204905092915050565b600061332a826133fd565b9150613335836133fd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561336e5761336d6134b3565b5b828202905092915050565b6000613384826133fd565b915061338f836133fd565b9250828210156133a2576133a16134b3565b5b828203905092915050565b60006133b8826133dd565b9050919050565b60006133ca826133dd565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061341f8261345c565b9050919050565b600061343182613438565b9050919050565b6000613443826133dd565b9050919050565b6000613455826133fd565b9050919050565b60006134678261346e565b9050919050565b6000613479826133dd565b9050919050565b60005b8381101561349e578082015181840152602081019050613483565b838111156134ad576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b7f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60008201527f6b656e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f21415554484f52495a4544000000000000000000000000000000000000000000600082015250565b61374b816133ad565b811461375657600080fd5b50565b613762816133bf565b811461376d57600080fd5b50565b613779816133d1565b811461378457600080fd5b50565b613790816133fd565b811461379b57600080fd5b5056fea26469706673582212209ebbf0e44b3001be3f3888e2c42f2af1d593134bd6f7f66651748a5ea63d9fb364736f6c63430008050033

Deployed Bytecode Sourcemap

5248:10571:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6509:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7473:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7897:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15598:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7203:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8421:372;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15269:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3121:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7297:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8123:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13451:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13605:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13769:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6472:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14037:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7643:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5703:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7559:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5765:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6406:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8255:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2790:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6436:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15421:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14961:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7754:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14611:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14395:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2962:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3525:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14777:174;;;;;;;;;;;;;:::i;:::-;;13899:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6375:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3297:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6509:57;;;;:::o;7473:80::-;7521:13;7545:5;;;;;;;;;;;;;;;;;7538:12;;7473:80;:::o;7897:216::-;7972:4;8024:6;7989:11;:23;8001:10;7989:23;;;;;;;;;;;;;;;:32;8013:7;7989:32;;;;;;;;;;;;;;;:41;;;;8067:7;8046:37;;8055:10;8046:37;;;8076:6;8046:37;;;;;;:::i;:::-;;;;;;;;8101:4;8094:11;;7897:216;;;;:::o;15598:150::-;15678:4;15734:6;15702:29;15722:8;15702:19;:29::i;:::-;:38;15695:45;;15598:150;;;;:::o;7203:88::-;7258:7;7276:12;;7269:19;;7203:88;:::o;8421:372::-;8521:4;8576:17;8541:11;:19;8553:6;8541:19;;;;;;;;;;;;;;;:31;8561:10;8541:31;;;;;;;;;;;;;;;;:52;8538:186;;8643:69;8679:6;8643:69;;;;;;;;;;;;;;;;;:11;:19;8655:6;8643:19;;;;;;;;;;;;;;;:31;8663:10;8643:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8609:11;:19;8621:6;8609:19;;;;;;;;;;;;;;;:31;8629:10;8609:31;;;;;;;;;;;;;;;:103;;;;8538:186;8745:40;8759:6;8767:9;8778:6;8745:13;:40::i;:::-;8738:47;;8421:372;;;;;:::o;15269:142::-;15322:7;15349:54;15387:15;15397:4;;;;;;;;;;;15387:9;:15::i;:::-;15349:33;15366:15;15376:4;;;;;;;;;;;15366:9;:15::i;:::-;15349:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;15342:61;;15269:142;:::o;3121:103::-;3176:4;3211:5;;;;;;;;;;;3200:16;;:7;:16;;;3193:23;;3121:103;;;:::o;7297:80::-;7349:5;5628:2;7358:16;;7297:80;:::o;8123:122::-;8178:4;8202:35;8210:7;8219:17;8202:7;:35::i;:::-;8195:42;;8123:122;;;:::o;13451:145::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13551:4:::1;13536:12;;:19;;;;:::i;:::-;13526:6;:29;;13518:38;;;::::0;::::1;;13582:6;13567:12;:21;;;;13451:145:::0;:::o;13605:150::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13708:3:::1;13693:12;;:18;;;;:::i;:::-;13683:6;:28;;13675:38;;;::::0;::::1;;13741:6;13724:14;:23;;;;13605:150:::0;:::o;13769:120::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13875:6:::1;13853:11;:19;13865:6;13853:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13769:120:::0;;:::o;6472:30::-;;;;;;;;;;;;;:::o;14037:348::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14188:13:::1;14173:12;:28;;;;14227:13;14212:12;:28;;;;14260:7;14251:6;:16;;;;14289:45;14326:7;14289:32;14307:13;14289;:17;;:32;;;;:::i;:::-;:36;;:45;;;;:::i;:::-;14278:8;:56;;;;14362:15;14345:14;:32;;;;14037:348:::0;;;;:::o;7643:105::-;7709:7;7727:9;:18;7737:7;7727:18;;;;;;;;;;;;;;;;7720:25;;7643:105;;;:::o;5703:54::-;;;;:::o;7559:78::-;7611:7;7629:5;;;;;;;;;;;7622:12;;7559:78;:::o;5765:56::-;;;;:::o;7383:84::-;7433:13;7457:7;;;;;;;;;;;;;;;;;7450:14;;7383:84;:::o;6406:19::-;;;;;;;;;;;;;:::o;8255:156::-;8335:4;8359:44;8373:10;8385:9;8396:6;8359:13;:44::i;:::-;8352:51;;8255:156;;;;:::o;2790:94::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2872:4:::1;2850:14:::0;:19:::1;2865:3;2850:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2790:94:::0;:::o;6436:25::-;;;;:::o;15421:167::-;15489:7;15516:64;15557:22;:20;:22::i;:::-;15516:36;15529:22;15549:1;15529:15;15539:4;;;;;;;;;;;15529:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;15516:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;15509:71;;15421:167;;;:::o;14961:292::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15062:4:::1;15044:23;;:6;:23;;;;15036:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15118:24;15152:6;15145:24;;;15178:4;15145:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15118:66;;15203:14;;;;;;;;;;;15195:32;;:50;15228:16;15195:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15025:228;14961:292:::0;:::o;7754:133::-;7838:7;7856:11;:19;7868:6;7856:19;;;;;;;;;;;;;;;:28;7876:7;7856:28;;;;;;;;;;;;;;;;7849:35;;7754:133;;;;:::o;14611:156::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14717:8:::1;14703:11;;:22;;;;;;;;;;;;;;;;;;14752:7;14736:13;:23;;;;14611:156:::0;;:::o;14395:206::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14523:15:::1;14506:14;;:32;;;;;;;;;;;;;;;;;;14572:21;14549:20;;:44;;;;;;;;;;;;;;;;;;14395:206:::0;;:::o;2962:97::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3046:5:::1;3024:14;:19;3039:3;3024:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2962:97:::0;:::o;3525:173::-;2601:19;2609:10;2601:7;:19::i;:::-;2593:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3609:3:::1;3601:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3645:4;3623:14:::0;:19:::1;3638:3;3623:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3665:25;3686:3;3665:25;;;;;;:::i;:::-;;;;;;;;3525:173:::0;:::o;14777:174::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14830:26:::1;14859:21;14830:50;;14899:14;;;;;;;;;;;14891:32;;:52;14924:18;14891:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14819:132;14777:174::o:0;13899:128::-;2711:24;2724:10;2711:12;:24::i;:::-;2703:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14013:6:::1;13987:15;:23;14003:6;13987:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13899:128:::0;;:::o;6375:24::-;;;;;;;;;;;;;:::o;3297:107::-;3353:4;3377:14;:19;3392:3;3377:19;;;;;;;;;;;;;;;;;;;;;;;;;3370:26;;3297:107;;;:::o;443:194::-;529:7;562:1;557;:6;;565:12;549:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;589:9;605:1;601;:5;;;;:::i;:::-;589:17;;628:1;621:8;;;443:194;;;;;:::o;8803:939::-;8895:4;8915:6;;;;;;;;;;;8912:63;;;8931:41;8946:6;8954:9;8965:6;8931:14;:41::i;:::-;8924:48;;;;8912:63;8995:28;9008:6;9016;8995:12;:28::i;:::-;9061:4;;;;;;;;;;;9048:17;;:9;:17;;;;:38;;;;;9082:4;;;;;;;;;;;9069:17;;:9;:17;;;;9048:38;9044:198;;;9111:15;:26;9127:9;9111:26;;;;;;;;;;;;;;;;;;;;;;;;;:77;;;;9174:14;;9164:6;9141:9;:20;9151:9;9141:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9111:77;9103:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;9044:198;9265:16;:14;:16::i;:::-;9262:35;;;9284:10;:8;:10::i;:::-;9262:35;9315:10;:8;:10::i;:::-;9314:11;:32;;;;;9342:4;;;;;;;;;;;9329:17;;:9;:17;;;9314:32;9311:81;;;9377:1;9357:9;:17;9367:6;9357:17;;;;;;;;;;;;;;;;:21;9349:30;;;;;;9381:8;:6;:8::i;:::-;9311:81;9426:53;9448:6;9426:53;;;;;;;;;;;;;;;;;:9;:17;9436:6;9426:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9406:9;:17;9416:6;9406:17;;;;;;;;;;;;;;;:73;;;;9494:22;9519:21;9533:6;9519:13;:21::i;:::-;:56;;9569:6;9519:56;;;9543:23;9551:6;9559;9543:7;:23::i;:::-;9519:56;9494:81;;9609:40;9634:14;9609:9;:20;9619:9;9609:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9586:9;:20;9596:9;9586:20;;;;;;;;;;;;;;;:63;;;;9686:9;9669:43;;9678:6;9669:43;;;9697:14;9669:43;;;;;;:::i;:::-;;;;;;;;9730:4;9723:11;;;8803:939;;;;;;:::o;301:136::-;359:7;386:43;390:1;393;386:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;379:50;;301:136;;;;:::o;112:183::-;170:7;190:9;206:1;202;:5;;;;:::i;:::-;190:17;;231:1;226;:6;;218:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;286:1;279:8;;;112:183;;;;:::o;643:254::-;701:7;730:1;725;:6;721:47;;;755:1;748:8;;;;721:47;782:9;798:1;794;:5;;;;:::i;:::-;782:17;;827:1;822;818;:5;;;;:::i;:::-;:10;810:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;888:1;881:8;;;643:254;;;;;:::o;903:132::-;961:7;988:39;992:1;995;988:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;981:46;;903:132;;;;:::o;9754:330::-;9847:4;9884:53;9906:6;9884:53;;;;;;;;;;;;;;;;;:9;:17;9894:6;9884:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9864:9;:17;9874:6;9864:17;;;;;;;;;;;;;;;:73;;;;9971:32;9996:6;9971:9;:20;9981:9;9971:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9948:9;:20;9958:9;9948:20;;;;;;;;;;;;;;;:55;;;;10036:9;10019:35;;10028:6;10019:35;;;10047:6;10019:35;;;;;;:::i;:::-;;;;;;;;10072:4;10065:11;;9754:330;;;;;:::o;10094:166::-;10191:12;;10181:6;:22;;:49;;;;10207:15;:23;10223:6;10207:23;;;;;;;;;;;;;;;;;;;;;;;;;10181:49;10173:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10094:166;;:::o;10747:197::-;10796:4;10834;;;;;;;;;;;10820:18;;:10;:18;;;;:38;;;;;10852:6;;;;;;;;;;;10851:7;10820:38;:62;;;;;10871:11;;;;;;;;;;;10820:62;:116;;;;;10923:13;;10895:9;:24;10913:4;10895:24;;;;;;;;;;;;;;;;:41;;10820:116;10813:123;;10747:197;:::o;10954:1515::-;6630:4;6621:6;;:13;;;;;;;;;;;;;;;;;;11003:28:::1;11034:24;11052:4;11034:9;:24::i;:::-;11003:55;;11069:23;11095:59;11152:1;11095:52;11138:8;;11095:38;11120:12;;11095:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11069:85;;11165:20;11188:41;11213:15;11188:20;:24;;:41;;;;:::i;:::-;11165:64;;11244:21;11282:1;11268:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11244:40;;11313:4;11295;11300:1;11295:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11339:4;;;;;;;;;;;11329;11334:1;11329:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11358:21;11382;11358:45;;11418:6;;;;;;;;;;;:57;;;11490:12;11517:1;11533:4;11560;11580:15;11418:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11617:17;11637:40;11663:13;11637:21;:25;;:40;;;;:::i;:::-;11617:60;;11688:19;11710:33;11723:19;11740:1;11723:12;;:16;;:19;;;;:::i;:::-;11710:8;;:12;;:33;;;;:::i;:::-;11688:55;;11754:26;11783:51;11832:1;11783:44;11815:11;11783:27;11797:12;;11783:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;11754:80;;11845:26;11874:44;11906:11;11874:27;11888:12;;11874:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;11845:73;;11929:20;11985:18;11964;11952:9;:30;;;;:::i;:::-;:51;;;;:::i;:::-;11929:74;;12019:15;12071:14;;;;;;;;;;;12063:28;;12099:12;12118:5;12063:65;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12018:110;;;12147:10;12139:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;12204:21;12262:20;;;;;;;;;;;12254:34;;12296:18;12321:5;12254:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12203:128;;;12350:16;12342:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12412:49;12425:15;12442:18;12412:12;:49::i;:::-;10992:1477;;;;;;;;;;;;6648:5:::0;6639:6;;:14;;;;;;;;;;;;;;;;;;10954:1515::o;13270:90::-;13313:4;13351:1;13337:10;;:15;;13330:22;;13270:90;:::o;13370:71::-;13421:12;13408:10;:25;;;;13370:71::o;10272:114::-;10334:4;10359:11;:19;10371:6;10359:19;;;;;;;;;;;;;;;;;;;;;;;;;10358:20;10351:27;;10272:114;;;:::o;10400:337::-;10467:7;10487:17;10507:40;10532:14;;10507:20;10518:8;;10507:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;10487:60;;10589:39;10618:9;10589;:24;10607:4;10589:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10562:9;:24;10580:4;10562:24;;;;;;;;;;;;;;;:66;;;;10669:4;10644:42;;10653:6;10644:42;;;10676:9;10644:42;;;;;;:::i;:::-;;;;;;;;10708:21;10719:9;10708:6;:10;;:21;;;;:::i;:::-;10701:28;;;10400:337;;;;:::o;1041:347::-;1127:7;1226:1;1222;:5;1229:12;1214:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1253:9;1269:1;1265;:5;;;;:::i;:::-;1253:17;;1379:1;1372:8;;;1041:347;;;;;:::o;12479:408::-;12573:1;12559:11;:15;12556:324;;;12590:6;;;;;;;;;;;:22;;;12620:9;12657:4;12681:11;12711:1;12731;12759:4;12783:15;12590:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12833:35;12845:9;12856:11;12833:35;;;;;;;:::i;:::-;;;;;;;;12556:324;12479:408;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;206:5;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:133::-;356:5;394:6;381:20;372:29;;410:30;434:5;410:30;:::i;:::-;362:84;;;;:::o;452:139::-;498:5;536:6;523:20;514:29;;552:33;579:5;552:33;:::i;:::-;504:87;;;;:::o;597:143::-;654:5;685:6;679:13;670:22;;701:33;728:5;701:33;:::i;:::-;660:80;;;;:::o;746:329::-;805:6;854:2;842:9;833:7;829:23;825:32;822:2;;;860:79;;:::i;:::-;822:2;980:1;1005:53;1050:7;1041:6;1030:9;1026:22;1005:53;:::i;:::-;995:63;;951:117;812:263;;;;:::o;1081:345::-;1148:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:2;;;1203:79;;:::i;:::-;1165:2;1323:1;1348:61;1401:7;1392:6;1381:9;1377:22;1348:61;:::i;:::-;1338:71;;1294:125;1155:271;;;;:::o;1432:474::-;1500:6;1508;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1563:79;;:::i;:::-;1525:2;1683:1;1708:53;1753:7;1744:6;1733:9;1729:22;1708:53;:::i;:::-;1698:63;;1654:117;1810:2;1836:53;1881:7;1872:6;1861:9;1857:22;1836:53;:::i;:::-;1826:63;;1781:118;1515:391;;;;;:::o;1912:619::-;1989:6;1997;2005;2054:2;2042:9;2033:7;2029:23;2025:32;2022:2;;;2060:79;;:::i;:::-;2022:2;2180:1;2205:53;2250:7;2241:6;2230:9;2226:22;2205:53;:::i;:::-;2195:63;;2151:117;2307:2;2333:53;2378:7;2369:6;2358:9;2354:22;2333:53;:::i;:::-;2323:63;;2278:118;2435:2;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;:::i;:::-;2451:63;;2406:118;2012:519;;;;;:::o;2537:468::-;2602:6;2610;2659:2;2647:9;2638:7;2634:23;2630:32;2627:2;;;2665:79;;:::i;:::-;2627:2;2785:1;2810:53;2855:7;2846:6;2835:9;2831:22;2810:53;:::i;:::-;2800:63;;2756:117;2912:2;2938:50;2980:7;2971:6;2960:9;2956:22;2938:50;:::i;:::-;2928:60;;2883:115;2617:388;;;;;:::o;3011:474::-;3079:6;3087;3136:2;3124:9;3115:7;3111:23;3107:32;3104:2;;;3142:79;;:::i;:::-;3104:2;3262:1;3287:53;3332:7;3323:6;3312:9;3308:22;3287:53;:::i;:::-;3277:63;;3233:117;3389:2;3415:53;3460:7;3451:6;3440:9;3436:22;3415:53;:::i;:::-;3405:63;;3360:118;3094:391;;;;;:::o;3491:468::-;3556:6;3564;3613:2;3601:9;3592:7;3588:23;3584:32;3581:2;;;3619:79;;:::i;:::-;3581:2;3739:1;3764:50;3806:7;3797:6;3786:9;3782:22;3764:50;:::i;:::-;3754:60;;3710:114;3863:2;3889:53;3934:7;3925:6;3914:9;3910:22;3889:53;:::i;:::-;3879:63;;3834:118;3571:388;;;;;:::o;3965:329::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:2;;;4079:79;;:::i;:::-;4041:2;4199:1;4224:53;4269:7;4260:6;4249:9;4245:22;4224:53;:::i;:::-;4214:63;;4170:117;4031:263;;;;:::o;4300:351::-;4370:6;4419:2;4407:9;4398:7;4394:23;4390:32;4387:2;;;4425:79;;:::i;:::-;4387:2;4545:1;4570:64;4626:7;4617:6;4606:9;4602:22;4570:64;:::i;:::-;4560:74;;4516:128;4377:274;;;;:::o;4657:474::-;4725:6;4733;4782:2;4770:9;4761:7;4757:23;4753:32;4750:2;;;4788:79;;:::i;:::-;4750:2;4908:1;4933:53;4978:7;4969:6;4958:9;4954:22;4933:53;:::i;:::-;4923:63;;4879:117;5035:2;5061:53;5106:7;5097:6;5086:9;5082:22;5061:53;:::i;:::-;5051:63;;5006:118;4740:391;;;;;:::o;5137:663::-;5225:6;5233;5241;5290:2;5278:9;5269:7;5265:23;5261:32;5258:2;;;5296:79;;:::i;:::-;5258:2;5416:1;5441:64;5497:7;5488:6;5477:9;5473:22;5441:64;:::i;:::-;5431:74;;5387:128;5554:2;5580:64;5636:7;5627:6;5616:9;5612:22;5580:64;:::i;:::-;5570:74;;5525:129;5693:2;5719:64;5775:7;5766:6;5755:9;5751:22;5719:64;:::i;:::-;5709:74;;5664:129;5248:552;;;;;:::o;5806:765::-;5892:6;5900;5908;5916;5965:3;5953:9;5944:7;5940:23;5936:33;5933:2;;;5972:79;;:::i;:::-;5933:2;6092:1;6117:53;6162:7;6153:6;6142:9;6138:22;6117:53;:::i;:::-;6107:63;;6063:117;6219:2;6245:53;6290:7;6281:6;6270:9;6266:22;6245:53;:::i;:::-;6235:63;;6190:118;6347:2;6373:53;6418:7;6409:6;6398:9;6394:22;6373:53;:::i;:::-;6363:63;;6318:118;6475:2;6501:53;6546:7;6537:6;6526:9;6522:22;6501:53;:::i;:::-;6491:63;;6446:118;5923:648;;;;;;;:::o;6577:179::-;6646:10;6667:46;6709:3;6701:6;6667:46;:::i;:::-;6745:4;6740:3;6736:14;6722:28;;6657:99;;;;:::o;6762:147::-;6857:45;6896:5;6857:45;:::i;:::-;6852:3;6845:58;6835:74;;:::o;6915:108::-;6992:24;7010:5;6992:24;:::i;:::-;6987:3;6980:37;6970:53;;:::o;7029:118::-;7116:24;7134:5;7116:24;:::i;:::-;7111:3;7104:37;7094:53;;:::o;7183:732::-;7302:3;7331:54;7379:5;7331:54;:::i;:::-;7401:86;7480:6;7475:3;7401:86;:::i;:::-;7394:93;;7511:56;7561:5;7511:56;:::i;:::-;7590:7;7621:1;7606:284;7631:6;7628:1;7625:13;7606:284;;;7707:6;7701:13;7734:63;7793:3;7778:13;7734:63;:::i;:::-;7727:70;;7820:60;7873:6;7820:60;:::i;:::-;7810:70;;7666:224;7653:1;7650;7646:9;7641:14;;7606:284;;;7610:14;7906:3;7899:10;;7307:608;;;;;;;:::o;7921:109::-;8002:21;8017:5;8002:21;:::i;:::-;7997:3;7990:34;7980:50;;:::o;8036:167::-;8141:55;8190:5;8141:55;:::i;:::-;8136:3;8129:68;8119:84;;:::o;8209:147::-;8304:45;8343:5;8304:45;:::i;:::-;8299:3;8292:58;8282:74;;:::o;8362:364::-;8450:3;8478:39;8511:5;8478:39;:::i;:::-;8533:71;8597:6;8592:3;8533:71;:::i;:::-;8526:78;;8613:52;8658:6;8653:3;8646:4;8639:5;8635:16;8613:52;:::i;:::-;8690:29;8712:6;8690:29;:::i;:::-;8685:3;8681:39;8674:46;;8454:272;;;;;:::o;8732:366::-;8874:3;8895:67;8959:2;8954:3;8895:67;:::i;:::-;8888:74;;8971:93;9060:3;8971:93;:::i;:::-;9089:2;9084:3;9080:12;9073:19;;8878:220;;;:::o;9104:366::-;9246:3;9267:67;9331:2;9326:3;9267:67;:::i;:::-;9260:74;;9343:93;9432:3;9343:93;:::i;:::-;9461:2;9456:3;9452:12;9445:19;;9250:220;;;:::o;9476:366::-;9618:3;9639:67;9703:2;9698:3;9639:67;:::i;:::-;9632:74;;9715:93;9804:3;9715:93;:::i;:::-;9833:2;9828:3;9824:12;9817:19;;9622:220;;;:::o;9848:366::-;9990:3;10011:67;10075:2;10070:3;10011:67;:::i;:::-;10004:74;;10087:93;10176:3;10087:93;:::i;:::-;10205:2;10200:3;10196:12;10189:19;;9994:220;;;:::o;10220:366::-;10362:3;10383:67;10447:2;10442:3;10383:67;:::i;:::-;10376:74;;10459:93;10548:3;10459:93;:::i;:::-;10577:2;10572:3;10568:12;10561:19;;10366:220;;;:::o;10592:366::-;10734:3;10755:67;10819:2;10814:3;10755:67;:::i;:::-;10748:74;;10831:93;10920:3;10831:93;:::i;:::-;10949:2;10944:3;10940:12;10933:19;;10738:220;;;:::o;10964:365::-;11106:3;11127:66;11191:1;11186:3;11127:66;:::i;:::-;11120:73;;11202:93;11291:3;11202:93;:::i;:::-;11320:2;11315:3;11311:12;11304:19;;11110:219;;;:::o;11335:398::-;11494:3;11515:83;11596:1;11591:3;11515:83;:::i;:::-;11508:90;;11607:93;11696:3;11607:93;:::i;:::-;11725:1;11720:3;11716:11;11709:18;;11498:235;;;:::o;11739:366::-;11881:3;11902:67;11966:2;11961:3;11902:67;:::i;:::-;11895:74;;11978:93;12067:3;11978:93;:::i;:::-;12096:2;12091:3;12087:12;12080:19;;11885:220;;;:::o;12111:118::-;12198:24;12216:5;12198:24;:::i;:::-;12193:3;12186:37;12176:53;;:::o;12235:112::-;12318:22;12334:5;12318:22;:::i;:::-;12313:3;12306:35;12296:51;;:::o;12353:379::-;12537:3;12559:147;12702:3;12559:147;:::i;:::-;12552:154;;12723:3;12716:10;;12541:191;;;:::o;12738:222::-;12831:4;12869:2;12858:9;12854:18;12846:26;;12882:71;12950:1;12939:9;12935:17;12926:6;12882:71;:::i;:::-;12836:124;;;;:::o;12966:238::-;13067:4;13105:2;13094:9;13090:18;13082:26;;13118:79;13194:1;13183:9;13179:17;13170:6;13118:79;:::i;:::-;13072:132;;;;:::o;13210:807::-;13459:4;13497:3;13486:9;13482:19;13474:27;;13511:71;13579:1;13568:9;13564:17;13555:6;13511:71;:::i;:::-;13592:72;13660:2;13649:9;13645:18;13636:6;13592:72;:::i;:::-;13674:80;13750:2;13739:9;13735:18;13726:6;13674:80;:::i;:::-;13764;13840:2;13829:9;13825:18;13816:6;13764:80;:::i;:::-;13854:73;13922:3;13911:9;13907:19;13898:6;13854:73;:::i;:::-;13937;14005:3;13994:9;13990:19;13981:6;13937:73;:::i;:::-;13464:553;;;;;;;;;:::o;14023:210::-;14110:4;14148:2;14137:9;14133:18;14125:26;;14161:65;14223:1;14212:9;14208:17;14199:6;14161:65;:::i;:::-;14115:118;;;;:::o;14239:258::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14401:89;14487:1;14476:9;14472:17;14463:6;14401:89;:::i;:::-;14355:142;;;;:::o;14503:313::-;14616:4;14654:2;14643:9;14639:18;14631:26;;14703:9;14697:4;14693:20;14689:1;14678:9;14674:17;14667:47;14731:78;14804:4;14795:6;14731:78;:::i;:::-;14723:86;;14621:195;;;;:::o;14822:419::-;14988:4;15026:2;15015:9;15011:18;15003:26;;15075:9;15069:4;15065:20;15061:1;15050:9;15046:17;15039:47;15103:131;15229:4;15103:131;:::i;:::-;15095:139;;14993:248;;;:::o;15247:419::-;15413:4;15451:2;15440:9;15436:18;15428:26;;15500:9;15494:4;15490:20;15486:1;15475:9;15471:17;15464:47;15528:131;15654:4;15528:131;:::i;:::-;15520:139;;15418:248;;;:::o;15672:419::-;15838:4;15876:2;15865:9;15861:18;15853:26;;15925:9;15919:4;15915:20;15911:1;15900:9;15896:17;15889:47;15953:131;16079:4;15953:131;:::i;:::-;15945:139;;15843:248;;;:::o;16097:419::-;16263:4;16301:2;16290:9;16286:18;16278:26;;16350:9;16344:4;16340:20;16336:1;16325:9;16321:17;16314:47;16378:131;16504:4;16378:131;:::i;:::-;16370:139;;16268:248;;;:::o;16522:419::-;16688:4;16726:2;16715:9;16711:18;16703:26;;16775:9;16769:4;16765:20;16761:1;16750:9;16746:17;16739:47;16803:131;16929:4;16803:131;:::i;:::-;16795:139;;16693:248;;;:::o;16947:419::-;17113:4;17151:2;17140:9;17136:18;17128:26;;17200:9;17194:4;17190:20;17186:1;17175:9;17171:17;17164:47;17228:131;17354:4;17228:131;:::i;:::-;17220:139;;17118:248;;;:::o;17372:419::-;17538:4;17576:2;17565:9;17561:18;17553:26;;17625:9;17619:4;17615:20;17611:1;17600:9;17596:17;17589:47;17653:131;17779:4;17653:131;:::i;:::-;17645:139;;17543:248;;;:::o;17797:419::-;17963:4;18001:2;17990:9;17986:18;17978:26;;18050:9;18044:4;18040:20;18036:1;18025:9;18021:17;18014:47;18078:131;18204:4;18078:131;:::i;:::-;18070:139;;17968:248;;;:::o;18222:222::-;18315:4;18353:2;18342:9;18338:18;18330:26;;18366:71;18434:1;18423:9;18419:17;18410:6;18366:71;:::i;:::-;18320:124;;;;:::o;18450:831::-;18713:4;18751:3;18740:9;18736:19;18728:27;;18765:71;18833:1;18822:9;18818:17;18809:6;18765:71;:::i;:::-;18846:80;18922:2;18911:9;18907:18;18898:6;18846:80;:::i;:::-;18973:9;18967:4;18963:20;18958:2;18947:9;18943:18;18936:48;19001:108;19104:4;19095:6;19001:108;:::i;:::-;18993:116;;19119:72;19187:2;19176:9;19172:18;19163:6;19119:72;:::i;:::-;19201:73;19269:3;19258:9;19254:19;19245:6;19201:73;:::i;:::-;18718:563;;;;;;;;:::o;19287:332::-;19408:4;19446:2;19435:9;19431:18;19423:26;;19459:71;19527:1;19516:9;19512:17;19503:6;19459:71;:::i;:::-;19540:72;19608:2;19597:9;19593:18;19584:6;19540:72;:::i;:::-;19413:206;;;;;:::o;19625:214::-;19714:4;19752:2;19741:9;19737:18;19729:26;;19765:67;19829:1;19818:9;19814:17;19805:6;19765:67;:::i;:::-;19719:120;;;;:::o;19926:132::-;19993:4;20016:3;20008:11;;20046:4;20041:3;20037:14;20029:22;;19998:60;;;:::o;20064:114::-;20131:6;20165:5;20159:12;20149:22;;20138:40;;;:::o;20184:99::-;20236:6;20270:5;20264:12;20254:22;;20243:40;;;:::o;20289:113::-;20359:4;20391;20386:3;20382:14;20374:22;;20364:38;;;:::o;20408:184::-;20507:11;20541:6;20536:3;20529:19;20581:4;20576:3;20572:14;20557:29;;20519:73;;;;:::o;20598:147::-;20699:11;20736:3;20721:18;;20711:34;;;;:::o;20751:169::-;20835:11;20869:6;20864:3;20857:19;20909:4;20904:3;20900:14;20885:29;;20847:73;;;;:::o;20926:305::-;20966:3;20985:20;21003:1;20985:20;:::i;:::-;20980:25;;21019:20;21037:1;21019:20;:::i;:::-;21014:25;;21173:1;21105:66;21101:74;21098:1;21095:81;21092:2;;;21179:18;;:::i;:::-;21092:2;21223:1;21220;21216:9;21209:16;;20970:261;;;;:::o;21237:185::-;21277:1;21294:20;21312:1;21294:20;:::i;:::-;21289:25;;21328:20;21346:1;21328:20;:::i;:::-;21323:25;;21367:1;21357:2;;21372:18;;:::i;:::-;21357:2;21414:1;21411;21407:9;21402:14;;21279:143;;;;:::o;21428:348::-;21468:7;21491:20;21509:1;21491:20;:::i;:::-;21486:25;;21525:20;21543:1;21525:20;:::i;:::-;21520:25;;21713:1;21645:66;21641:74;21638:1;21635:81;21630:1;21623:9;21616:17;21612:105;21609:2;;;21720:18;;:::i;:::-;21609:2;21768:1;21765;21761:9;21750:20;;21476:300;;;;:::o;21782:191::-;21822:4;21842:20;21860:1;21842:20;:::i;:::-;21837:25;;21876:20;21894:1;21876:20;:::i;:::-;21871:25;;21915:1;21912;21909:8;21906:2;;;21920:18;;:::i;:::-;21906:2;21965:1;21962;21958:9;21950:17;;21827:146;;;;:::o;21979:96::-;22016:7;22045:24;22063:5;22045:24;:::i;:::-;22034:35;;22024:51;;;:::o;22081:104::-;22126:7;22155:24;22173:5;22155:24;:::i;:::-;22144:35;;22134:51;;;:::o;22191:90::-;22225:7;22268:5;22261:13;22254:21;22243:32;;22233:48;;;:::o;22287:126::-;22324:7;22364:42;22357:5;22353:54;22342:65;;22332:81;;;:::o;22419:77::-;22456:7;22485:5;22474:16;;22464:32;;;:::o;22502:86::-;22537:7;22577:4;22570:5;22566:16;22555:27;;22545:43;;;:::o;22594:134::-;22652:9;22685:37;22716:5;22685:37;:::i;:::-;22672:50;;22662:66;;;:::o;22734:162::-;22802:9;22835:55;22884:5;22835:55;:::i;:::-;22822:68;;22812:84;;;:::o;22902:131::-;22970:9;23003:24;23021:5;23003:24;:::i;:::-;22990:37;;22980:53;;;:::o;23039:121::-;23097:9;23130:24;23148:5;23130:24;:::i;:::-;23117:37;;23107:53;;;:::o;23166:126::-;23216:9;23249:37;23280:5;23249:37;:::i;:::-;23236:50;;23226:66;;;:::o;23298:113::-;23348:9;23381:24;23399:5;23381:24;:::i;:::-;23368:37;;23358:53;;;:::o;23417:307::-;23485:1;23495:113;23509:6;23506:1;23503:13;23495:113;;;23594:1;23589:3;23585:11;23579:18;23575:1;23570:3;23566:11;23559:39;23531:2;23528:1;23524:10;23519:15;;23495:113;;;23626:6;23623:1;23620:13;23617:2;;;23706:1;23697:6;23692:3;23688:16;23681:27;23617:2;23466:258;;;;:::o;23730:180::-;23778:77;23775:1;23768:88;23875:4;23872:1;23865:15;23899:4;23896:1;23889:15;23916:180;23964:77;23961:1;23954:88;24061:4;24058:1;24051:15;24085:4;24082:1;24075:15;24102:180;24150:77;24147:1;24140:88;24247:4;24244:1;24237:15;24271:4;24268:1;24261:15;24288:180;24336:77;24333:1;24326:88;24433:4;24430:1;24423:15;24457:4;24454:1;24447:15;24597:117;24706:1;24703;24696:12;24720:102;24761:6;24812:2;24808:7;24803:2;24796:5;24792:14;24788:28;24778:38;;24768:54;;;:::o;24828:224::-;24968:34;24964:1;24956:6;24952:14;24945:58;25037:7;25032:2;25024:6;25020:15;25013:32;24934:118;:::o;25058:167::-;25198:19;25194:1;25186:6;25182:14;25175:43;25164:61;:::o;25231:222::-;25371:34;25367:1;25359:6;25355:14;25348:58;25440:5;25435:2;25427:6;25423:15;25416:30;25337:116;:::o;25459:177::-;25599:29;25595:1;25587:6;25583:14;25576:53;25565:71;:::o;25642:180::-;25782:32;25778:1;25770:6;25766:14;25759:56;25748:74;:::o;25828:220::-;25968:34;25964:1;25956:6;25952:14;25945:58;26037:3;26032:2;26024:6;26020:15;26013:28;25934:114;:::o;26054:156::-;26194:8;26190:1;26182:6;26178:14;26171:32;26160:50;:::o;26216:114::-;26322:8;:::o;26336:161::-;26476:13;26472:1;26464:6;26460:14;26453:37;26442:55;:::o;26503:122::-;26576:24;26594:5;26576:24;:::i;:::-;26569:5;26566:35;26556:2;;26615:1;26612;26605:12;26556:2;26546:79;:::o;26631:138::-;26712:32;26738:5;26712:32;:::i;:::-;26705:5;26702:43;26692:2;;26759:1;26756;26749:12;26692:2;26682:87;:::o;26775:116::-;26845:21;26860:5;26845:21;:::i;:::-;26838:5;26835:32;26825:2;;26881:1;26878;26871:12;26825:2;26815:76;:::o;26897:122::-;26970:24;26988:5;26970:24;:::i;:::-;26963:5;26960:35;26950:2;;27009:1;27006;26999:12;26950:2;26940:79;:::o

Swarm Source

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