ETH Price: $2,472.05 (+0.50%)

Token

Chisana Inu (CINU)
 

Overview

Max Total Supply

1,000,000 CINU

Holders

167

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*צְדָקָה.eth
Balance
3,133.02 CINU

Value
$0.00
0x329bfe1a3e4746b1d6a6f0e0cf3ab446da896bf4
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:
Chisana

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
   ______   __        __                                                ______                     
 /      \ |  \      |  \                                              |      \                    
|  $$$$$$\| $$____   \$$  _______   ______   _______    ______         \$$$$$$ _______   __    __ 
| $$   \$$| $$    \ |  \ /       \ |      \ |       \  |      \         | $$  |       \ |  \  |  \
| $$      | $$$$$$$\| $$|  $$$$$$$  \$$$$$$\| $$$$$$$\  \$$$$$$\        | $$  | $$$$$$$\| $$  | $$
| $$   __ | $$  | $$| $$ \$$    \  /      $$| $$  | $$ /      $$        | $$  | $$  | $$| $$  | $$
| $$__/  \| $$  | $$| $$ _\$$$$$$\|  $$$$$$$| $$  | $$|  $$$$$$$       _| $$_ | $$  | $$| $$__/ $$
 \$$    $$| $$  | $$| $$|       $$ \$$    $$| $$  | $$ \$$    $$      |   $$ \| $$  | $$ \$$    $$
  \$$$$$$  \$$   \$$ \$$ \$$$$$$$   \$$$$$$$ \$$   \$$  \$$$$$$$       \$$$$$$ \$$   \$$  \$$$$$$ 
                                                                                                  


  Tg: t.me/ChisanaInu                                                                                              

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Chisana is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "Chisana Inu";
    string constant _symbol = "CINU";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1 * 10**6 * (10 ** _decimals); // 1 Million

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

    address public marketingFeeReceiver = 0x1BCAe0CA52aA37F492e3d553cb4a24C54EAf4E6c;

    IDEXRouter public router;
    address public pair;

    struct user {
        uint256 firstBuy;
        uint256 lastTradeTime;
    }

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;
    mapping(address => bool) public isBot;
    mapping(address => user) public tradeData;

    uint256 liquidityFee = 1;
    uint256 marketingFee = 5;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

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

    uint256 public maxWalletAmount = (_totalSupply * 100) / 30000; //3% of Total Supply  
    uint256 public maxSellTransactionAmount = (_totalSupply * 100) / 500000; //0.5% of Total Supply
    uint256 public swapThreshold = (_totalSupply * 500) / 100000; //0.5% of Total Supply
    uint256 public sellCooldownSeconds = 86400;//86400; //1 Day
    uint256 public sellPercent = 50; //0.5%

    bool private sellLimited = true;
    bool private p2pLimited = true;

    uint256 public startTime;

    modifier checkLimit(address sender, address recipient, uint256 amount) {
        if(!isTxLimitExempt[sender] && recipient == pair) {
            require(sold[sender][getCurrentDay()] + amount <= getUserSellLimit(sender), "Cannot sell or transfer more than limit.");
        }
        _;
    }
    mapping(address => mapping(uint256 => uint256)) public sold;

    constructor () Ownable(msg.sender) {
    
            routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[0x1BCAe0CA52aA37F492e3d553cb4a24C54EAf4E6c] = true;
        
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0x1BCAe0CA52aA37F492e3d553cb4a24C54EAf4E6c] = true;
        isTxLimitExempt[DEAD] = true;

        startTime = block.timestamp;

        _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 getCurrentDay() public view returns (uint256) {
        return minZero(block.timestamp, startTime).div(sellCooldownSeconds);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return
            (_totalSupply - _balances[DEAD]);
    }

    function getUserSellLimitMultiplier(address sender) internal view returns (uint256) {
        uint multiplier;

        if(tradeData[sender].lastTradeTime == 0) {
            multiplier = ((block.timestamp - tradeData[sender].firstBuy) / sellCooldownSeconds).mul(1000);
        } else {
            multiplier = ((block.timestamp - tradeData[sender].lastTradeTime) / sellCooldownSeconds).mul(1000);
        }

        return multiplier < 1000 ? 1000 : multiplier;
    }

    function getUserSellLimit(address sender) public view returns (uint256) {
        uint256 calc = getUserSellLimitMultiplier(sender).div(1000);
        uint256 calc2 = calc.mul(sellPercent);

        return getCirculatingSupply().mul(calc2).div(10000);
    }

    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 checkLimit(sender, recipient, amount) returns (bool) {
        require(!isBot[sender], "Bot Address");

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(recipient != pair && sender != pair && recipient != DEAD && p2pLimited){
            require(isFeeExempt[recipient] || isFeeExempt[sender] || isTxLimitExempt[recipient] || isTxLimitExempt[sender], "P2P not allowed");
        }

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

         if(!isTxLimitExempt[recipient] && sender == pair) {
            tradeData[recipient].firstBuy = block.timestamp;
        }

        if(!isTxLimitExempt[sender] && recipient == pair) {
            tradeData[sender].lastTradeTime = block.timestamp;
            sold[sender][getCurrentDay()] = sold[sender][getCurrentDay()].add(amount);
        }
        
        if(shouldSwapBack()){ swapBack(); } 

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

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

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

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

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

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

    function clearStuckBalance() external onlyOwner {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function clearStuckTokens(address _tokenAddr, address _to, uint256 _amount) external onlyOwner {
        require(ERC20(_tokenAddr).transfer(_to, _amount), "Transfer failed");
    }

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

    function isBots(address botAddress, bool status) external onlyOwner {      
        isBot[botAddress] = status;
    }

    function addBots(address[] calldata botAddress, bool status) external onlyOwner {
        for (uint256 i = 0; i < botAddress.length; i++) {
             isBot[botAddress[i]] = status;
        }      
    }

     function setFees(uint256 _LiquidityFee, uint256 _MarketingFee) external onlyOwner {
        marketingFee = _MarketingFee;
        liquidityFee = _LiquidityFee;
        totalFee = liquidityFee + marketingFee;

        require(totalFee <= 25, "Must keep fees at 25% or less");
    }
  
    function setContractLimits(bool sellLimited_, bool p2pLimited_) external onlyOwner {
        sellLimited = sellLimited_;
        p2pLimited = p2pLimited_;
    }
    
    function viewContractLimits() external view returns (bool isSellLimited, bool isP2PLimited){
        return(sellLimited,p2pLimited);
    }

    function setADMSettings(uint256 sellCooldownSeconds_, uint256 maxSellTransactionAmount_, uint256 sellPercent_) external onlyOwner {
        sellCooldownSeconds = sellCooldownSeconds_;
        maxSellTransactionAmount = maxSellTransactionAmount_;
        sellPercent = sellPercent_;
    }

    function viewADMSettings() external view returns (uint sellCooldownSecs, uint maxSellTransactionAmt, uint256 sellPercentAmt){
        return(sellCooldownSeconds,maxSellTransactionAmount,sellPercent);
    }

    function minZero(uint a, uint b) private pure returns(uint) {
        if (a > b) {
           return a - b; 
        } else {
           return 0;    
        }    
    } 

    event AutoLiquify(uint256 amountETH, uint256 amountBEE);

}

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":"amountBEE","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":[{"internalType":"address[]","name":"botAddress","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","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":[],"name":"getCurrentDay","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":"sender","type":"address"}],"name":"getUserSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAddress","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"isBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCooldownSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellCooldownSeconds_","type":"uint256"},{"internalType":"uint256","name":"maxSellTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"sellPercent_","type":"uint256"}],"name":"setADMSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"sellLimited_","type":"bool"},{"internalType":"bool","name":"p2pLimited_","type":"bool"}],"name":"setContractLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_LiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_MarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"sold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tradeData","outputs":[{"internalType":"uint256","name":"firstBuy","type":"uint256"},{"internalType":"uint256","name":"lastTradeTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewADMSettings","outputs":[{"internalType":"uint256","name":"sellCooldownSecs","type":"uint256"},{"internalType":"uint256","name":"maxSellTransactionAmt","type":"uint256"},{"internalType":"uint256","name":"sellPercentAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewContractLimits","outputs":[{"internalType":"bool","name":"isSellLimited","type":"bool"},{"internalType":"bool","name":"isP2PLimited","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000057919062000a1b565b620f424062000067919062000b58565b600355731bcae0ca52aa37f492e3d553cb4a24c54eaf4e6c600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d556005600e55600e54600d54620000db91906200092b565b600f5560646010556001601160016101000a81548160ff021916908315150217905550617530606460035462000112919062000b58565b6200011e919062000988565b6012556207a120606460035462000136919062000b58565b62000142919062000988565b601355620186a06101f46003546200015b919062000b58565b62000167919062000988565b6014556201518060155560326016556001601760006101000a81548160ff0219169083151502179055506001601760016101000a81548160ff021916908315150217905550348015620001b957600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031d57600080fd5b505afa15801562000332573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035891906200088d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003dc57600080fd5b505afa158015620003f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041791906200088d565b306040518363ffffffff1660e01b815260040162000437929190620008e1565b602060405180830381600087803b1580156200045257600080fd5b505af115801562000467573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200048d91906200088d565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000731bcae0ca52aa37f492e3d553cb4a24c54eaf4e6c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000731bcae0ca52aa37f492e3d553cb4a24c54eaf4e6c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042601881905550600354600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200086791906200090e565b60405180910390a35062000c8e565b600081519050620008878162000c74565b92915050565b600060208284031215620008a657620008a562000c62565b5b6000620008b68482850162000876565b91505092915050565b620008ca8162000bb9565b82525050565b620008db8162000bed565b82525050565b6000604082019050620008f86000830185620008bf565b620009076020830184620008bf565b9392505050565b6000602082019050620009256000830184620008d0565b92915050565b6000620009388262000bed565b9150620009458362000bed565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200097d576200097c62000c04565b5b828201905092915050565b6000620009958262000bed565b9150620009a28362000bed565b925082620009b557620009b462000c33565b5b828204905092915050565b6000808291508390505b600185111562000a1257808604811115620009ea57620009e962000c04565b5b6001851615620009fa5780820291505b808102905062000a0a8562000c67565b9450620009ca565b94509492505050565b600062000a288262000bed565b915062000a358362000bf7565b925062000a647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a6c565b905092915050565b60008262000a7e576001905062000b51565b8162000a8e576000905062000b51565b816001811462000aa7576002811462000ab25762000ae8565b600191505062000b51565b60ff84111562000ac75762000ac662000c04565b5b8360020a91508482111562000ae15762000ae062000c04565b5b5062000b51565b5060208310610133831016604e8410600b841016171562000b225782820a90508381111562000b1c5762000b1b62000c04565b5b62000b51565b62000b318484846001620009c0565b9250905081840481111562000b4b5762000b4a62000c04565b5b81810290505b9392505050565b600062000b658262000bed565b915062000b728362000bed565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bae5762000bad62000c04565b5b828202905092915050565b600062000bc68262000bcd565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b60008160011c9050919050565b62000c7f8162000bb9565b811462000c8b57600080fd5b50565b61404c8062000c9e6000396000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063aa4bde28116100b6578063dd62ed3e1161007a578063dd62ed3e146108e0578063e346d64f1461091d578063e96fada214610949578063ec993f5e14610974578063f1d5f5171461099d578063f887ea40146109c657610251565b8063aa4bde28146107fa578063ade927e714610825578063b2fe8a7a14610863578063d05b5a001461088c578063d36d0497146108b557610251565b80639d34a30d116100fd5780639d34a30d14610713578063a0916b821461073c578063a6af260f14610765578063a8aa1b3114610792578063a9059cbb146107bd57610251565b8063715018a61461063e57806378e9792514610655578063893d20e8146106805780638b42507f146106ab57806395d89b41146106e857610251565b8063313ce567116101c75780633f4218e01161018b5780633f4218e01461051f578063571ac8b01461055c5780635b0833cc146105995780636ddd1713146105d657806370a082311461060157610251565b8063313ce567146104385780633535cea914610463578063364333f4146104a05780633bbac579146104b75780633e6968b6146104f457610251565b80630eff64271161020e5780630eff64271461033d57806318160ddd1461036857806323b872dd146103935780632b112e49146103d05780632f54bf6e146103fb57610251565b806302259e9e146102565780630445b6671461028157806306fdde03146102ac578063095ea7b3146102d75780630b78f9c01461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109f1565b6040516102789190613970565b60405180910390f35b34801561028d57600080fd5b506102966109f7565b6040516102a39190613970565b60405180910390f35b3480156102b857600080fd5b506102c16109fd565b6040516102ce919061380e565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061323c565b610a3a565b60405161030b91906137af565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613376565b610b2c565b005b34801561034957600080fd5b50610352610be2565b60405161035f9190613970565b60405180910390f35b34801561037457600080fd5b5061037d610be8565b60405161038a9190613970565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b591906131a9565b610bf2565b6040516103c791906137af565b60405180910390f35b3480156103dc57600080fd5b506103e5610df2565b6040516103f29190613970565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d919061310f565b610e68565b60405161042f91906137af565b60405180910390f35b34801561044457600080fd5b5061044d610ec1565b60405161045a9190613a45565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061310f565b610eca565b6040516104979190613970565b60405180910390f35b3480156104ac57600080fd5b506104b5610f3c565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061310f565b610fef565b6040516104eb91906137af565b60405180910390f35b34801561050057600080fd5b5061050961100f565b6040516105169190613970565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061310f565b611036565b60405161055391906137af565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061310f565b611056565b60405161059091906137af565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb919061323c565b611089565b6040516105cd9190613970565b60405180910390f35b3480156105e257600080fd5b506105eb6110ae565b6040516105f891906137af565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061310f565b6110c1565b6040516106359190613970565b60405180910390f35b34801561064a57600080fd5b5061065361110a565b005b34801561066157600080fd5b5061066a6111cd565b6040516106779190613970565b60405180910390f35b34801561068c57600080fd5b506106956111d3565b6040516106a2919061370a565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061310f565b6111fc565b6040516106df91906137af565b60405180910390f35b3480156106f457600080fd5b506106fd61121c565b60405161070a919061380e565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906131a9565b611259565b005b34801561074857600080fd5b50610763600480360381019061075e919061327c565b611372565b005b34801561077157600080fd5b5061077a61145f565b60405161078993929190613a0e565b60405180910390f35b34801561079e57600080fd5b506107a7611478565b6040516107b4919061370a565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061323c565b61149e565b6040516107f191906137af565b60405180910390f35b34801561080657600080fd5b5061080f6114b3565b60405161081c9190613970565b60405180910390f35b34801561083157600080fd5b5061084c6004803603810190610847919061310f565b6114b9565b60405161085a9291906139e5565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190613309565b6114dd565b005b34801561089857600080fd5b506108b360048036038101906108ae91906131fc565b61155d565b005b3480156108c157600080fd5b506108ca611600565b6040516108d79190613970565b60405180910390f35b3480156108ec57600080fd5b5061090760048036038101906109029190613169565b611606565b6040516109149190613970565b60405180910390f35b34801561092957600080fd5b5061093261168d565b6040516109409291906137ca565b60405180910390f35b34801561095557600080fd5b5061095e6116b8565b60405161096b919061370a565b60405180910390f35b34801561098057600080fd5b5061099b600480360381019061099691906133b6565b6116de565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613349565b611740565b005b3480156109d257600080fd5b506109db6117ac565b6040516109e891906137f3565b60405180910390f35b60135481565b60145481565b60606040518060400160405280600b81526020017f43686973616e6120496e75000000000000000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b1a9190613970565b60405180910390a36001905092915050565b610b3533610e68565b610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b906138d0565b60405180910390fd5b80600e8190555081600d81905550600e54600d54610b929190613ac0565b600f819055506019600f541115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590613930565b60405180910390fd5b5050565b60155481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dde57610d5d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610de9848484611836565b90509392505050565b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610e639190613ba1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600080610eea6103e8610edc85612345565b61249690919063ffffffff16565b90506000610f03601654836124e090919063ffffffff16565b9050610f33612710610f2583610f17610df2565b6124e090919063ffffffff16565b61249690919063ffffffff16565b92505050919050565b610f4533610e68565b610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906138d0565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fec573d6000803e3d6000fd5b50565b600b6020528060005260406000206000915054906101000a900460ff1681565b60006110316015546110234260185461255b565b61249690919063ffffffff16565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000611082827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a3a565b9050919050565b6019602052816000526040600020602052806000526040600020600091509150505481565b601160019054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61111333610e68565b611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906138d0565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516111c3919061370a565b60405180910390a1565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f43494e5500000000000000000000000000000000000000000000000000000000815250905090565b61126233610e68565b6112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906138d0565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016112dc929190613725565b602060405180830381600087803b1580156112f657600080fd5b505af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e91906132dc565b61136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490613850565b60405180910390fd5b505050565b61137b33610e68565b6113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906138d0565b60405180910390fd5b60005b838390508110156114595781600b60008686858181106113e0576113df613d3a565b5b90506020020160208101906113f5919061310f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145190613c93565b9150506113bd565b50505050565b6000806000601554601354601654925092509250909192565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114ab338484611836565b905092915050565b60125481565b600c6020528060005260406000206000915090508060000154908060010154905082565b6114e633610e68565b611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c906138d0565b60405180910390fd5b81601760006101000a81548160ff02191690831515021790555080601760016101000a81548160ff0219169083151502179055505050565b61156633610e68565b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906138d0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080601760009054906101000a900460ff16601760019054906101000a900460ff16915091509091565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116e733610e68565b611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906138d0565b60405180910390fd5b826015819055508160138190555080601681905550505050565b61174933610e68565b611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906138d0565b60405180910390fd5b6103e8816003546117999190613b47565b6117a39190613b16565b60128190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811919061380e565b60405180910390fd5b50600083856118299190613ba1565b9050809150509392505050565b6000838383600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118e25750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611995576118f083610eca565b81601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061193a61100f565b8152602001908152602001600020546119539190613ac0565b1115611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613950565b60405180910390fd5b5b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613910565b60405180910390fd5b601160009054906101000a900460ff1615611a4957611a42878787612583565b935061233b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611af55750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611b4f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015611b675750601760019054906101000a900460ff165b15611cf557600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c0d5750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c615750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611cb55750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906138f0565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611da15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611e8a57600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e4a575060125485600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e479190613ac0565b11155b611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613830565b60405180910390fd5b5b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f315750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611f7e5742600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120255750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b156121375742600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506120db85601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006120be61100f565b81526020019081526020016000205461275690919063ffffffff16565b601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061212461100f565b8152602001908152602001600020819055505b61213f6127b4565b1561214d5761214c61288b565b5b6121d6856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061222488612df3565b61222e5785612239565b6122388887612e4a565b5b905061228d81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161232d9190613970565b60405180910390a360019450505b5050509392505050565b6000806000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612409576124026103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154426123ea9190613ba1565b6123f49190613b16565b6124e090919063ffffffff16565b905061247b565b6124786103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154426124609190613ba1565b61246a9190613b16565b6124e090919063ffffffff16565b90505b6103e8811061248a578061248e565b6103e85b915050919050565b60006124d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f8e565b905092915050565b6000808314156124f35760009050612555565b600082846125019190613b47565b90508284826125109190613b16565b14612550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612547906138b0565b60405180910390fd5b809150505b92915050565b6000818311156125785781836125719190613ba1565b905061257d565b600090505b92915050565b600061260e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a382600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127439190613970565b60405180910390a3600190509392505050565b60008082846127659190613ac0565b9050838110156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a190613870565b60405180910390fd5b8091505092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128215750601160009054906101000a900460ff16155b80156128395750601160019054906101000a900460ff165b80156128865750601454600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601454905060006128eb60026128dd600f546128cf600d54876124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b905060006129028284612ff190919063ffffffff16565b90506000600267ffffffffffffffff81111561292157612920613d69565b5b60405190808252806020026020018201604052801561294f5781602001602082028036833780820191505090505b509050308160008151811061296757612966613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0957600080fd5b505afa158015612a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a41919061313c565b81600181518110612a5557612a54613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612af895949392919061398b565b600060405180830381600087803b158015612b1257600080fd5b505af1158015612b26573d6000803e3d6000fd5b505050506000612b3f8247612ff190919063ffffffff16565b90506000612b6d612b5c6002600d5461249690919063ffffffff16565b600f54612ff190919063ffffffff16565b90506000612bab6002612b9d84612b8f600d54886124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b90506000612bd683612bc8600e54876124e090919063ffffffff16565b61249690919063ffffffff16565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612c24906136f5565b600060405180830381858888f193505050503d8060008114612c62576040519150601f19603f3d011682016040523d82523d6000602084013e612c67565b606091505b5050905080612cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca290613890565b60405180910390fd5b6000891115612dcc57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d3d9695949392919061374e565b6060604051808303818588803b158015612d5657600080fd5b505af1158015612d6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d8f9190613409565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612dc39291906139e5565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612e76601054612e68600f54866124e090919063ffffffff16565b61249690919063ffffffff16565b9050612eca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6a9190613970565b60405180910390a3612f858184612ff190919063ffffffff16565b91505092915050565b60008083118290612fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcc919061380e565b60405180910390fd5b5060008385612fe49190613b16565b9050809150509392505050565b600061303383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d2565b905092915050565b60008135905061304a81613fd1565b92915050565b60008151905061305f81613fd1565b92915050565b60008083601f84011261307b5761307a613d9d565b5b8235905067ffffffffffffffff81111561309857613097613d98565b5b6020830191508360208202830111156130b4576130b3613da2565b5b9250929050565b6000813590506130ca81613fe8565b92915050565b6000815190506130df81613fe8565b92915050565b6000813590506130f481613fff565b92915050565b60008151905061310981613fff565b92915050565b60006020828403121561312557613124613dac565b5b60006131338482850161303b565b91505092915050565b60006020828403121561315257613151613dac565b5b600061316084828501613050565b91505092915050565b600080604083850312156131805761317f613dac565b5b600061318e8582860161303b565b925050602061319f8582860161303b565b9150509250929050565b6000806000606084860312156131c2576131c1613dac565b5b60006131d08682870161303b565b93505060206131e18682870161303b565b92505060406131f2868287016130e5565b9150509250925092565b6000806040838503121561321357613212613dac565b5b60006132218582860161303b565b9250506020613232858286016130bb565b9150509250929050565b6000806040838503121561325357613252613dac565b5b60006132618582860161303b565b9250506020613272858286016130e5565b9150509250929050565b60008060006040848603121561329557613294613dac565b5b600084013567ffffffffffffffff8111156132b3576132b2613da7565b5b6132bf86828701613065565b935093505060206132d2868287016130bb565b9150509250925092565b6000602082840312156132f2576132f1613dac565b5b6000613300848285016130d0565b91505092915050565b600080604083850312156133205761331f613dac565b5b600061332e858286016130bb565b925050602061333f858286016130bb565b9150509250929050565b60006020828403121561335f5761335e613dac565b5b600061336d848285016130e5565b91505092915050565b6000806040838503121561338d5761338c613dac565b5b600061339b858286016130e5565b92505060206133ac858286016130e5565b9150509250929050565b6000806000606084860312156133cf576133ce613dac565b5b60006133dd868287016130e5565b93505060206133ee868287016130e5565b92505060406133ff868287016130e5565b9150509250925092565b60008060006060848603121561342257613421613dac565b5b6000613430868287016130fa565b9350506020613441868287016130fa565b9250506040613452868287016130fa565b9150509250925092565b60006134688383613474565b60208301905092915050565b61347d81613bd5565b82525050565b61348c81613bd5565b82525050565b600061349d82613a70565b6134a78185613a93565b93506134b283613a60565b8060005b838110156134e35781516134ca888261345c565b97506134d583613a86565b9250506001810190506134b6565b5085935050505092915050565b6134f981613be7565b82525050565b61350881613c2a565b82525050565b61351781613c4e565b82525050565b600061352882613a7b565b6135328185613aaf565b9350613542818560208601613c60565b61354b81613db1565b840191505092915050565b6000613563602583613aaf565b915061356e82613dc2565b604082019050919050565b6000613586600f83613aaf565b915061359182613e11565b602082019050919050565b60006135a9601b83613aaf565b91506135b482613e3a565b602082019050919050565b60006135cc601e83613aaf565b91506135d782613e63565b602082019050919050565b60006135ef602183613aaf565b91506135fa82613e8c565b604082019050919050565b6000613612600683613aaf565b915061361d82613edb565b602082019050919050565b6000613635600083613aa4565b915061364082613f04565b600082019050919050565b6000613658600f83613aaf565b915061366382613f07565b602082019050919050565b600061367b600b83613aaf565b915061368682613f30565b602082019050919050565b600061369e601d83613aaf565b91506136a982613f59565b602082019050919050565b60006136c1602883613aaf565b91506136cc82613f82565b604082019050919050565b6136e081613c13565b82525050565b6136ef81613c1d565b82525050565b600061370082613628565b9150819050919050565b600060208201905061371f6000830184613483565b92915050565b600060408201905061373a6000830185613483565b61374760208301846136d7565b9392505050565b600060c0820190506137636000830189613483565b61377060208301886136d7565b61377d604083018761350e565b61378a606083018661350e565b6137976080830185613483565b6137a460a08301846136d7565b979650505050505050565b60006020820190506137c460008301846134f0565b92915050565b60006040820190506137df60008301856134f0565b6137ec60208301846134f0565b9392505050565b600060208201905061380860008301846134ff565b92915050565b60006020820190508181036000830152613828818461351d565b905092915050565b6000602082019050818103600083015261384981613556565b9050919050565b6000602082019050818103600083015261386981613579565b9050919050565b600060208201905081810360008301526138898161359c565b9050919050565b600060208201905081810360008301526138a9816135bf565b9050919050565b600060208201905081810360008301526138c9816135e2565b9050919050565b600060208201905081810360008301526138e981613605565b9050919050565b600060208201905081810360008301526139098161364b565b9050919050565b600060208201905081810360008301526139298161366e565b9050919050565b6000602082019050818103600083015261394981613691565b9050919050565b60006020820190508181036000830152613969816136b4565b9050919050565b600060208201905061398560008301846136d7565b92915050565b600060a0820190506139a060008301886136d7565b6139ad602083018761350e565b81810360408301526139bf8186613492565b90506139ce6060830185613483565b6139db60808301846136d7565b9695505050505050565b60006040820190506139fa60008301856136d7565b613a0760208301846136d7565b9392505050565b6000606082019050613a2360008301866136d7565b613a3060208301856136d7565b613a3d60408301846136d7565b949350505050565b6000602082019050613a5a60008301846136e6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613acb82613c13565b9150613ad683613c13565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b0b57613b0a613cdc565b5b828201905092915050565b6000613b2182613c13565b9150613b2c83613c13565b925082613b3c57613b3b613d0b565b5b828204905092915050565b6000613b5282613c13565b9150613b5d83613c13565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b9657613b95613cdc565b5b828202905092915050565b6000613bac82613c13565b9150613bb783613c13565b925082821015613bca57613bc9613cdc565b5b828203905092915050565b6000613be082613bf3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c3582613c3c565b9050919050565b6000613c4782613bf3565b9050919050565b6000613c5982613c13565b9050919050565b60005b83811015613c7e578082015181840152602081019050613c63565b83811115613c8d576000848401525b50505050565b6000613c9e82613c13565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613cd157613cd0613cdc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f503250206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b7f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160008201527f6e206c696d69742e000000000000000000000000000000000000000000000000602082015250565b613fda81613bd5565b8114613fe557600080fd5b50565b613ff181613be7565b8114613ffc57600080fd5b50565b61400881613c13565b811461401357600080fd5b5056fea26469706673582212209e7a05301e2fab2a21b89f6712010692d1a79325ca38f4950211bc1e0708132664736f6c63430008050033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063715018a611610139578063aa4bde28116100b6578063dd62ed3e1161007a578063dd62ed3e146108e0578063e346d64f1461091d578063e96fada214610949578063ec993f5e14610974578063f1d5f5171461099d578063f887ea40146109c657610251565b8063aa4bde28146107fa578063ade927e714610825578063b2fe8a7a14610863578063d05b5a001461088c578063d36d0497146108b557610251565b80639d34a30d116100fd5780639d34a30d14610713578063a0916b821461073c578063a6af260f14610765578063a8aa1b3114610792578063a9059cbb146107bd57610251565b8063715018a61461063e57806378e9792514610655578063893d20e8146106805780638b42507f146106ab57806395d89b41146106e857610251565b8063313ce567116101c75780633f4218e01161018b5780633f4218e01461051f578063571ac8b01461055c5780635b0833cc146105995780636ddd1713146105d657806370a082311461060157610251565b8063313ce567146104385780633535cea914610463578063364333f4146104a05780633bbac579146104b75780633e6968b6146104f457610251565b80630eff64271161020e5780630eff64271461033d57806318160ddd1461036857806323b872dd146103935780632b112e49146103d05780632f54bf6e146103fb57610251565b806302259e9e146102565780630445b6671461028157806306fdde03146102ac578063095ea7b3146102d75780630b78f9c01461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109f1565b6040516102789190613970565b60405180910390f35b34801561028d57600080fd5b506102966109f7565b6040516102a39190613970565b60405180910390f35b3480156102b857600080fd5b506102c16109fd565b6040516102ce919061380e565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061323c565b610a3a565b60405161030b91906137af565b60405180910390f35b34801561032057600080fd5b5061033b60048036038101906103369190613376565b610b2c565b005b34801561034957600080fd5b50610352610be2565b60405161035f9190613970565b60405180910390f35b34801561037457600080fd5b5061037d610be8565b60405161038a9190613970565b60405180910390f35b34801561039f57600080fd5b506103ba60048036038101906103b591906131a9565b610bf2565b6040516103c791906137af565b60405180910390f35b3480156103dc57600080fd5b506103e5610df2565b6040516103f29190613970565b60405180910390f35b34801561040757600080fd5b50610422600480360381019061041d919061310f565b610e68565b60405161042f91906137af565b60405180910390f35b34801561044457600080fd5b5061044d610ec1565b60405161045a9190613a45565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061310f565b610eca565b6040516104979190613970565b60405180910390f35b3480156104ac57600080fd5b506104b5610f3c565b005b3480156104c357600080fd5b506104de60048036038101906104d9919061310f565b610fef565b6040516104eb91906137af565b60405180910390f35b34801561050057600080fd5b5061050961100f565b6040516105169190613970565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061310f565b611036565b60405161055391906137af565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061310f565b611056565b60405161059091906137af565b60405180910390f35b3480156105a557600080fd5b506105c060048036038101906105bb919061323c565b611089565b6040516105cd9190613970565b60405180910390f35b3480156105e257600080fd5b506105eb6110ae565b6040516105f891906137af565b60405180910390f35b34801561060d57600080fd5b506106286004803603810190610623919061310f565b6110c1565b6040516106359190613970565b60405180910390f35b34801561064a57600080fd5b5061065361110a565b005b34801561066157600080fd5b5061066a6111cd565b6040516106779190613970565b60405180910390f35b34801561068c57600080fd5b506106956111d3565b6040516106a2919061370a565b60405180910390f35b3480156106b757600080fd5b506106d260048036038101906106cd919061310f565b6111fc565b6040516106df91906137af565b60405180910390f35b3480156106f457600080fd5b506106fd61121c565b60405161070a919061380e565b60405180910390f35b34801561071f57600080fd5b5061073a600480360381019061073591906131a9565b611259565b005b34801561074857600080fd5b50610763600480360381019061075e919061327c565b611372565b005b34801561077157600080fd5b5061077a61145f565b60405161078993929190613a0e565b60405180910390f35b34801561079e57600080fd5b506107a7611478565b6040516107b4919061370a565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061323c565b61149e565b6040516107f191906137af565b60405180910390f35b34801561080657600080fd5b5061080f6114b3565b60405161081c9190613970565b60405180910390f35b34801561083157600080fd5b5061084c6004803603810190610847919061310f565b6114b9565b60405161085a9291906139e5565b60405180910390f35b34801561086f57600080fd5b5061088a60048036038101906108859190613309565b6114dd565b005b34801561089857600080fd5b506108b360048036038101906108ae91906131fc565b61155d565b005b3480156108c157600080fd5b506108ca611600565b6040516108d79190613970565b60405180910390f35b3480156108ec57600080fd5b5061090760048036038101906109029190613169565b611606565b6040516109149190613970565b60405180910390f35b34801561092957600080fd5b5061093261168d565b6040516109409291906137ca565b60405180910390f35b34801561095557600080fd5b5061095e6116b8565b60405161096b919061370a565b60405180910390f35b34801561098057600080fd5b5061099b600480360381019061099691906133b6565b6116de565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613349565b611740565b005b3480156109d257600080fd5b506109db6117ac565b6040516109e891906137f3565b60405180910390f35b60135481565b60145481565b60606040518060400160405280600b81526020017f43686973616e6120496e75000000000000000000000000000000000000000000815250905090565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610b1a9190613970565b60405180910390a36001905092915050565b610b3533610e68565b610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b906138d0565b60405180910390fd5b80600e8190555081600d81905550600e54600d54610b929190613ac0565b600f819055506019600f541115610bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd590613930565b60405180910390fd5b5050565b60155481565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dde57610d5d826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610de9848484611836565b90509392505050565b600060046000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600354610e639190613ba1565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600080610eea6103e8610edc85612345565b61249690919063ffffffff16565b90506000610f03601654836124e090919063ffffffff16565b9050610f33612710610f2583610f17610df2565b6124e090919063ffffffff16565b61249690919063ffffffff16565b92505050919050565b610f4533610e68565b610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b906138d0565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fec573d6000803e3d6000fd5b50565b600b6020528060005260406000206000915054906101000a900460ff1681565b60006110316015546110234260185461255b565b61249690919063ffffffff16565b905090565b60096020528060005260406000206000915054906101000a900460ff1681565b6000611082827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a3a565b9050919050565b6019602052816000526040600020602052806000526040600020600091509150505481565b601160019054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61111333610e68565b611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906138d0565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616360006040516111c3919061370a565b60405180910390a1565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600481526020017f43494e5500000000000000000000000000000000000000000000000000000000815250905090565b61126233610e68565b6112a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611298906138d0565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016112dc929190613725565b602060405180830381600087803b1580156112f657600080fd5b505af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e91906132dc565b61136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490613850565b60405180910390fd5b505050565b61137b33610e68565b6113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b1906138d0565b60405180910390fd5b60005b838390508110156114595781600b60008686858181106113e0576113df613d3a565b5b90506020020160208101906113f5919061310f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061145190613c93565b9150506113bd565b50505050565b6000806000601554601354601654925092509250909192565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114ab338484611836565b905092915050565b60125481565b600c6020528060005260406000206000915090508060000154908060010154905082565b6114e633610e68565b611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c906138d0565b60405180910390fd5b81601760006101000a81548160ff02191690831515021790555080601760016101000a81548160ff0219169083151502179055505050565b61156633610e68565b6115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906138d0565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60165481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080601760009054906101000a900460ff16601760019054906101000a900460ff16915091509091565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6116e733610e68565b611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d906138d0565b60405180910390fd5b826015819055508160138190555080601681905550505050565b61174933610e68565b611788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177f906138d0565b60405180910390fd5b6103e8816003546117999190613b47565b6117a39190613b16565b60128190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600083831115829061181a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611811919061380e565b60405180910390fd5b50600083856118299190613ba1565b9050809150509392505050565b6000838383600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118e25750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611995576118f083610eca565b81601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061193a61100f565b8152602001908152602001600020546119539190613ac0565b1115611994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198b90613950565b60405180910390fd5b5b600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613910565b60405180910390fd5b601160009054906101000a900460ff1615611a4957611a42878787612583565b935061233b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611af55750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611b4f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015611b675750601760019054906101000a900460ff165b15611cf557600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c0d5750600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c615750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611cb55750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb906138f0565b60405180910390fd5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611da15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611e8a57600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e4a575060125485600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e479190613ac0565b11155b611e89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8090613830565b60405180910390fd5b5b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611f315750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611f7e5742600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120255750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b156121375742600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506120db85601960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006120be61100f565b81526020019081526020016000205461275690919063ffffffff16565b601960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061212461100f565b8152602001908152602001600020819055505b61213f6127b4565b1561214d5761214c61288b565b5b6121d6856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061222488612df3565b61222e5785612239565b6122388887612e4a565b5b905061228d81600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161232d9190613970565b60405180910390a360019450505b5050509392505050565b6000806000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101541415612409576124026103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154426123ea9190613ba1565b6123f49190613b16565b6124e090919063ffffffff16565b905061247b565b6124786103e8601554600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154426124609190613ba1565b61246a9190613b16565b6124e090919063ffffffff16565b90505b6103e8811061248a578061248e565b6103e85b915050919050565b60006124d883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f8e565b905092915050565b6000808314156124f35760009050612555565b600082846125019190613b47565b90508284826125109190613b16565b14612550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612547906138b0565b60405180910390fd5b809150505b92915050565b6000818311156125785781836125719190613ba1565b905061257d565b600090505b92915050565b600061260e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117d29092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a382600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516127439190613970565b60405180910390a3600190509392505050565b60008082846127659190613ac0565b9050838110156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a190613870565b60405180910390fd5b8091505092915050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156128215750601160009054906101000a900460ff16155b80156128395750601160019054906101000a900460ff165b80156128865750601454600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601454905060006128eb60026128dd600f546128cf600d54876124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b905060006129028284612ff190919063ffffffff16565b90506000600267ffffffffffffffff81111561292157612920613d69565b5b60405190808252806020026020018201604052801561294f5781602001602082028036833780820191505090505b509050308160008151811061296757612966613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0957600080fd5b505afa158015612a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a41919061313c565b81600181518110612a5557612a54613d3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401612af895949392919061398b565b600060405180830381600087803b158015612b1257600080fd5b505af1158015612b26573d6000803e3d6000fd5b505050506000612b3f8247612ff190919063ffffffff16565b90506000612b6d612b5c6002600d5461249690919063ffffffff16565b600f54612ff190919063ffffffff16565b90506000612bab6002612b9d84612b8f600d54886124e090919063ffffffff16565b61249690919063ffffffff16565b61249690919063ffffffff16565b90506000612bd683612bc8600e54876124e090919063ffffffff16565b61249690919063ffffffff16565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051612c24906136f5565b600060405180830381858888f193505050503d8060008114612c62576040519150601f19603f3d011682016040523d82523d6000602084013e612c67565b606091505b5050905080612cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca290613890565b60405180910390fd5b6000891115612dcc57600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612d3d9695949392919061374e565b6060604051808303818588803b158015612d5657600080fd5b505af1158015612d6a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d8f9190613409565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a604051612dc39291906139e5565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080612e76601054612e68600f54866124e090919063ffffffff16565b61249690919063ffffffff16565b9050612eca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461275690919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f6a9190613970565b60405180910390a3612f858184612ff190919063ffffffff16565b91505092915050565b60008083118290612fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fcc919061380e565b60405180910390fd5b5060008385612fe49190613b16565b9050809150509392505050565b600061303383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d2565b905092915050565b60008135905061304a81613fd1565b92915050565b60008151905061305f81613fd1565b92915050565b60008083601f84011261307b5761307a613d9d565b5b8235905067ffffffffffffffff81111561309857613097613d98565b5b6020830191508360208202830111156130b4576130b3613da2565b5b9250929050565b6000813590506130ca81613fe8565b92915050565b6000815190506130df81613fe8565b92915050565b6000813590506130f481613fff565b92915050565b60008151905061310981613fff565b92915050565b60006020828403121561312557613124613dac565b5b60006131338482850161303b565b91505092915050565b60006020828403121561315257613151613dac565b5b600061316084828501613050565b91505092915050565b600080604083850312156131805761317f613dac565b5b600061318e8582860161303b565b925050602061319f8582860161303b565b9150509250929050565b6000806000606084860312156131c2576131c1613dac565b5b60006131d08682870161303b565b93505060206131e18682870161303b565b92505060406131f2868287016130e5565b9150509250925092565b6000806040838503121561321357613212613dac565b5b60006132218582860161303b565b9250506020613232858286016130bb565b9150509250929050565b6000806040838503121561325357613252613dac565b5b60006132618582860161303b565b9250506020613272858286016130e5565b9150509250929050565b60008060006040848603121561329557613294613dac565b5b600084013567ffffffffffffffff8111156132b3576132b2613da7565b5b6132bf86828701613065565b935093505060206132d2868287016130bb565b9150509250925092565b6000602082840312156132f2576132f1613dac565b5b6000613300848285016130d0565b91505092915050565b600080604083850312156133205761331f613dac565b5b600061332e858286016130bb565b925050602061333f858286016130bb565b9150509250929050565b60006020828403121561335f5761335e613dac565b5b600061336d848285016130e5565b91505092915050565b6000806040838503121561338d5761338c613dac565b5b600061339b858286016130e5565b92505060206133ac858286016130e5565b9150509250929050565b6000806000606084860312156133cf576133ce613dac565b5b60006133dd868287016130e5565b93505060206133ee868287016130e5565b92505060406133ff868287016130e5565b9150509250925092565b60008060006060848603121561342257613421613dac565b5b6000613430868287016130fa565b9350506020613441868287016130fa565b9250506040613452868287016130fa565b9150509250925092565b60006134688383613474565b60208301905092915050565b61347d81613bd5565b82525050565b61348c81613bd5565b82525050565b600061349d82613a70565b6134a78185613a93565b93506134b283613a60565b8060005b838110156134e35781516134ca888261345c565b97506134d583613a86565b9250506001810190506134b6565b5085935050505092915050565b6134f981613be7565b82525050565b61350881613c2a565b82525050565b61351781613c4e565b82525050565b600061352882613a7b565b6135328185613aaf565b9350613542818560208601613c60565b61354b81613db1565b840191505092915050565b6000613563602583613aaf565b915061356e82613dc2565b604082019050919050565b6000613586600f83613aaf565b915061359182613e11565b602082019050919050565b60006135a9601b83613aaf565b91506135b482613e3a565b602082019050919050565b60006135cc601e83613aaf565b91506135d782613e63565b602082019050919050565b60006135ef602183613aaf565b91506135fa82613e8c565b604082019050919050565b6000613612600683613aaf565b915061361d82613edb565b602082019050919050565b6000613635600083613aa4565b915061364082613f04565b600082019050919050565b6000613658600f83613aaf565b915061366382613f07565b602082019050919050565b600061367b600b83613aaf565b915061368682613f30565b602082019050919050565b600061369e601d83613aaf565b91506136a982613f59565b602082019050919050565b60006136c1602883613aaf565b91506136cc82613f82565b604082019050919050565b6136e081613c13565b82525050565b6136ef81613c1d565b82525050565b600061370082613628565b9150819050919050565b600060208201905061371f6000830184613483565b92915050565b600060408201905061373a6000830185613483565b61374760208301846136d7565b9392505050565b600060c0820190506137636000830189613483565b61377060208301886136d7565b61377d604083018761350e565b61378a606083018661350e565b6137976080830185613483565b6137a460a08301846136d7565b979650505050505050565b60006020820190506137c460008301846134f0565b92915050565b60006040820190506137df60008301856134f0565b6137ec60208301846134f0565b9392505050565b600060208201905061380860008301846134ff565b92915050565b60006020820190508181036000830152613828818461351d565b905092915050565b6000602082019050818103600083015261384981613556565b9050919050565b6000602082019050818103600083015261386981613579565b9050919050565b600060208201905081810360008301526138898161359c565b9050919050565b600060208201905081810360008301526138a9816135bf565b9050919050565b600060208201905081810360008301526138c9816135e2565b9050919050565b600060208201905081810360008301526138e981613605565b9050919050565b600060208201905081810360008301526139098161364b565b9050919050565b600060208201905081810360008301526139298161366e565b9050919050565b6000602082019050818103600083015261394981613691565b9050919050565b60006020820190508181036000830152613969816136b4565b9050919050565b600060208201905061398560008301846136d7565b92915050565b600060a0820190506139a060008301886136d7565b6139ad602083018761350e565b81810360408301526139bf8186613492565b90506139ce6060830185613483565b6139db60808301846136d7565b9695505050505050565b60006040820190506139fa60008301856136d7565b613a0760208301846136d7565b9392505050565b6000606082019050613a2360008301866136d7565b613a3060208301856136d7565b613a3d60408301846136d7565b949350505050565b6000602082019050613a5a60008301846136e6565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613acb82613c13565b9150613ad683613c13565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613b0b57613b0a613cdc565b5b828201905092915050565b6000613b2182613c13565b9150613b2c83613c13565b925082613b3c57613b3b613d0b565b5b828204905092915050565b6000613b5282613c13565b9150613b5d83613c13565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b9657613b95613cdc565b5b828202905092915050565b6000613bac82613c13565b9150613bb783613c13565b925082821015613bca57613bc9613cdc565b5b828203905092915050565b6000613be082613bf3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613c3582613c3c565b9050919050565b6000613c4782613bf3565b9050919050565b6000613c5982613c13565b9050919050565b60005b83811015613c7e578082015181840152602081019050613c63565b83811115613c8d576000848401525b50505050565b6000613c9e82613c13565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613cd157613cd0613cdc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b50565b7f503250206e6f7420616c6c6f7765640000000000000000000000000000000000600082015250565b7f426f742041646472657373000000000000000000000000000000000000000000600082015250565b7f4d757374206b656570206665657320617420323525206f72206c657373000000600082015250565b7f43616e6e6f742073656c6c206f72207472616e73666572206d6f72652074686160008201527f6e206c696d69742e000000000000000000000000000000000000000000000000602082015250565b613fda81613bd5565b8114613fe557600080fd5b50565b613ff181613be7565b8114613ffc57600080fd5b50565b61400881613c13565b811461401357600080fd5b5056fea26469706673582212209e7a05301e2fab2a21b89f6712010692d1a79325ca38f4950211bc1e0708132664736f6c63430008050033

Deployed Bytecode Sourcemap

5217:12154:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6488:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6589:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8372:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8794:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15992:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6679:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8102:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10359:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9297:133;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8196:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9925:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15172:128;;;;;;;;;;;;;:::i;:::-;;6031:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9148:141;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5927:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9018:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7204:59;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6295:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8542:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3564:131;;;;;;;;;;;;;:::i;:::-;;6868:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8458:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5977:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8282:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15308:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15774:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16910:207;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5812:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10195:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6397:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6075:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;16288:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15647:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6744:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8653:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16463:140;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5692:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16611:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15498:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5781:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6488:71;;;;:::o;6589:60::-;;;;:::o;8372:80::-;8420:13;8444:5;;;;;;;;;;;;;;;;;8437:12;;8372:80;:::o;8794:216::-;8869:4;8921:6;8886:11;:23;8898:10;8886:23;;;;;;;;;;;;;;;:32;8910:7;8886:32;;;;;;;;;;;;;;;:41;;;;8964:7;8943:37;;8952:10;8943:37;;;8973:6;8943:37;;;;;;:::i;:::-;;;;;;;;8998:4;8991:11;;8794:216;;;;:::o;15992:286::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16100:13:::1;16085:12;:28;;;;16139:13;16124:12;:28;;;;16189:12;;16174;;:27;;;;:::i;:::-;16163:8;:38;;;;16234:2;16222:8;;:14;;16214:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15992:286:::0;;:::o;6679:42::-;;;;:::o;8102:88::-;8157:7;8175:12;;8168:19;;8102:88;:::o;10359:370::-;10459:4;10514:17;10479:11;:19;10491:6;10479:19;;;;;;;;;;;;;;;:31;10499:10;10479:31;;;;;;;;;;;;;;;;:52;10476:186;;10581:69;10617:6;10581:69;;;;;;;;;;;;;;;;;:11;:19;10593:6;10581:19;;;;;;;;;;;;;;;:31;10601:10;10581:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;10547:11;:19;10559:6;10547:19;;;;;;;;;;;;;;;:31;10567:10;10547:31;;;;;;;;;;;;;;;:103;;;;10476:186;10681:40;10695:6;10703:9;10714:6;10681:13;:40::i;:::-;10674:47;;10359:370;;;;;:::o;9297:133::-;9350:7;9406:9;:15;9416:4;;;;;;;;;;;9406:15;;;;;;;;;;;;;;;;9391:12;;:30;;;;:::i;:::-;9370:52;;9297:133;:::o;3455:103::-;3510:4;3545:5;;;;;;;;;;;3534:16;;:7;:16;;;3527:23;;3455:103;;;:::o;8196:80::-;8248:5;5495:1;8257:16;;8196:80;:::o;9925:262::-;9988:7;10008:12;10023:44;10062:4;10023:34;10050:6;10023:26;:34::i;:::-;:38;;:44;;;;:::i;:::-;10008:59;;10078:13;10094:21;10103:11;;10094:4;:8;;:21;;;;:::i;:::-;10078:37;;10135:44;10173:5;10135:33;10162:5;10135:22;:20;:22::i;:::-;:26;;:33;;;;:::i;:::-;:37;;:44;;;;:::i;:::-;10128:51;;;;9925:262;;;:::o;15172:128::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15239:20:::1;;;;;;;;;;;15231:38;;:61;15270:21;15231:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15172:128::o:0;6031:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;9148:141::-;9194:7;9221:60;9261:19;;9221:35;9229:15;9246:9;;9221:7;:35::i;:::-;:39;;:60;;;;:::i;:::-;9214:67;;9148:141;:::o;5927:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;9018:122::-;9073:4;9097:35;9105:7;9114:17;9097:7;:35::i;:::-;9090:42;;9018:122;;;:::o;7204:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6295:30::-;;;;;;;;;;;;;:::o;8542:105::-;8608:7;8626:9;:18;8636:7;8626:18;;;;;;;;;;;;;;;;8619:25;;8542:105;;;:::o;3564:131::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3637:1:::1;3621:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;3655:32;3684:1;3655:32;;;;;;:::i;:::-;;;;;;;;3564:131::o:0;6868:24::-;;;;:::o;8458:78::-;8510:7;8528:5;;;;;;;;;;;8521:12;;8458:78;:::o;5977:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;8282:84::-;8332:13;8356:7;;;;;;;;;;;;;;;;;8349:14;;8282:84;:::o;15308:182::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15428:10:::1;15422:26;;;15449:3;15454:7;15422:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15308:182:::0;;;:::o;15774:209::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15870:9:::1;15865:105;15889:10;;:17;;15885:1;:21;15865:105;;;15952:6;15929:5;:20;15935:10;;15946:1;15935:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15929:20;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15908:3;;;;;:::i;:::-;;;;15865:105;;;;15774:209:::0;;;:::o;16910:207::-;16960:21;16983:26;17011:22;17052:19;;17072:24;;17097:11;;17045:64;;;;;;16910:207;;;:::o;5812:19::-;;;;;;;;;;;;;:::o;10195:156::-;10275:4;10299:44;10313:10;10325:9;10336:6;10299:13;:44::i;:::-;10292:51;;10195:156;;;;:::o;6397:61::-;;;;:::o;6075:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16288:163::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16396:12:::1;16382:11;;:26;;;;;;;;;;;;;;;;;;16432:11;16419:10;;:24;;;;;;;;;;;;;;;;;;16288:163:::0;;:::o;15647:119::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15752:6:::1;15732:5;:17;15738:10;15732:17;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;15647:119:::0;;:::o;6744:31::-;;;;:::o;8653:133::-;8737:7;8755:11;:19;8767:6;8755:19;;;;;;;;;;;;;;;:28;8775:7;8755:28;;;;;;;;;;;;;;;;8748:35;;8653:133;;;;:::o;16463:140::-;16516:18;16536:17;16572:11;;;;;;;;;;;16584:10;;;;;;;;;;;16565:30;;;;16463:140;;:::o;5692:80::-;;;;;;;;;;;;;:::o;16611:291::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;16774:20:::1;16752:19;:42;;;;16832:25;16805:24;:52;;;;16882:12;16868:11;:26;;;;16611:291:::0;;;:::o;15498:141::-;3408:19;3416:10;3408:7;:19::i;:::-;3400:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;15627:4:::1;15609:13;15594:12;;:28;;;;:::i;:::-;15593:38;;;;:::i;:::-;15575:15;:56;;;;15498:141:::0;:::o;5781:24::-;;;;;;;;;;;;;:::o;1544:190::-;1630:7;1663:1;1658;:6;;1666:12;1650:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1690:9;1706:1;1702;:5;;;;:::i;:::-;1690:17;;1725:1;1718:8;;;1544:190;;;;;:::o;10737:1487::-;10867:4;10831:6;10839:9;10850:6;6987:15;:23;7003:6;6987:23;;;;;;;;;;;;;;;;;;;;;;;;;6986:24;:45;;;;;7027:4;;;;;;;;;;;7014:17;;:9;:17;;;6986:45;6983:196;;;7098:24;7115:6;7098:16;:24::i;:::-;7088:6;7056:4;:12;7061:6;7056:12;;;;;;;;;;;;;;;:29;7069:15;:13;:15::i;:::-;7056:29;;;;;;;;;;;;:38;;;;:::i;:::-;:66;;7048:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;6983:196;10893:5:::1;:13;10899:6;10893:13;;;;;;;;;;;;;;;;;;;;;;;;;10892:14;10884:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10938:6;;;;;;;;;;;10935:63;;;10954:41;10969:6;10977:9;10988:6;10954:14;:41::i;:::-;10947:48;;;;10935:63;11026:4;;;;;;;;;;;11013:17;;:9;:17;;;;:35;;;;;11044:4;;;;;;;;;;;11034:14;;:6;:14;;;;11013:35;:56;;;;;11065:4;;;;;;;;;;;11052:17;;:9;:17;;;;11013:56;:70;;;;;11073:10;;;;;;;;;;;11013:70;11010:231;;;11107:11;:22;11119:9;11107:22;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;11133:11;:19;11145:6;11133:19;;;;;;;;;;;;;;;;;;;;;;;;;11107:45;:75;;;;11156:15;:26;11172:9;11156:26;;;;;;;;;;;;;;;;;;;;;;;;;11107:75;:102;;;;11186:15;:23;11202:6;11186:23;;;;;;;;;;;;;;;;;;;;;;;;;11107:102;11099:130;;;;;;;;;;;;:::i;:::-;;;;;;;;;11010:231;11270:4;;;;;;;;;;;11257:17;;:9;:17;;;;:38;;;;;11291:4;;;;;;;;;;;11278:17;;:9;:17;;;;11257:38;11253:199;;;11320:15;:26;11336:9;11320:26;;;;;;;;;;;;;;;;;;;;;;;;;:78;;;;11383:15;;11373:6;11350:9;:20;11360:9;11350:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:48;;11320:78;11312:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;11253:199;11469:15;:26;11485:9;11469:26;;;;;;;;;;;;;;;;;;;;;;;;;11468:27;:45;;;;;11509:4;;;;;;;;;;;11499:14;;:6;:14;;;11468:45;11465:124;;;11562:15;11530:9;:20;11540:9;11530:20;;;;;;;;;;;;;;;:29;;:47;;;;11465:124;11605:15;:23;11621:6;11605:23;;;;;;;;;;;;;;;;;;;;;;;;;11604:24;:45;;;;;11645:4;;;;;;;;;;;11632:17;;:9;:17;;;11604:45;11601:214;;;11700:15;11666:9;:17;11676:6;11666:17;;;;;;;;;;;;;;;:31;;:49;;;;11762:41;11796:6;11762:4;:12;11767:6;11762:12;;;;;;;;;;;;;;;:29;11775:15;:13;:15::i;:::-;11762:29;;;;;;;;;;;;:33;;:41;;;;:::i;:::-;11730:4;:12;11735:6;11730:12;;;;;;;;;;;;;;;:29;11743:15;:13;:15::i;:::-;11730:29;;;;;;;;;;;:73;;;;11601:214;11838:16;:14;:16::i;:::-;11835:35;;;11857:10;:8;:10::i;:::-;11835:35;11903:53;11925:6;11903:53;;;;;;;;;;;;;;;;::::0;:9:::1;:17;11913:6;11903:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11883:9;:17;11893:6;11883:17;;;;;;;;;;;;;;;:73;;;;11969:22;11994:21;12008:6;11994:13;:21::i;:::-;:56;;12044:6;11994:56;;;12018:23;12026:6;12034;12018:7;:23::i;:::-;11994:56;11969:81;;12084:40;12109:14;12084:9;:20;12094:9;12084:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;12061:9;:20;12071:9;12061:20;;;;;;;;;;;;;;;:63;;;;12159:9;12142:43;;12151:6;12142:43;;;12170:14;12142:43;;;;;;:::i;:::-;;;;;;;;12203:4;12196:11;;;7189:1;10737:1487:::0;;;;;;;;:::o;9438:479::-;9513:7;9533:15;9599:1;9564:9;:17;9574:6;9564:17;;;;;;;;;;;;;;;:31;;;:36;9561:292;;;9630:80;9705:4;9680:19;;9650:9;:17;9660:6;9650:17;;;;;;;;;;;;;;;:26;;;9632:15;:44;;;;:::i;:::-;9631:68;;;;:::i;:::-;9630:74;;:80;;;;:::i;:::-;9617:93;;9561:292;;;9756:85;9836:4;9811:19;;9776:9;:17;9786:6;9776:17;;;;;;;;;;;;;;;:31;;;9758:15;:49;;;;:::i;:::-;9757:73;;;;:::i;:::-;9756:79;;:85;;;;:::i;:::-;9743:98;;9561:292;9885:4;9872:10;:17;:37;;9899:10;9872:37;;;9892:4;9872:37;9865:44;;;9438:479;;;:::o;1992:132::-;2050:7;2077:39;2081:1;2084;2077:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2070:46;;1992:132;;;;:::o;1740:246::-;1798:7;1827:1;1822;:6;1818:47;;;1852:1;1845:8;;;;1818:47;1875:9;1891:1;1887;:5;;;;:::i;:::-;1875:17;;1920:1;1915;1911;:5;;;;:::i;:::-;:10;1903:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1977:1;1970:8;;;1740:246;;;;;:::o;17125:176::-;17179:4;17204:1;17200;:5;17196:94;;;17232:1;17228;:5;;;;:::i;:::-;17221:12;;;;17196:94;17273:1;17266:8;;17125:176;;;;;:::o;12236:330::-;12329:4;12366:53;12388:6;12366:53;;;;;;;;;;;;;;;;;:9;:17;12376:6;12366:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12346:9;:17;12356:6;12346:17;;;;;;;;;;;;;;;:73;;;;12453:32;12478:6;12453:9;:20;12463:9;12453:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12430:9;:20;12440:9;12430:20;;;;;;;;;;;;;;;:55;;;;12518:9;12501:35;;12510:6;12501:35;;;12529:6;12501:35;;;;;;:::i;:::-;;;;;;;;12554:4;12547:11;;12236:330;;;;;:::o;1217:179::-;1275:7;1295:9;1311:1;1307;:5;;;;:::i;:::-;1295:17;;1336:1;1331;:6;;1323:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1387:1;1380:8;;;1217:179;;;;:::o;13033:197::-;13082:4;13120;;;;;;;;;;;13106:18;;:10;:18;;;;:38;;;;;13138:6;;;;;;;;;;;13137:7;13106:38;:62;;;;;13157:11;;;;;;;;;;;13106:62;:116;;;;;13209:13;;13181:9;:24;13199:4;13181:24;;;;;;;;;;;;;;;;:41;;13106:116;13099:123;;13033:197;:::o;13238:1548::-;6363:4;6354:6;;:13;;;;;;;;;;;;;;;;;;13287:28:::1;13318:13;;13287:44;;13342:23;13368:59;13425:1;13368:52;13411:8;;13368:38;13393:12;;13368:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;13342:85;;13438:20;13461:41;13486:15;13461:20;:24;;:41;;;;:::i;:::-;13438:64;;13515:21;13553:1;13539:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13515:40;;13584:4;13566;13571:1;13566:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13610:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13600:4;13605:1;13600:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13636:21;13660;13636:45;;13694:6;;;;;;;;;;;:57;;;13766:12;13793:1;13809:4;13836;13856:15;13694:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13893:17;13913:40;13939:13;13913:21;:25;;:40;;;;:::i;:::-;13893:60;;13964:19;13986:33;13999:19;14016:1;13999:12;;:16;;:19;;;;:::i;:::-;13986:8;;:12;;:33;;;;:::i;:::-;13964:55;;14030:26;14059:51;14108:1;14059:44;14091:11;14059:27;14073:12;;14059:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;14030:80;;14121:26;14150:44;14182:11;14150:27;14164:12;;14150:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;14121:73;;14208:21;14266:20;;;;;;;;;;;14258:34;;14300:18;14325:5;14258:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14207:128;;;14354:16;14346:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;14439:1;14421:15;:19;14418:361;;;14456:6;;;;;;;;;;;:22;;;14486:18;14532:4;14556:15;14590:1;14610::::0;14630:20:::1;;;;;;;;;;;14669:15;14456:243;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14719:48;14731:18;14751:15;14719:48;;;;;;;:::i;:::-;;;;;;;;14418:361;13276:1510;;;;;;;;;;6381:5:::0;6372:6;;:14;;;;;;;;;;;;;;;;;;13238:1548::o;12574:114::-;12636:4;12661:11;:19;12673:6;12661:19;;;;;;;;;;;;;;;;;;;;;;;;;12660:20;12653:27;;12574:114;;;:::o;12696:329::-;12763:7;12783:17;12803:40;12828:14;;12803:20;12814:8;;12803:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;12783:60;;12881:39;12910:9;12881;:24;12899:4;12881:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12854:9;:24;12872:4;12854:24;;;;;;;;;;;;;;;:66;;;;12961:4;12936:42;;12945:6;12936:42;;;12968:9;12936:42;;;;;;:::i;:::-;;;;;;;;12996:21;13007:9;12996:6;:10;;:21;;;;:::i;:::-;12989:28;;;12696:329;;;;:::o;2130:189::-;2216:7;2248:1;2244;:5;2251:12;2236:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2275:9;2291:1;2287;:5;;;;:::i;:::-;2275:17;;2310:1;2303:8;;;2130:189;;;;;:::o;1402:136::-;1460:7;1487:43;1491:1;1494;1487:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1480:50;;1402:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:2;;459:79;;:::i;:::-;418:2;572:6;559:20;549:30;;602:18;594:6;591:30;588:2;;;624:79;;:::i;:::-;588:2;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:2;;;799:79;;:::i;:::-;752:2;408:478;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;941:84;;;;:::o;1031:137::-;1085:5;1116:6;1110:13;1101:22;;1132:30;1156:5;1132:30;:::i;:::-;1091:77;;;;:::o;1174:139::-;1220:5;1258:6;1245:20;1236:29;;1274:33;1301:5;1274:33;:::i;:::-;1226:87;;;;:::o;1319:143::-;1376:5;1407:6;1401:13;1392:22;;1423:33;1450:5;1423:33;:::i;:::-;1382:80;;;;:::o;1468:329::-;1527:6;1576:2;1564:9;1555:7;1551:23;1547:32;1544:2;;;1582:79;;:::i;:::-;1544:2;1702:1;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;:::i;:::-;1717:63;;1673:117;1534:263;;;;:::o;1803:351::-;1873:6;1922:2;1910:9;1901:7;1897:23;1893:32;1890:2;;;1928:79;;:::i;:::-;1890:2;2048:1;2073:64;2129:7;2120:6;2109:9;2105:22;2073:64;:::i;:::-;2063:74;;2019:128;1880:274;;;;:::o;2160:474::-;2228:6;2236;2285:2;2273:9;2264:7;2260:23;2256:32;2253:2;;;2291:79;;:::i;:::-;2253:2;2411:1;2436:53;2481:7;2472:6;2461:9;2457:22;2436:53;:::i;:::-;2426:63;;2382:117;2538:2;2564:53;2609:7;2600:6;2589:9;2585:22;2564:53;:::i;:::-;2554:63;;2509:118;2243:391;;;;;:::o;2640:619::-;2717:6;2725;2733;2782:2;2770:9;2761:7;2757:23;2753:32;2750:2;;;2788:79;;:::i;:::-;2750:2;2908:1;2933:53;2978:7;2969:6;2958:9;2954:22;2933:53;:::i;:::-;2923:63;;2879:117;3035:2;3061:53;3106:7;3097:6;3086:9;3082:22;3061:53;:::i;:::-;3051:63;;3006:118;3163:2;3189:53;3234:7;3225:6;3214:9;3210:22;3189:53;:::i;:::-;3179:63;;3134:118;2740:519;;;;;:::o;3265:468::-;3330:6;3338;3387:2;3375:9;3366:7;3362:23;3358:32;3355:2;;;3393:79;;:::i;:::-;3355:2;3513:1;3538:53;3583:7;3574:6;3563:9;3559:22;3538:53;:::i;:::-;3528:63;;3484:117;3640:2;3666:50;3708:7;3699:6;3688:9;3684:22;3666:50;:::i;:::-;3656:60;;3611:115;3345:388;;;;;:::o;3739:474::-;3807:6;3815;3864:2;3852:9;3843:7;3839:23;3835:32;3832:2;;;3870:79;;:::i;:::-;3832:2;3990:1;4015:53;4060:7;4051:6;4040:9;4036:22;4015:53;:::i;:::-;4005:63;;3961:117;4117:2;4143:53;4188:7;4179:6;4168:9;4164:22;4143:53;:::i;:::-;4133:63;;4088:118;3822:391;;;;;:::o;4219:698::-;4311:6;4319;4327;4376:2;4364:9;4355:7;4351:23;4347:32;4344:2;;;4382:79;;:::i;:::-;4344:2;4530:1;4519:9;4515:17;4502:31;4560:18;4552:6;4549:30;4546:2;;;4582:79;;:::i;:::-;4546:2;4695:80;4767:7;4758:6;4747:9;4743:22;4695:80;:::i;:::-;4677:98;;;;4473:312;4824:2;4850:50;4892:7;4883:6;4872:9;4868:22;4850:50;:::i;:::-;4840:60;;4795:115;4334:583;;;;;:::o;4923:345::-;4990:6;5039:2;5027:9;5018:7;5014:23;5010:32;5007:2;;;5045:79;;:::i;:::-;5007:2;5165:1;5190:61;5243:7;5234:6;5223:9;5219:22;5190:61;:::i;:::-;5180:71;;5136:125;4997:271;;;;:::o;5274:462::-;5336:6;5344;5393:2;5381:9;5372:7;5368:23;5364:32;5361:2;;;5399:79;;:::i;:::-;5361:2;5519:1;5544:50;5586:7;5577:6;5566:9;5562:22;5544:50;:::i;:::-;5534:60;;5490:114;5643:2;5669:50;5711:7;5702:6;5691:9;5687:22;5669:50;:::i;:::-;5659:60;;5614:115;5351:385;;;;;:::o;5742:329::-;5801:6;5850:2;5838:9;5829:7;5825:23;5821:32;5818:2;;;5856:79;;:::i;:::-;5818:2;5976:1;6001:53;6046:7;6037:6;6026:9;6022:22;6001:53;:::i;:::-;5991:63;;5947:117;5808:263;;;;:::o;6077:474::-;6145:6;6153;6202:2;6190:9;6181:7;6177:23;6173:32;6170:2;;;6208:79;;:::i;:::-;6170:2;6328:1;6353:53;6398:7;6389:6;6378:9;6374:22;6353:53;:::i;:::-;6343:63;;6299:117;6455:2;6481:53;6526:7;6517:6;6506:9;6502:22;6481:53;:::i;:::-;6471:63;;6426:118;6160:391;;;;;:::o;6557:619::-;6634:6;6642;6650;6699:2;6687:9;6678:7;6674:23;6670:32;6667:2;;;6705:79;;:::i;:::-;6667:2;6825:1;6850:53;6895:7;6886:6;6875:9;6871:22;6850:53;:::i;:::-;6840:63;;6796:117;6952:2;6978:53;7023:7;7014:6;7003:9;6999:22;6978:53;:::i;:::-;6968:63;;6923:118;7080:2;7106:53;7151:7;7142:6;7131:9;7127:22;7106:53;:::i;:::-;7096:63;;7051:118;6657:519;;;;;:::o;7182:663::-;7270:6;7278;7286;7335:2;7323:9;7314:7;7310:23;7306:32;7303:2;;;7341:79;;:::i;:::-;7303:2;7461:1;7486:64;7542:7;7533:6;7522:9;7518:22;7486:64;:::i;:::-;7476:74;;7432:128;7599:2;7625:64;7681:7;7672:6;7661:9;7657:22;7625:64;:::i;:::-;7615:74;;7570:129;7738:2;7764:64;7820:7;7811:6;7800:9;7796:22;7764:64;:::i;:::-;7754:74;;7709:129;7293:552;;;;;:::o;7851:179::-;7920:10;7941:46;7983:3;7975:6;7941:46;:::i;:::-;8019:4;8014:3;8010:14;7996:28;;7931:99;;;;:::o;8036:108::-;8113:24;8131:5;8113:24;:::i;:::-;8108:3;8101:37;8091:53;;:::o;8150:118::-;8237:24;8255:5;8237:24;:::i;:::-;8232:3;8225:37;8215:53;;:::o;8304:732::-;8423:3;8452:54;8500:5;8452:54;:::i;:::-;8522:86;8601:6;8596:3;8522:86;:::i;:::-;8515:93;;8632:56;8682:5;8632:56;:::i;:::-;8711:7;8742:1;8727:284;8752:6;8749:1;8746:13;8727:284;;;8828:6;8822:13;8855:63;8914:3;8899:13;8855:63;:::i;:::-;8848:70;;8941:60;8994:6;8941:60;:::i;:::-;8931:70;;8787:224;8774:1;8771;8767:9;8762:14;;8727:284;;;8731:14;9027:3;9020:10;;8428:608;;;;;;;:::o;9042:109::-;9123:21;9138:5;9123:21;:::i;:::-;9118:3;9111:34;9101:50;;:::o;9157:167::-;9262:55;9311:5;9262:55;:::i;:::-;9257:3;9250:68;9240:84;;:::o;9330:147::-;9425:45;9464:5;9425:45;:::i;:::-;9420:3;9413:58;9403:74;;:::o;9483:364::-;9571:3;9599:39;9632:5;9599:39;:::i;:::-;9654:71;9718:6;9713:3;9654:71;:::i;:::-;9647:78;;9734:52;9779:6;9774:3;9767:4;9760:5;9756:16;9734:52;:::i;:::-;9811:29;9833:6;9811:29;:::i;:::-;9806:3;9802:39;9795:46;;9575:272;;;;;:::o;9853:366::-;9995:3;10016:67;10080:2;10075:3;10016:67;:::i;:::-;10009:74;;10092:93;10181:3;10092:93;:::i;:::-;10210:2;10205:3;10201:12;10194:19;;9999:220;;;:::o;10225:366::-;10367:3;10388:67;10452:2;10447:3;10388:67;:::i;:::-;10381:74;;10464:93;10553:3;10464:93;:::i;:::-;10582:2;10577:3;10573:12;10566:19;;10371:220;;;:::o;10597:366::-;10739:3;10760:67;10824:2;10819:3;10760:67;:::i;:::-;10753:74;;10836:93;10925:3;10836:93;:::i;:::-;10954:2;10949:3;10945:12;10938:19;;10743:220;;;:::o;10969:366::-;11111:3;11132:67;11196:2;11191:3;11132:67;:::i;:::-;11125:74;;11208:93;11297:3;11208:93;:::i;:::-;11326:2;11321:3;11317:12;11310:19;;11115:220;;;:::o;11341:366::-;11483:3;11504:67;11568:2;11563:3;11504:67;:::i;:::-;11497:74;;11580:93;11669:3;11580:93;:::i;:::-;11698:2;11693:3;11689:12;11682:19;;11487:220;;;:::o;11713:365::-;11855:3;11876:66;11940:1;11935:3;11876:66;:::i;:::-;11869:73;;11951:93;12040:3;11951:93;:::i;:::-;12069:2;12064:3;12060:12;12053:19;;11859:219;;;:::o;12084:398::-;12243:3;12264:83;12345:1;12340:3;12264:83;:::i;:::-;12257:90;;12356:93;12445:3;12356:93;:::i;:::-;12474:1;12469:3;12465:11;12458:18;;12247:235;;;:::o;12488:366::-;12630:3;12651:67;12715:2;12710:3;12651:67;:::i;:::-;12644:74;;12727:93;12816:3;12727:93;:::i;:::-;12845:2;12840:3;12836:12;12829:19;;12634:220;;;:::o;12860:366::-;13002:3;13023:67;13087:2;13082:3;13023:67;:::i;:::-;13016:74;;13099:93;13188:3;13099:93;:::i;:::-;13217:2;13212:3;13208:12;13201:19;;13006:220;;;:::o;13232:366::-;13374:3;13395:67;13459:2;13454:3;13395:67;:::i;:::-;13388:74;;13471:93;13560:3;13471:93;:::i;:::-;13589:2;13584:3;13580:12;13573:19;;13378:220;;;:::o;13604:366::-;13746:3;13767:67;13831:2;13826:3;13767:67;:::i;:::-;13760:74;;13843:93;13932:3;13843:93;:::i;:::-;13961:2;13956:3;13952:12;13945:19;;13750:220;;;:::o;13976:118::-;14063:24;14081:5;14063:24;:::i;:::-;14058:3;14051:37;14041:53;;:::o;14100:112::-;14183:22;14199:5;14183:22;:::i;:::-;14178:3;14171:35;14161:51;;:::o;14218:379::-;14402:3;14424:147;14567:3;14424:147;:::i;:::-;14417:154;;14588:3;14581:10;;14406:191;;;:::o;14603:222::-;14696:4;14734:2;14723:9;14719:18;14711:26;;14747:71;14815:1;14804:9;14800:17;14791:6;14747:71;:::i;:::-;14701:124;;;;:::o;14831:332::-;14952:4;14990:2;14979:9;14975:18;14967:26;;15003:71;15071:1;15060:9;15056:17;15047:6;15003:71;:::i;:::-;15084:72;15152:2;15141:9;15137:18;15128:6;15084:72;:::i;:::-;14957:206;;;;;:::o;15169:807::-;15418:4;15456:3;15445:9;15441:19;15433:27;;15470:71;15538:1;15527:9;15523:17;15514:6;15470:71;:::i;:::-;15551:72;15619:2;15608:9;15604:18;15595:6;15551:72;:::i;:::-;15633:80;15709:2;15698:9;15694:18;15685:6;15633:80;:::i;:::-;15723;15799:2;15788:9;15784:18;15775:6;15723:80;:::i;:::-;15813:73;15881:3;15870:9;15866:19;15857:6;15813:73;:::i;:::-;15896;15964:3;15953:9;15949:19;15940:6;15896:73;:::i;:::-;15423:553;;;;;;;;;:::o;15982:210::-;16069:4;16107:2;16096:9;16092:18;16084:26;;16120:65;16182:1;16171:9;16167:17;16158:6;16120:65;:::i;:::-;16074:118;;;;:::o;16198:308::-;16307:4;16345:2;16334:9;16330:18;16322:26;;16358:65;16420:1;16409:9;16405:17;16396:6;16358:65;:::i;:::-;16433:66;16495:2;16484:9;16480:18;16471:6;16433:66;:::i;:::-;16312:194;;;;;:::o;16512:258::-;16623:4;16661:2;16650:9;16646:18;16638:26;;16674:89;16760:1;16749:9;16745:17;16736:6;16674:89;:::i;:::-;16628:142;;;;:::o;16776:313::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16976:9;16970:4;16966:20;16962:1;16951:9;16947:17;16940:47;17004:78;17077:4;17068:6;17004:78;:::i;:::-;16996:86;;16894:195;;;;:::o;17095:419::-;17261:4;17299:2;17288:9;17284:18;17276:26;;17348:9;17342:4;17338:20;17334:1;17323:9;17319:17;17312:47;17376:131;17502:4;17376:131;:::i;:::-;17368:139;;17266:248;;;:::o;17520:419::-;17686:4;17724:2;17713:9;17709:18;17701:26;;17773:9;17767:4;17763:20;17759:1;17748:9;17744:17;17737:47;17801:131;17927:4;17801:131;:::i;:::-;17793:139;;17691:248;;;:::o;17945:419::-;18111:4;18149:2;18138:9;18134:18;18126:26;;18198:9;18192:4;18188:20;18184:1;18173:9;18169:17;18162:47;18226:131;18352:4;18226:131;:::i;:::-;18218:139;;18116:248;;;:::o;18370:419::-;18536:4;18574:2;18563:9;18559:18;18551:26;;18623:9;18617:4;18613:20;18609:1;18598:9;18594:17;18587:47;18651:131;18777:4;18651:131;:::i;:::-;18643:139;;18541:248;;;:::o;18795:419::-;18961:4;18999:2;18988:9;18984:18;18976:26;;19048:9;19042:4;19038:20;19034:1;19023:9;19019:17;19012:47;19076:131;19202:4;19076:131;:::i;:::-;19068:139;;18966:248;;;:::o;19220:419::-;19386:4;19424:2;19413:9;19409:18;19401:26;;19473:9;19467:4;19463:20;19459:1;19448:9;19444:17;19437:47;19501:131;19627:4;19501:131;:::i;:::-;19493:139;;19391:248;;;:::o;19645:419::-;19811:4;19849:2;19838:9;19834:18;19826:26;;19898:9;19892:4;19888:20;19884:1;19873:9;19869:17;19862:47;19926:131;20052:4;19926:131;:::i;:::-;19918:139;;19816:248;;;:::o;20070:419::-;20236:4;20274:2;20263:9;20259:18;20251:26;;20323:9;20317:4;20313:20;20309:1;20298:9;20294:17;20287:47;20351:131;20477:4;20351:131;:::i;:::-;20343:139;;20241:248;;;:::o;20495:419::-;20661:4;20699:2;20688:9;20684:18;20676:26;;20748:9;20742:4;20738:20;20734:1;20723:9;20719:17;20712:47;20776:131;20902:4;20776:131;:::i;:::-;20768:139;;20666:248;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;21091:248;;;:::o;21345:222::-;21438:4;21476:2;21465:9;21461:18;21453:26;;21489:71;21557:1;21546:9;21542:17;21533:6;21489:71;:::i;:::-;21443:124;;;;:::o;21573:831::-;21836:4;21874:3;21863:9;21859:19;21851:27;;21888:71;21956:1;21945:9;21941:17;21932:6;21888:71;:::i;:::-;21969:80;22045:2;22034:9;22030:18;22021:6;21969:80;:::i;:::-;22096:9;22090:4;22086:20;22081:2;22070:9;22066:18;22059:48;22124:108;22227:4;22218:6;22124:108;:::i;:::-;22116:116;;22242:72;22310:2;22299:9;22295:18;22286:6;22242:72;:::i;:::-;22324:73;22392:3;22381:9;22377:19;22368:6;22324:73;:::i;:::-;21841:563;;;;;;;;:::o;22410:332::-;22531:4;22569:2;22558:9;22554:18;22546:26;;22582:71;22650:1;22639:9;22635:17;22626:6;22582:71;:::i;:::-;22663:72;22731:2;22720:9;22716:18;22707:6;22663:72;:::i;:::-;22536:206;;;;;:::o;22748:442::-;22897:4;22935:2;22924:9;22920:18;22912:26;;22948:71;23016:1;23005:9;23001:17;22992:6;22948:71;:::i;:::-;23029:72;23097:2;23086:9;23082:18;23073:6;23029:72;:::i;:::-;23111;23179:2;23168:9;23164:18;23155:6;23111:72;:::i;:::-;22902:288;;;;;;:::o;23196:214::-;23285:4;23323:2;23312:9;23308:18;23300:26;;23336:67;23400:1;23389:9;23385:17;23376:6;23336:67;:::i;:::-;23290:120;;;;:::o;23497:132::-;23564:4;23587:3;23579:11;;23617:4;23612:3;23608:14;23600:22;;23569:60;;;:::o;23635:114::-;23702:6;23736:5;23730:12;23720:22;;23709:40;;;:::o;23755:99::-;23807:6;23841:5;23835:12;23825:22;;23814:40;;;:::o;23860:113::-;23930:4;23962;23957:3;23953:14;23945:22;;23935:38;;;:::o;23979:184::-;24078:11;24112:6;24107:3;24100:19;24152:4;24147:3;24143:14;24128:29;;24090:73;;;;:::o;24169:147::-;24270:11;24307:3;24292:18;;24282:34;;;;:::o;24322:169::-;24406:11;24440:6;24435:3;24428:19;24480:4;24475:3;24471:14;24456:29;;24418:73;;;;:::o;24497:305::-;24537:3;24556:20;24574:1;24556:20;:::i;:::-;24551:25;;24590:20;24608:1;24590:20;:::i;:::-;24585:25;;24744:1;24676:66;24672:74;24669:1;24666:81;24663:2;;;24750:18;;:::i;:::-;24663:2;24794:1;24791;24787:9;24780:16;;24541:261;;;;:::o;24808:185::-;24848:1;24865:20;24883:1;24865:20;:::i;:::-;24860:25;;24899:20;24917:1;24899:20;:::i;:::-;24894:25;;24938:1;24928:2;;24943:18;;:::i;:::-;24928:2;24985:1;24982;24978:9;24973:14;;24850:143;;;;:::o;24999:348::-;25039:7;25062:20;25080:1;25062:20;:::i;:::-;25057:25;;25096:20;25114:1;25096:20;:::i;:::-;25091:25;;25284:1;25216:66;25212:74;25209:1;25206:81;25201:1;25194:9;25187:17;25183:105;25180:2;;;25291:18;;:::i;:::-;25180:2;25339:1;25336;25332:9;25321:20;;25047:300;;;;:::o;25353:191::-;25393:4;25413:20;25431:1;25413:20;:::i;:::-;25408:25;;25447:20;25465:1;25447:20;:::i;:::-;25442:25;;25486:1;25483;25480:8;25477:2;;;25491:18;;:::i;:::-;25477:2;25536:1;25533;25529:9;25521:17;;25398:146;;;;:::o;25550:96::-;25587:7;25616:24;25634:5;25616:24;:::i;:::-;25605:35;;25595:51;;;:::o;25652:90::-;25686:7;25729:5;25722:13;25715:21;25704:32;;25694:48;;;:::o;25748:126::-;25785:7;25825:42;25818:5;25814:54;25803:65;;25793:81;;;:::o;25880:77::-;25917:7;25946:5;25935:16;;25925:32;;;:::o;25963:86::-;25998:7;26038:4;26031:5;26027:16;26016:27;;26006:43;;;:::o;26055:162::-;26123:9;26156:55;26205:5;26156:55;:::i;:::-;26143:68;;26133:84;;;:::o;26223:131::-;26291:9;26324:24;26342:5;26324:24;:::i;:::-;26311:37;;26301:53;;;:::o;26360:121::-;26418:9;26451:24;26469:5;26451:24;:::i;:::-;26438:37;;26428:53;;;:::o;26487:307::-;26555:1;26565:113;26579:6;26576:1;26573:13;26565:113;;;26664:1;26659:3;26655:11;26649:18;26645:1;26640:3;26636:11;26629:39;26601:2;26598:1;26594:10;26589:15;;26565:113;;;26696:6;26693:1;26690:13;26687:2;;;26776:1;26767:6;26762:3;26758:16;26751:27;26687:2;26536:258;;;;:::o;26800:233::-;26839:3;26862:24;26880:5;26862:24;:::i;:::-;26853:33;;26908:66;26901:5;26898:77;26895:2;;;26978:18;;:::i;:::-;26895:2;27025:1;27018:5;27014:13;27007:20;;26843:190;;;:::o;27039:180::-;27087:77;27084:1;27077:88;27184:4;27181:1;27174:15;27208:4;27205:1;27198:15;27225:180;27273:77;27270:1;27263:88;27370:4;27367:1;27360:15;27394:4;27391:1;27384:15;27411:180;27459:77;27456:1;27449:88;27556:4;27553:1;27546:15;27580:4;27577:1;27570:15;27597:180;27645:77;27642:1;27635:88;27742:4;27739:1;27732:15;27766:4;27763:1;27756:15;27783:117;27892:1;27889;27882:12;27906:117;28015:1;28012;28005:12;28029:117;28138:1;28135;28128:12;28152:117;28261:1;28258;28251:12;28275:117;28384:1;28381;28374:12;28398:102;28439:6;28490:2;28486:7;28481:2;28474:5;28470:14;28466:28;28456:38;;28446:54;;;:::o;28506:224::-;28646:34;28642:1;28634:6;28630:14;28623:58;28715:7;28710:2;28702:6;28698:15;28691:32;28612:118;:::o;28736:165::-;28876:17;28872:1;28864:6;28860:14;28853:41;28842:59;:::o;28907:177::-;29047:29;29043:1;29035:6;29031:14;29024:53;29013:71;:::o;29090:180::-;29230:32;29226:1;29218:6;29214:14;29207:56;29196:74;:::o;29276:220::-;29416:34;29412:1;29404:6;29400:14;29393:58;29485:3;29480:2;29472:6;29468:15;29461:28;29382:114;:::o;29502:156::-;29642:8;29638:1;29630:6;29626:14;29619:32;29608:50;:::o;29664:114::-;29770:8;:::o;29784:165::-;29924:17;29920:1;29912:6;29908:14;29901:41;29890:59;:::o;29955:161::-;30095:13;30091:1;30083:6;30079:14;30072:37;30061:55;:::o;30122:179::-;30262:31;30258:1;30250:6;30246:14;30239:55;30228:73;:::o;30307:227::-;30447:34;30443:1;30435:6;30431:14;30424:58;30516:10;30511:2;30503:6;30499:15;30492:35;30413:121;:::o;30540:122::-;30613:24;30631:5;30613:24;:::i;:::-;30606:5;30603:35;30593:2;;30652:1;30649;30642:12;30593:2;30583:79;:::o;30668:116::-;30738:21;30753:5;30738:21;:::i;:::-;30731:5;30728:32;30718:2;;30774:1;30771;30764:12;30718:2;30708:76;:::o;30790:122::-;30863:24;30881:5;30863:24;:::i;:::-;30856:5;30853:35;30843:2;;30902:1;30899;30892:12;30843:2;30833:79;:::o

Swarm Source

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