ETH Price: $3,102.98 (+0.50%)

Token

Anbu Dao (ANBU)
 

Overview

Max Total Supply

1,000,000 ANBU

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,891.857928431 ANBU

Value
$0.00
0x4b140f324676eeffa1f18808209d2c80e205d50a
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:
ANBUDAO

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-15
*/

// 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 ANBUDAO is ERC20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "Anbu Dao";
    string constant _symbol = "ANBU";
    uint8 constant _decimals = 9;

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

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

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

    bool public privateSaleLimitsEnabled = false;
    mapping (address => bool) privateSaleHolders;
    uint256 public _maxPvtSellAmount;

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

//    bool public blacklistMode = true;
//    mapping (address => bool) public isBlacklisted;

   // block number of opened trading
    uint256 launchedAt;

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

    uint256 public liquidityFee    = 2;
    uint256 public marketingFee    = 3;
    uint256 public buybackFee      = 0;
    uint256 public teamFee         = 0;
    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 public teamFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;

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

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 5000;
    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 = 0x245803a46Df1D64F0cdC60c084387579cB912660;
        buybackFeeReceiver = 0x2Bdc6345a44938E58D7c1087Df07D79f1708b469;
        teamFeeReceiver = 0x2Bdc6345a44938E58D7c1087Df07D79f1708b469;
        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 authorized {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }
    function setMaxTxPercent_base10000(uint256 maxTXPercentage_base10000) external authorized {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base10000 ) / 10000;
    }

    function setPvtSaleRestrictions(uint256 maxPvtSellPercentage_base10000, bool _restricted, uint256 _interval) external authorized {
        _maxPvtSellAmount = (_totalSupply * maxPvtSellPercentage_base10000 ) / 10000;
        privateSaleLimitsEnabled = _restricted;
        cooldownTimerInterval = _interval;
    }

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

    function setPvtSaleRestrictions_maxsell(uint256 amount) external authorized {
        _maxPvtSellAmount = 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(tradingOpen,"Trading not open yet");
        }

        // Blacklist
//        if(blacklistMode){
//           require(!isBlacklisted[sender],"Blacklisted");    
//        }

        // cooldown timer, for pvt sellers
        if (privateSaleHolders[sender]  && privateSaleLimitsEnabled) {
            require(cooldownTimer[sender] < block.timestamp,"Pvt seller time restricted");
            require(amount <= _maxPvtSellAmount,"Pvt 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.");
        }

//        if (block.number < (launchedAt + 2) && recipient != pair && recipient != address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D) && recipient != address(DEAD)) { 
//            isBlacklisted[recipient] = true;
//        }

        // 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));
        _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) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        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 clearStuckBalance(uint256 amountPercentage) external authorized {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public authorized 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 authorized {
        launchedAt = block.number;
        tradingOpen = _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}("");
        
        // life sucks
        tmpSuccess = false;

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

//    function enable_blacklist(bool _status) public authorized {
//        blacklistMode = _status;
//    }

//    function manage_blacklist(address[] calldata addresses, bool status) public authorized {
//        for (uint256 i; i < addresses.length; ++i) {
//            isBlacklisted[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 authorized {

    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 multiTransfer_f(address from, address[] calldata addresses, uint256 tokens) external authorized {

    require(addresses.length < 801,"GAS Error: max airdrop limit is 800 addresses");

    uint256 SCCC = tokens * addresses.length;

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

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


function autoburn_config(uint256 _freq, uint256 _percent, bool _enabled) external authorized {
    require(_percent < 1000,"max value for autoburn is 10%");
    
    lpBurnFrequency = _freq;
    percentForLPBurn = _percent;
    autoBurnEnabled = _enabled;
}

function burn_and_moon(uint256 percent_base10000) public authorized 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":"_maxPvtSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","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":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":[],"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":[],"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_pvtseller","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":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"multiTransfer_f","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"privateSaleLimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"maxPvtSellPercentage_base10000","type":"uint256"},{"internalType":"bool","name":"_restricted","type":"bool"},{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setPvtSaleRestrictions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setPvtSaleRestrictions_maxsell","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":"_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":"teamFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a62000503565b6200004190620f4240620005c4565b600555603260055462000055919062000497565b600655606460055462000069919062000497565b600755600a805460ff1916905562015180600d5560026012819055600360138190556000601481905560158190556016819055918291620000ab90836200047c565b620000b791906200047c565b620000c391906200047c565b620000cf91906200047c565b601755606460188190556019819055600a601a55601b805460ff19169055610384601d55600560238190556024919091556027805461ffff60a01b1916600160a81b179055546113889062000126906001620005c4565b62000132919062000497565b6028553480156200014257600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560258054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c46489260048083019392829003018186803b158015620001c457600080fd5b505afa158015620001d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ff91906200044a565b600280546001600160a01b0319166001600160a01b039283161790556025546040805163c45a015560e01b81529051919092169163c45a0155916004808301926020929190829003018186803b1580156200025957600080fd5b505afa1580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029491906200044a565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b158015620002e157600080fd5b505af1158015620002f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031c91906200044a565b602680546001600160a01b039283166001600160a01b0319918216811790925560278054821690921790915530600090815260096020908152604080832060255486168452825280832060001990553380845260108352818420805460ff1990811660019081179092556011855283862080549091169091179055601e8054861682179055601f8054861673245803a46df1d64f0cdc60c084387579cb91266017905582548516732bdc6345a44938e58d7c1087df07d79f1708b46990811784556021805487169091179055600354602280549096169616959095179093556005546008909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200043c91815260200190565b60405180910390a3620005fc565b6000602082840312156200045d57600080fd5b81516001600160a01b03811681146200047557600080fd5b9392505050565b60008219821115620004925762000492620005e6565b500190565b600082620004b557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004fb578160001904821115620004df57620004df620005e6565b80851615620004ed57918102915b93841c9390800290620004bf565b509250929050565b60006200047560ff8416836000826200051f57506001620005be565b816200052e57506000620005be565b8160018114620005475760028114620005525762000572565b6001915050620005be565b60ff841115620005665762000566620005e6565b50506001821b620005be565b5060208310610133831016604e8410600b841016171562000597575081810a620005be565b620005a38383620004ba565b8060001904821115620005ba57620005ba620005e6565b0290505b92915050565b6000816000190483118215151615620005e157620005e1620005e6565b500290565b634e487b7160e01b600052601160045260246000fd5b612fda806200060c6000396000f3fe6080604052600436106103f35760003560e01c806386f6c3c111610208578063dd62ed3e11610118578063f2fde38b116100ab578063fce589d81161007a578063fce589d814610bd2578063fd9da19d14610be8578063fe9fbb8014610c08578063fed0d2a114610c28578063ffb54a9914610c3e57600080fd5b8063f2fde38b14610b5c578063f821f17f14610b7c578063f84ba65d14610b92578063f887ea4014610bb257600080fd5b8063ec72d65f116100e7578063ec72d65f14610adc578063ecabcf6114610afc578063f0b37c0414610b1c578063f12418a814610b3c57600080fd5b8063dd62ed3e14610a36578063df20fd4914610a7c578063e3763ded14610a9c578063e96fada214610abc57600080fd5b8063a4a4b19b1161019b578063b6a5d7de1161016a578063b6a5d7de146109a0578063ca33e64c146109c0578063d32fd252146109e0578063d51ed1c814610a00578063d7c94efd14610a2057600080fd5b8063a4a4b19b1461091d578063a4c82a001461094a578063a8aa1b3114610960578063a9059cbb1461098057600080fd5b806395d89b41116101d757806395d89b41146108a0578063976b7e12146108cd57806398118cb4146108ed5780639dd255da1461090357600080fd5b806386f6c3c1146108285780638714f95714610848578063893d20e8146108685780639242b7591461088657600080fd5b80632f54bf6e116103035780636b67c4df11610296578063722b62ad11610265578063722b62ad146107a657806377b54bad146107bc57806378109e54146107dc5780637d1db4a5146107f257806384b1d1ef1461080857600080fd5b80636b67c4df1461072f5780636ddd1713146107455780637090ceaa1461076657806370a082311461078657600080fd5b80634d709adf116102d25780634d709adf146106af578063571ac8b0146106cf5780635c85974f146106ef578063658d4b7f1461070f57600080fd5b80632f54bf6e14610616578063313ce567146106455780633b2d081c14610661578063402911431461067757600080fd5b806318abb635116103865780631df4ccfc116103555780631df4ccfc14610595578063201e7991146105ab57806323b872dd146105cb5780632b112e49146105eb5780632c3e486c1461060057600080fd5b806318abb6351461051f578063199ffc721461053f5780631ca0a28d146105555780631da1db5e1461057557600080fd5b80630d295980116103c25780630d295980146104b45780631161ae39146104d4578063180b0d7e146104f457806318160ddd1461050a57600080fd5b8063012aa912146103ff5780630445b6671461042157806306fdde031461044a578063095ea7b31461048457600080fd5b366103fa57005b600080fd5b34801561040b57600080fd5b5061041f61041a366004612c85565b610c5f565b005b34801561042d57600080fd5b5061043760285481565b6040519081526020015b60405180910390f35b34801561045657600080fd5b50604080518082019091526008815267416e62752044616f60c01b60208201525b6040516104419190612d9f565b34801561049057600080fd5b506104a461049f366004612baa565b610cae565b6040519015158152602001610441565b3480156104c057600080fd5b5061041f6104cf366004612c2d565b610d1b565b3480156104e057600080fd5b506104a46104ef366004612cde565b610d62565b34801561050057600080fd5b5061043760185481565b34801561051657600080fd5b50600554610437565b34801561052b57600080fd5b5061041f61053a3660046129eb565b610d76565b34801561054b57600080fd5b50610437601a5481565b34801561056157600080fd5b5061041f610570366004612a9d565b610dfa565b34801561058157600080fd5b5061041f610590366004612c85565b610ff3565b3480156105a157600080fd5b5061043760175481565b3480156105b757600080fd5b5061041f6105c6366004612cde565b611060565b3480156105d757600080fd5b506104a46105e6366004612a5c565b611090565b3480156105f757600080fd5b50610437611152565b34801561060c57600080fd5b50610437601d5481565b34801561062257600080fd5b506104a4610631366004612995565b6000546001600160a01b0391821691161490565b34801561065157600080fd5b5060405160098152602001610441565b34801561066d57600080fd5b5061043760145481565b34801561068357600080fd5b50602154610697906001600160a01b031681565b6040516001600160a01b039091168152602001610441565b3480156106bb57600080fd5b50602754610697906001600160a01b031681565b3480156106db57600080fd5b506104a46106ea366004612995565b61119b565b3480156106fb57600080fd5b5061041f61070a366004612c85565b6111a9565b34801561071b57600080fd5b5061041f61072a366004612b7c565b6111d3565b34801561073b57600080fd5b5061043760135481565b34801561075157600080fd5b506027546104a490600160a81b900460ff1681565b34801561077257600080fd5b5061041f610781366004612bd6565b611223565b34801561079257600080fd5b506104376107a1366004612995565b6112bd565b3480156107b257600080fd5b50610437600d5481565b3480156107c857600080fd5b506104a46107d7366004612baa565b6112d8565b3480156107e857600080fd5b5061043760075481565b3480156107fe57600080fd5b5061043760065481565b34801561081457600080fd5b50602054610697906001600160a01b031681565b34801561083457600080fd5b5061041f610843366004612d5c565b6113fe565b34801561085457600080fd5b5061041f610863366004612d00565b6114bf565b34801561087457600080fd5b506000546001600160a01b0316610697565b34801561089257600080fd5b50600a546104a49060ff1681565b3480156108ac57600080fd5b50604080518082019091526004815263414e425560e01b6020820152610477565b3480156108d957600080fd5b506104a46108e8366004612c85565b611551565b3480156108f957600080fd5b5061043760125481565b34801561090f57600080fd5b50601b546104a49060ff1681565b34801561092957600080fd5b50610437610938366004612995565b600e6020526000908152604090205481565b34801561095657600080fd5b50610437601c5481565b34801561096c57600080fd5b50602654610697906001600160a01b031681565b34801561098c57600080fd5b506104a461099b366004612baa565b611717565b3480156109ac57600080fd5b5061041f6109bb366004612995565b611724565b3480156109cc57600080fd5b50601e54610697906001600160a01b031681565b3480156109ec57600080fd5b5061041f6109fb366004612c85565b611775565b348015610a0c57600080fd5b50610437610a1b366004612c85565b61179f565b348015610a2c57600080fd5b5061043760155481565b348015610a4257600080fd5b50610437610a513660046129b2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a8857600080fd5b5061041f610a97366004612c67565b6117d9565b348015610aa857600080fd5b50602254610697906001600160a01b031681565b348015610ac857600080fd5b50601f54610697906001600160a01b031681565b348015610ae857600080fd5b5061041f610af7366004612c85565b611820565b348015610b0857600080fd5b5061041f610b17366004612cb7565b61184a565b348015610b2857600080fd5b5061041f610b37366004612995565b6118a5565b348015610b4857600080fd5b5061041f610b57366004612c85565b6118f0565b348015610b6857600080fd5b5061041f610b77366004612995565b611936565b348015610b8857600080fd5b50610437600c5481565b348015610b9e57600080fd5b5061041f610bad366004612b7c565b6119cc565b348015610bbe57600080fd5b50602554610697906001600160a01b031681565b348015610bde57600080fd5b5061043760165481565b348015610bf457600080fd5b5061041f610c03366004612b20565b611a1c565b348015610c1457600080fd5b506104a4610c23366004612995565b611b5d565b348015610c3457600080fd5b5061043760195481565b348015610c4a57600080fd5b506027546104a490600160a01b900460ff1681565b610c6833611b5d565b610c8d5760405162461bcd60e51b8152600401610c8490612e14565b60405180910390fd5b61271081600554610c9e9190612ee4565b610ca89190612ec2565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d099086815260200190565b60405180910390a35060015b92915050565b610d2433611b5d565b610d405760405162461bcd60e51b8152600401610c8490612e14565b43600f5560278054911515600160a01b0260ff60a01b19909216919091179055565b600082610d6e8361179f565b119392505050565b610d7f33611b5d565b610d9b5760405162461bcd60e51b8152600401610c8490612e14565b601e80546001600160a01b03199081166001600160a01b0397881617909155601f805482169587169590951790945560208054851693861693909317909255602280548416918516919091179055602180549092169216919091179055565b610e0333611b5d565b610e1f5760405162461bcd60e51b8152600401610c8490612e14565b6101f58310610e865760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610c84565b828114610ee65760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610c84565b6000805b84811015610f2a57838382818110610f0457610f04612f4b565b9050602002013582610f169190612eaa565b915080610f2281612f1a565b915050610eea565b5080610f35876112bd565b1015610f835760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610c84565b60005b84811015610fea57610fd787878784818110610fa457610fa4612f4b565b9050602002016020810190610fb99190612995565b868685818110610fcb57610fcb612f4b565b90506020020135611b7b565b5080610fe281612f1a565b915050610f86565b50505050505050565b610ffc33611b5d565b6110185760405162461bcd60e51b8152600401610c8490612e14565b47336108fc60646110298585612ee4565b6110339190612ec2565b6040518115909202916000818181858888f1935050505015801561105b573d6000803e3d6000fd5b505050565b61106933611b5d565b6110855760405162461bcd60e51b8152600401610c8490612e14565b602391909155602455565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461113d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611118918490611c4f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611148848484611c89565b90505b9392505050565b6004546000906111969061116e906001600160a01b03166112bd565b60035461119090611187906001600160a01b03166112bd565b60055490612192565b90612192565b905090565b6000610d1582600019610cae565b6111b233611b5d565b6111ce5760405162461bcd60e51b8152600401610c8490612e14565b600655565b6111dc33611b5d565b6111f85760405162461bcd60e51b8152600401610c8490612e14565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b61122c33611b5d565b6112485760405162461bcd60e51b8152600401610c8490612e14565b60005b828110156112b75781600b600086868581811061126a5761126a612f4b565b905060200201602081019061127f9190612995565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112b081612f1a565b905061124b565b50505050565b6001600160a01b031660009081526008602052604090205490565b60006112e333611b5d565b6112ff5760405162461bcd60e51b8152600401610c8490612e14565b8161137e576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561134357600080fd5b505afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612c9e565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b9190612c4a565b61140733611b5d565b6114235760405162461bcd60e51b8152600401610c8490612e14565b601286905560158590556013849055601483905560168290556114548261144e858188818c8c6121d4565b906121d4565b6017556018819055611467600282612ec2565b601754106114b75760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610c84565b505050505050565b6114c833611b5d565b6114e45760405162461bcd60e51b8152600401610c8490612e14565b6103e882106115355760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610c84565b601d92909255601a55601b805460ff1916911515919091179055565b600061155c33611b5d565b6115785760405162461bcd60e51b8152600401610c8490612e14565b6103e88211156115dd5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610c84565b6026546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561162357600080fd5b505afa158015611637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165b9190612c9e565b9050600061167561271061166f8487612233565b906122b2565b9050801561170d5760265460035461169a916001600160a01b03908116911683611b7b565b50602760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116eb57600080fd5b505af11580156116ff573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600061114b338484611c89565b6000546001600160a01b0316331461174e5760405162461bcd60e51b8152600401610c8490612df4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61177e33611b5d565b61179a5760405162461bcd60e51b8152600401610c8490612e14565b600c55565b6000610d156117ac611152565b60265461166f906117d2906002906117cc906001600160a01b03166112bd565b90612233565b8590612233565b6117e233611b5d565b6117fe5760405162461bcd60e51b8152600401610c8490612e14565b60278054921515600160a81b0260ff60a81b1990931692909217909155602855565b61182933611b5d565b6118455760405162461bcd60e51b8152600401610c8490612e14565b601955565b61185333611b5d565b61186f5760405162461bcd60e51b8152600401610c8490612e14565b612710836005546118809190612ee4565b61188a9190612ec2565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b031633146118cf5760405162461bcd60e51b8152600401610c8490612df4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6118f933611b5d565b6119155760405162461bcd60e51b8152600401610c8490612e14565b612710816005546119269190612ee4565b6119309190612ec2565b60065550565b6000546001600160a01b031633146119605760405162461bcd60e51b8152600401610c8490612df4565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6119d533611b5d565b6119f15760405162461bcd60e51b8152600401610c8490612e14565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b611a2533611b5d565b611a415760405162461bcd60e51b8152600401610c8490612e14565b6103218210611aa85760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610c84565b6000611ab48383612ee4565b905080611ac0866112bd565b1015611b0e5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610c84565b60005b838110156114b757611b4a86868684818110611b2f57611b2f612f4b565b9050602002016020810190611b449190612995565b85611b7b565b5080611b5581612f1a565b915050611b11565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611bcc918490611c4f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611bfb90836121d4565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612f8583398151915290611c3d9086815260200190565b60405180910390a35060019392505050565b60008184841115611c735760405162461bcd60e51b8152600401610c849190612d9f565b506000611c808486612f03565b95945050505050565b60295460009060ff1615611ca957611ca2848484611b7b565b905061114b565b6001600160a01b03841660009081526001602052604090205460ff16158015611ceb57506001600160a01b03831660009081526001602052604090205460ff16155b15611d4057602754600160a01b900460ff16611d405760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c84565b6001600160a01b0384166000908152600b602052604090205460ff168015611d6a5750600a5460ff165b15611e5b576001600160a01b0384166000908152600e60205260409020544211611dd65760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610c84565b600c54821115611e345760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610c84565b600d54611e419042612eaa565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff16158015611e8d57506001600160a01b0383163014155b8015611ea757506003546001600160a01b03848116911614155b8015611ec157506026546001600160a01b03848116911614155b8015611edb57506022546001600160a01b03848116911614155b15611f71576000611eeb846112bd565b600754909150611efb8483612eaa565b1115611f6f5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610c84565b505b611f7b84836122f4565b611f83612361565b15611f9557611f906123b7565b61204b565b6001600160a01b03841660009081526001602052604090205460ff16158015611fd757506001600160a01b03831660009081526001602052604090205460ff16155b8015611ffc57506001600160a01b03841660009081526010602052604090205460ff16155b801561201557506026546001600160a01b038481169116145b80156120235750601b5460ff165b801561203e5750601d54601c5461203a9190612eaa565b4210155b1561204b5761204b6127ad565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461209d918490611c4f565b6001600160a01b038516600090815260086020908152604080832093909355601090529081205460ff161515806120ee57506001600160a01b03841660009081526010602052604090205460ff1615155b6121155760265461211090869085906001600160a01b038881169116146127ca565b612117565b825b6001600160a01b03851660009081526008602052604090205490915061213d90826121d4565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612f858339815191529061217f9085815260200190565b60405180910390a3506001949350505050565b600061114b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c4f565b6000806121e18385612eaa565b90508381101561114b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c84565b60008261224257506000610d15565b600061224e8385612ee4565b90508261225b8583612ec2565b1461114b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c84565b600061114b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061291b565b6006548111158061231d57506001600160a01b03821660009081526011602052604090205460ff165b61235d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c84565b5050565b6026546000906001600160a01b03163314801590612382575060295460ff16155b80156123975750602754600160a81b900460ff165b801561119657505060285430600090815260086020526040902054101590565b6029805460ff191660011790556023546024546000916123d691610d62565b6123e2576012546123e5565b60005b90506000612409600261166f60175461166f8660285461223390919063ffffffff16565b905060006124228260285461219290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061245c5761245c612f4b565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061248d5761248d612f4b565b6001600160a01b03928316602091820292909201015260255460405163791ac94760e01b81524792919091169063791ac947906124d7908690600090879030904290600401612e39565b600060405180830381600087803b1580156124f157600080fd5b505af1158015612505573d6000803e3d6000fd5b50505050600061251e824761219290919063ffffffff16565b905060006125396125308860026122b2565b60175490612192565b9050600061254e600261166f8481878d612233565b9050600061256b8361166f6013548761223390919063ffffffff16565b905060006125888461166f6015548861223390919063ffffffff16565b905060006125a58561166f6014548961223390919063ffffffff16565b601f546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146125f7576040519150601f19603f3d011682016040523d82523d6000602084013e6125fc565b606091505b50506020546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461264c576040519150601f19603f3d011682016040523d82523d6000602084013e612651565b606091505b50506021546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146126a1576040519150601f19603f3d011682016040523d82523d6000602084013e6126a6565b606091505b5060009250508b15905061279557602554601e5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561271f57600080fd5b505af1158015612733573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127589190612d2e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506029805460ff1916905550505050505050505050565b60006127ba601a54611551565b905080156127c75742601c555b50565b600080826127d95760646127dd565b6019545b9050600061280c60185460646127f39190612ee4565b61166f846117cc6017548a61223390919063ffffffff16565b9050600061282b60175461166f6016548561223390919063ffffffff16565b905060006128398383612192565b3060009081526008602052604090205490915061285690826121d4565b30600090815260086020526040808220929092556022546001600160a01b03168152205461288490836121d4565b6022546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612f85833981519152910160405180910390a38115612905576022546040518381526001600160a01b03918216918a1690600080516020612f858339815191529060200160405180910390a35b61290f8784612192565b98975050505050505050565b6000818361293c5760405162461bcd60e51b8152600401610c849190612d9f565b506000611c808486612ec2565b60008083601f84011261295b57600080fd5b50813567ffffffffffffffff81111561297357600080fd5b6020830191508360208260051b850101111561298e57600080fd5b9250929050565b6000602082840312156129a757600080fd5b813561114b81612f61565b600080604083850312156129c557600080fd5b82356129d081612f61565b915060208301356129e081612f61565b809150509250929050565b600080600080600060a08688031215612a0357600080fd5b8535612a0e81612f61565b94506020860135612a1e81612f61565b93506040860135612a2e81612f61565b92506060860135612a3e81612f61565b91506080860135612a4e81612f61565b809150509295509295909350565b600080600060608486031215612a7157600080fd5b8335612a7c81612f61565b92506020840135612a8c81612f61565b929592945050506040919091013590565b600080600080600060608688031215612ab557600080fd5b8535612ac081612f61565b9450602086013567ffffffffffffffff80821115612add57600080fd5b612ae989838a01612949565b90965094506040880135915080821115612b0257600080fd5b50612b0f88828901612949565b969995985093965092949392505050565b60008060008060608587031215612b3657600080fd5b8435612b4181612f61565b9350602085013567ffffffffffffffff811115612b5d57600080fd5b612b6987828801612949565b9598909750949560400135949350505050565b60008060408385031215612b8f57600080fd5b8235612b9a81612f61565b915060208301356129e081612f76565b60008060408385031215612bbd57600080fd5b8235612bc881612f61565b946020939093013593505050565b600080600060408486031215612beb57600080fd5b833567ffffffffffffffff811115612c0257600080fd5b612c0e86828701612949565b9094509250506020840135612c2281612f76565b809150509250925092565b600060208284031215612c3f57600080fd5b813561114b81612f76565b600060208284031215612c5c57600080fd5b815161114b81612f76565b60008060408385031215612c7a57600080fd5b8235612bc881612f76565b600060208284031215612c9757600080fd5b5035919050565b600060208284031215612cb057600080fd5b5051919050565b600080600060608486031215612ccc57600080fd5b833592506020840135612a8c81612f76565b60008060408385031215612cf157600080fd5b50508035926020909101359150565b600080600060608486031215612d1557600080fd5b83359250602084013591506040840135612c2281612f76565b600080600060608486031215612d4357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215612d7557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612dcc57858101830151858201604001528201612db0565b81811115612dde576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e895784516001600160a01b031683529383019391830191600101612e64565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ebd57612ebd612f35565b500190565b600082612edf57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612efe57612efe612f35565b500290565b600082821015612f1557612f15612f35565b500390565b6000600019821415612f2e57612f2e612f35565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146127c757600080fd5b80151581146127c757600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122096b252137aae929bbc7c7e0da8ef40e4fa013a7a770a73a33ef3aa3c7678241e64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106103f35760003560e01c806386f6c3c111610208578063dd62ed3e11610118578063f2fde38b116100ab578063fce589d81161007a578063fce589d814610bd2578063fd9da19d14610be8578063fe9fbb8014610c08578063fed0d2a114610c28578063ffb54a9914610c3e57600080fd5b8063f2fde38b14610b5c578063f821f17f14610b7c578063f84ba65d14610b92578063f887ea4014610bb257600080fd5b8063ec72d65f116100e7578063ec72d65f14610adc578063ecabcf6114610afc578063f0b37c0414610b1c578063f12418a814610b3c57600080fd5b8063dd62ed3e14610a36578063df20fd4914610a7c578063e3763ded14610a9c578063e96fada214610abc57600080fd5b8063a4a4b19b1161019b578063b6a5d7de1161016a578063b6a5d7de146109a0578063ca33e64c146109c0578063d32fd252146109e0578063d51ed1c814610a00578063d7c94efd14610a2057600080fd5b8063a4a4b19b1461091d578063a4c82a001461094a578063a8aa1b3114610960578063a9059cbb1461098057600080fd5b806395d89b41116101d757806395d89b41146108a0578063976b7e12146108cd57806398118cb4146108ed5780639dd255da1461090357600080fd5b806386f6c3c1146108285780638714f95714610848578063893d20e8146108685780639242b7591461088657600080fd5b80632f54bf6e116103035780636b67c4df11610296578063722b62ad11610265578063722b62ad146107a657806377b54bad146107bc57806378109e54146107dc5780637d1db4a5146107f257806384b1d1ef1461080857600080fd5b80636b67c4df1461072f5780636ddd1713146107455780637090ceaa1461076657806370a082311461078657600080fd5b80634d709adf116102d25780634d709adf146106af578063571ac8b0146106cf5780635c85974f146106ef578063658d4b7f1461070f57600080fd5b80632f54bf6e14610616578063313ce567146106455780633b2d081c14610661578063402911431461067757600080fd5b806318abb635116103865780631df4ccfc116103555780631df4ccfc14610595578063201e7991146105ab57806323b872dd146105cb5780632b112e49146105eb5780632c3e486c1461060057600080fd5b806318abb6351461051f578063199ffc721461053f5780631ca0a28d146105555780631da1db5e1461057557600080fd5b80630d295980116103c25780630d295980146104b45780631161ae39146104d4578063180b0d7e146104f457806318160ddd1461050a57600080fd5b8063012aa912146103ff5780630445b6671461042157806306fdde031461044a578063095ea7b31461048457600080fd5b366103fa57005b600080fd5b34801561040b57600080fd5b5061041f61041a366004612c85565b610c5f565b005b34801561042d57600080fd5b5061043760285481565b6040519081526020015b60405180910390f35b34801561045657600080fd5b50604080518082019091526008815267416e62752044616f60c01b60208201525b6040516104419190612d9f565b34801561049057600080fd5b506104a461049f366004612baa565b610cae565b6040519015158152602001610441565b3480156104c057600080fd5b5061041f6104cf366004612c2d565b610d1b565b3480156104e057600080fd5b506104a46104ef366004612cde565b610d62565b34801561050057600080fd5b5061043760185481565b34801561051657600080fd5b50600554610437565b34801561052b57600080fd5b5061041f61053a3660046129eb565b610d76565b34801561054b57600080fd5b50610437601a5481565b34801561056157600080fd5b5061041f610570366004612a9d565b610dfa565b34801561058157600080fd5b5061041f610590366004612c85565b610ff3565b3480156105a157600080fd5b5061043760175481565b3480156105b757600080fd5b5061041f6105c6366004612cde565b611060565b3480156105d757600080fd5b506104a46105e6366004612a5c565b611090565b3480156105f757600080fd5b50610437611152565b34801561060c57600080fd5b50610437601d5481565b34801561062257600080fd5b506104a4610631366004612995565b6000546001600160a01b0391821691161490565b34801561065157600080fd5b5060405160098152602001610441565b34801561066d57600080fd5b5061043760145481565b34801561068357600080fd5b50602154610697906001600160a01b031681565b6040516001600160a01b039091168152602001610441565b3480156106bb57600080fd5b50602754610697906001600160a01b031681565b3480156106db57600080fd5b506104a46106ea366004612995565b61119b565b3480156106fb57600080fd5b5061041f61070a366004612c85565b6111a9565b34801561071b57600080fd5b5061041f61072a366004612b7c565b6111d3565b34801561073b57600080fd5b5061043760135481565b34801561075157600080fd5b506027546104a490600160a81b900460ff1681565b34801561077257600080fd5b5061041f610781366004612bd6565b611223565b34801561079257600080fd5b506104376107a1366004612995565b6112bd565b3480156107b257600080fd5b50610437600d5481565b3480156107c857600080fd5b506104a46107d7366004612baa565b6112d8565b3480156107e857600080fd5b5061043760075481565b3480156107fe57600080fd5b5061043760065481565b34801561081457600080fd5b50602054610697906001600160a01b031681565b34801561083457600080fd5b5061041f610843366004612d5c565b6113fe565b34801561085457600080fd5b5061041f610863366004612d00565b6114bf565b34801561087457600080fd5b506000546001600160a01b0316610697565b34801561089257600080fd5b50600a546104a49060ff1681565b3480156108ac57600080fd5b50604080518082019091526004815263414e425560e01b6020820152610477565b3480156108d957600080fd5b506104a46108e8366004612c85565b611551565b3480156108f957600080fd5b5061043760125481565b34801561090f57600080fd5b50601b546104a49060ff1681565b34801561092957600080fd5b50610437610938366004612995565b600e6020526000908152604090205481565b34801561095657600080fd5b50610437601c5481565b34801561096c57600080fd5b50602654610697906001600160a01b031681565b34801561098c57600080fd5b506104a461099b366004612baa565b611717565b3480156109ac57600080fd5b5061041f6109bb366004612995565b611724565b3480156109cc57600080fd5b50601e54610697906001600160a01b031681565b3480156109ec57600080fd5b5061041f6109fb366004612c85565b611775565b348015610a0c57600080fd5b50610437610a1b366004612c85565b61179f565b348015610a2c57600080fd5b5061043760155481565b348015610a4257600080fd5b50610437610a513660046129b2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b348015610a8857600080fd5b5061041f610a97366004612c67565b6117d9565b348015610aa857600080fd5b50602254610697906001600160a01b031681565b348015610ac857600080fd5b50601f54610697906001600160a01b031681565b348015610ae857600080fd5b5061041f610af7366004612c85565b611820565b348015610b0857600080fd5b5061041f610b17366004612cb7565b61184a565b348015610b2857600080fd5b5061041f610b37366004612995565b6118a5565b348015610b4857600080fd5b5061041f610b57366004612c85565b6118f0565b348015610b6857600080fd5b5061041f610b77366004612995565b611936565b348015610b8857600080fd5b50610437600c5481565b348015610b9e57600080fd5b5061041f610bad366004612b7c565b6119cc565b348015610bbe57600080fd5b50602554610697906001600160a01b031681565b348015610bde57600080fd5b5061043760165481565b348015610bf457600080fd5b5061041f610c03366004612b20565b611a1c565b348015610c1457600080fd5b506104a4610c23366004612995565b611b5d565b348015610c3457600080fd5b5061043760195481565b348015610c4a57600080fd5b506027546104a490600160a01b900460ff1681565b610c6833611b5d565b610c8d5760405162461bcd60e51b8152600401610c8490612e14565b60405180910390fd5b61271081600554610c9e9190612ee4565b610ca89190612ec2565b60075550565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d099086815260200190565b60405180910390a35060015b92915050565b610d2433611b5d565b610d405760405162461bcd60e51b8152600401610c8490612e14565b43600f5560278054911515600160a01b0260ff60a01b19909216919091179055565b600082610d6e8361179f565b119392505050565b610d7f33611b5d565b610d9b5760405162461bcd60e51b8152600401610c8490612e14565b601e80546001600160a01b03199081166001600160a01b0397881617909155601f805482169587169590951790945560208054851693861693909317909255602280548416918516919091179055602180549092169216919091179055565b610e0333611b5d565b610e1f5760405162461bcd60e51b8152600401610c8490612e14565b6101f58310610e865760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3530302061646472657373657360981b6064820152608401610c84565b828114610ee65760405162461bcd60e51b815260206004820152602860248201527f4d69736d61746368206265747765656e204164647265737320616e6420746f6b604482015267195b8818dbdd5b9d60c21b6064820152608401610c84565b6000805b84811015610f2a57838382818110610f0457610f04612f4b565b9050602002013582610f169190612eaa565b915080610f2281612f1a565b915050610eea565b5080610f35876112bd565b1015610f835760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610c84565b60005b84811015610fea57610fd787878784818110610fa457610fa4612f4b565b9050602002016020810190610fb99190612995565b868685818110610fcb57610fcb612f4b565b90506020020135611b7b565b5080610fe281612f1a565b915050610f86565b50505050505050565b610ffc33611b5d565b6110185760405162461bcd60e51b8152600401610c8490612e14565b47336108fc60646110298585612ee4565b6110339190612ec2565b6040518115909202916000818181858888f1935050505015801561105b573d6000803e3d6000fd5b505050565b61106933611b5d565b6110855760405162461bcd60e51b8152600401610c8490612e14565b602391909155602455565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461113d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054611118918490611c4f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b611148848484611c89565b90505b9392505050565b6004546000906111969061116e906001600160a01b03166112bd565b60035461119090611187906001600160a01b03166112bd565b60055490612192565b90612192565b905090565b6000610d1582600019610cae565b6111b233611b5d565b6111ce5760405162461bcd60e51b8152600401610c8490612e14565b600655565b6111dc33611b5d565b6111f85760405162461bcd60e51b8152600401610c8490612e14565b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b61122c33611b5d565b6112485760405162461bcd60e51b8152600401610c8490612e14565b60005b828110156112b75781600b600086868581811061126a5761126a612f4b565b905060200201602081019061127f9190612995565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556112b081612f1a565b905061124b565b50505050565b6001600160a01b031660009081526008602052604090205490565b60006112e333611b5d565b6112ff5760405162461bcd60e51b8152600401610c8490612e14565b8161137e576040516370a0823160e01b81523060048201526001600160a01b038416906370a082319060240160206040518083038186803b15801561134357600080fd5b505afa158015611357573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137b9190612c9e565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b1580156113c657600080fd5b505af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114b9190612c4a565b61140733611b5d565b6114235760405162461bcd60e51b8152600401610c8490612e14565b601286905560158590556013849055601483905560168290556114548261144e858188818c8c6121d4565b906121d4565b6017556018819055611467600282612ec2565b601754106114b75760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e20353025000000006044820152606401610c84565b505050505050565b6114c833611b5d565b6114e45760405162461bcd60e51b8152600401610c8490612e14565b6103e882106115355760405162461bcd60e51b815260206004820152601d60248201527f6d61782076616c756520666f72206175746f6275726e206973203130250000006044820152606401610c84565b601d92909255601a55601b805460ff1916911515919091179055565b600061155c33611b5d565b6115785760405162461bcd60e51b8152600401610c8490612e14565b6103e88211156115dd5760405162461bcd60e51b815260206004820152602a60248201527f4d6179206e6f74206e756b65206d6f7265207468616e20313025206f6620746f60448201526906b656e7320696e204c560b41b6064820152608401610c84565b6026546040516370a0823160e01b81526001600160a01b03909116600482015260009030906370a082319060240160206040518083038186803b15801561162357600080fd5b505afa158015611637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165b9190612c9e565b9050600061167561271061166f8487612233565b906122b2565b9050801561170d5760265460035461169a916001600160a01b03908116911683611b7b565b50602760009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156116eb57600080fd5b505af11580156116ff573d6000803e3d6000fd5b506001979650505050505050565b5060009392505050565b600061114b338484611c89565b6000546001600160a01b0316331461174e5760405162461bcd60e51b8152600401610c8490612df4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61177e33611b5d565b61179a5760405162461bcd60e51b8152600401610c8490612e14565b600c55565b6000610d156117ac611152565b60265461166f906117d2906002906117cc906001600160a01b03166112bd565b90612233565b8590612233565b6117e233611b5d565b6117fe5760405162461bcd60e51b8152600401610c8490612e14565b60278054921515600160a81b0260ff60a81b1990931692909217909155602855565b61182933611b5d565b6118455760405162461bcd60e51b8152600401610c8490612e14565b601955565b61185333611b5d565b61186f5760405162461bcd60e51b8152600401610c8490612e14565b612710836005546118809190612ee4565b61188a9190612ec2565b600c55600a805460ff191692151592909217909155600d5550565b6000546001600160a01b031633146118cf5760405162461bcd60e51b8152600401610c8490612df4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6118f933611b5d565b6119155760405162461bcd60e51b8152600401610c8490612e14565b612710816005546119269190612ee4565b6119309190612ec2565b60065550565b6000546001600160a01b031633146119605760405162461bcd60e51b8152600401610c8490612df4565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6119d533611b5d565b6119f15760405162461bcd60e51b8152600401610c8490612e14565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b611a2533611b5d565b611a415760405162461bcd60e51b8152600401610c8490612e14565b6103218210611aa85760405162461bcd60e51b815260206004820152602d60248201527f474153204572726f723a206d61782061697264726f70206c696d69742069732060448201526c3830302061646472657373657360981b6064820152608401610c84565b6000611ab48383612ee4565b905080611ac0866112bd565b1015611b0e5760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c657400000000006044820152606401610c84565b60005b838110156114b757611b4a86868684818110611b2f57611b2f612f4b565b9050602002016020810190611b449190612995565b85611b7b565b5080611b5581612f1a565b915050611b11565b6001600160a01b031660009081526001602052604090205460ff1690565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611bcc918490611c4f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611bfb90836121d4565b6001600160a01b038085166000818152600860205260409081902093909355915190861690600080516020612f8583398151915290611c3d9086815260200190565b60405180910390a35060019392505050565b60008184841115611c735760405162461bcd60e51b8152600401610c849190612d9f565b506000611c808486612f03565b95945050505050565b60295460009060ff1615611ca957611ca2848484611b7b565b905061114b565b6001600160a01b03841660009081526001602052604090205460ff16158015611ceb57506001600160a01b03831660009081526001602052604090205460ff16155b15611d4057602754600160a01b900460ff16611d405760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610c84565b6001600160a01b0384166000908152600b602052604090205460ff168015611d6a5750600a5460ff165b15611e5b576001600160a01b0384166000908152600e60205260409020544211611dd65760405162461bcd60e51b815260206004820152601a60248201527f5076742073656c6c65722074696d6520726573747269637465640000000000006044820152606401610c84565b600c54821115611e345760405162461bcd60e51b8152602060048201526024808201527f5076742073656c6c65722068617665206d61782073656c6c20726573747269636044820152633a34b7b760e11b6064820152608401610c84565b600d54611e419042612eaa565b6001600160a01b0385166000908152600e60205260409020555b6001600160a01b03841660009081526001602052604090205460ff16158015611e8d57506001600160a01b0383163014155b8015611ea757506003546001600160a01b03848116911614155b8015611ec157506026546001600160a01b03848116911614155b8015611edb57506022546001600160a01b03848116911614155b15611f71576000611eeb846112bd565b600754909150611efb8483612eaa565b1115611f6f5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610c84565b505b611f7b84836122f4565b611f83612361565b15611f9557611f906123b7565b61204b565b6001600160a01b03841660009081526001602052604090205460ff16158015611fd757506001600160a01b03831660009081526001602052604090205460ff16155b8015611ffc57506001600160a01b03841660009081526010602052604090205460ff16155b801561201557506026546001600160a01b038481169116145b80156120235750601b5460ff165b801561203e5750601d54601c5461203a9190612eaa565b4210155b1561204b5761204b6127ad565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461209d918490611c4f565b6001600160a01b038516600090815260086020908152604080832093909355601090529081205460ff161515806120ee57506001600160a01b03841660009081526010602052604090205460ff1615155b6121155760265461211090869085906001600160a01b038881169116146127ca565b612117565b825b6001600160a01b03851660009081526008602052604090205490915061213d90826121d4565b6001600160a01b038086166000818152600860205260409081902093909355915190871690600080516020612f858339815191529061217f9085815260200190565b60405180910390a3506001949350505050565b600061114b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c4f565b6000806121e18385612eaa565b90508381101561114b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c84565b60008261224257506000610d15565b600061224e8385612ee4565b90508261225b8583612ec2565b1461114b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c84565b600061114b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061291b565b6006548111158061231d57506001600160a01b03821660009081526011602052604090205460ff165b61235d5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610c84565b5050565b6026546000906001600160a01b03163314801590612382575060295460ff16155b80156123975750602754600160a81b900460ff165b801561119657505060285430600090815260086020526040902054101590565b6029805460ff191660011790556023546024546000916123d691610d62565b6123e2576012546123e5565b60005b90506000612409600261166f60175461166f8660285461223390919063ffffffff16565b905060006124228260285461219290919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061245c5761245c612f4b565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061248d5761248d612f4b565b6001600160a01b03928316602091820292909201015260255460405163791ac94760e01b81524792919091169063791ac947906124d7908690600090879030904290600401612e39565b600060405180830381600087803b1580156124f157600080fd5b505af1158015612505573d6000803e3d6000fd5b50505050600061251e824761219290919063ffffffff16565b905060006125396125308860026122b2565b60175490612192565b9050600061254e600261166f8481878d612233565b9050600061256b8361166f6013548761223390919063ffffffff16565b905060006125888461166f6015548861223390919063ffffffff16565b905060006125a58561166f6014548961223390919063ffffffff16565b601f546040519192506000916001600160a01b039091169085908381818185875af1925050503d80600081146125f7576040519150601f19603f3d011682016040523d82523d6000602084013e6125fc565b606091505b50506020546040519192506001600160a01b0316908390600081818185875af1925050503d806000811461264c576040519150601f19603f3d011682016040523d82523d6000602084013e612651565b606091505b50506021546040519192506001600160a01b0316908490600081818185875af1925050503d80600081146126a1576040519150601f19603f3d011682016040523d82523d6000602084013e6126a6565b606091505b5060009250508b15905061279557602554601e5460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c4016060604051808303818588803b15801561271f57600080fd5b505af1158015612733573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127589190612d2e565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506029805460ff1916905550505050505050505050565b60006127ba601a54611551565b905080156127c75742601c555b50565b600080826127d95760646127dd565b6019545b9050600061280c60185460646127f39190612ee4565b61166f846117cc6017548a61223390919063ffffffff16565b9050600061282b60175461166f6016548561223390919063ffffffff16565b905060006128398383612192565b3060009081526008602052604090205490915061285690826121d4565b30600090815260086020526040808220929092556022546001600160a01b03168152205461288490836121d4565b6022546001600160a01b0390811660009081526008602090815260409182902093909355518381523092918b1691600080516020612f85833981519152910160405180910390a38115612905576022546040518381526001600160a01b03918216918a1690600080516020612f858339815191529060200160405180910390a35b61290f8784612192565b98975050505050505050565b6000818361293c5760405162461bcd60e51b8152600401610c849190612d9f565b506000611c808486612ec2565b60008083601f84011261295b57600080fd5b50813567ffffffffffffffff81111561297357600080fd5b6020830191508360208260051b850101111561298e57600080fd5b9250929050565b6000602082840312156129a757600080fd5b813561114b81612f61565b600080604083850312156129c557600080fd5b82356129d081612f61565b915060208301356129e081612f61565b809150509250929050565b600080600080600060a08688031215612a0357600080fd5b8535612a0e81612f61565b94506020860135612a1e81612f61565b93506040860135612a2e81612f61565b92506060860135612a3e81612f61565b91506080860135612a4e81612f61565b809150509295509295909350565b600080600060608486031215612a7157600080fd5b8335612a7c81612f61565b92506020840135612a8c81612f61565b929592945050506040919091013590565b600080600080600060608688031215612ab557600080fd5b8535612ac081612f61565b9450602086013567ffffffffffffffff80821115612add57600080fd5b612ae989838a01612949565b90965094506040880135915080821115612b0257600080fd5b50612b0f88828901612949565b969995985093965092949392505050565b60008060008060608587031215612b3657600080fd5b8435612b4181612f61565b9350602085013567ffffffffffffffff811115612b5d57600080fd5b612b6987828801612949565b9598909750949560400135949350505050565b60008060408385031215612b8f57600080fd5b8235612b9a81612f61565b915060208301356129e081612f76565b60008060408385031215612bbd57600080fd5b8235612bc881612f61565b946020939093013593505050565b600080600060408486031215612beb57600080fd5b833567ffffffffffffffff811115612c0257600080fd5b612c0e86828701612949565b9094509250506020840135612c2281612f76565b809150509250925092565b600060208284031215612c3f57600080fd5b813561114b81612f76565b600060208284031215612c5c57600080fd5b815161114b81612f76565b60008060408385031215612c7a57600080fd5b8235612bc881612f76565b600060208284031215612c9757600080fd5b5035919050565b600060208284031215612cb057600080fd5b5051919050565b600080600060608486031215612ccc57600080fd5b833592506020840135612a8c81612f76565b60008060408385031215612cf157600080fd5b50508035926020909101359150565b600080600060608486031215612d1557600080fd5b83359250602084013591506040840135612c2281612f76565b600080600060608486031215612d4357600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c08789031215612d7557600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b81811015612dcc57858101830151858201604001528201612db0565b81811115612dde576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e895784516001600160a01b031683529383019391830191600101612e64565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115612ebd57612ebd612f35565b500190565b600082612edf57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615612efe57612efe612f35565b500290565b600082821015612f1557612f15612f35565b500390565b6000600019821415612f2e57612f2e612f35565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146127c757600080fd5b80151581146127c757600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122096b252137aae929bbc7c7e0da8ef40e4fa013a7a770a73a33ef3aa3c7678241e64736f6c63430008070033

Deployed Bytecode Sourcemap

4737:17092:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9536:180;;;;;;;;;;-1:-1:-1;9536:180:0;;;;;:::i;:::-;;:::i;:::-;;6914:54;;;;;;;;;;;;;;;;;;;17401:25:1;;;17389:2;17374:18;6914:54:0;;;;;;;;8218:80;;;;;;;;;;-1:-1:-1;8290:5:0;;;;;;;;;;;;-1:-1:-1;;;8290:5:0;;;;8218:80;;;;;;;:::i;8640:216::-;;;;;;;;;;-1:-1:-1;8640:216:0;;;;;:::i;:::-;;:::i;:::-;;;10136:14:1;;10129:22;10111:41;;10099:2;10084:18;8640:216:0;9971:187:1;15254:131:0;;;;;;;;;;-1:-1:-1;15254:131:0;;;;;:::i;:::-;;:::i;19623:150::-;;;;;;;;;;-1:-1:-1;19623:150:0;;;;;:::i;:::-;;:::i;6178:36::-;;;;;;;;;;;;;;;;7948:88;;;;;;;;;;-1:-1:-1;8021:12:0;;7948:88;;18481:450;;;;;;;;;;-1:-1:-1;18481:450:0;;;;;:::i;:::-;;:::i;6268:36::-;;;;;;;;;;;;;;;;19803:595;;;;;;;;;;-1:-1:-1;19803:595:0;;;;;:::i;:::-;;:::i;14602:208::-;;;;;;;;;;-1:-1:-1;14602:208:0;;;;;:::i;:::-;;:::i;6078:93::-;;;;;;;;;;;;;;;;19103:183;;;;;;;;;;-1:-1:-1;19103:183:0;;;;;:::i;:::-;;:::i;9158:370::-;;;;;;;;;;-1:-1:-1;9158:370:0;;;;;:::i;:::-;;:::i;19298:142::-;;;;;;;;;;;;;:::i;6404:43::-;;;;;;;;;;;;;;;;2745:103;;;;;;;;;;-1:-1:-1;2745:103:0;;;;;:::i;:::-;2800:4;2835:5;-1:-1:-1;;;;;2824:16:0;;;2835:5;;2824:16;;2745:103;8042:80;;;;;;;;;;-1:-1:-1;8042:80:0;;5067:1;18817:36:1;;18805:2;18790:18;8042:80:0;18675:184:1;5955:34:0;;;;;;;;;;;;;;;;6581:30;;;;;;;;;;-1:-1:-1;6581:30:0;;;;-1:-1:-1;;;;;6581:30:0;;;;;;-1:-1:-1;;;;;8820:32:1;;;8802:51;;8790:2;8775:18;6581:30:0;8656:203:1;6797:31:0;;;;;;;;;;-1:-1:-1;6797:31:0;;;;-1:-1:-1;;;;;6797:31:0;;;8864:122;;;;;;;;;;-1:-1:-1;8864:122:0;;;;;:::i;:::-;;:::i;10583:96::-;;;;;;;;;;-1:-1:-1;10583:96:0;;;;;:::i;:::-;;:::i;17644:120::-;;;;;;;;;;-1:-1:-1;17644:120:0;;;;;:::i;:::-;;:::i;5914:34::-;;;;;;;;;;;;;;;;6877:30;;;;;;;;;;-1:-1:-1;6877:30:0;;;;-1:-1:-1;;;6877:30:0;;;;;;10230:216;;;;;;;;;;-1:-1:-1;10230:216:0;;;;;:::i;:::-;;:::i;8388:105::-;;;;;;;;;;-1:-1:-1;8388:105:0;;;;;:::i;:::-;;:::i;5507:47::-;;;;;;;;;;;;;;;;14818:272;;;;;;;;;;-1:-1:-1;14818:272:0;;;;;:::i;:::-;;:::i;5189:51::-;;;;;;;;;;;;;;;;5134:48;;;;;;;;;;;;;;;;6541:33;;;;;;;;;;-1:-1:-1;6541:33:0;;;;-1:-1:-1;;;;;6541:33:0;;;17908:565;;;;;;;;;;-1:-1:-1;17908:565:0;;;;;:::i;:::-;;:::i;20833:263::-;;;;;;;;;;-1:-1:-1;20833:263:0;;;;;:::i;:::-;;:::i;8304:78::-;;;;;;;;;;-1:-1:-1;8356:7:0;8374:5;-1:-1:-1;;;;;8374:5:0;8304:78;;5364:44;;;;;;;;;;-1:-1:-1;5364:44:0;;;;;;;;8128:84;;;;;;;;;;-1:-1:-1;8202:7:0;;;;;;;;;;;;-1:-1:-1;;;8202:7:0;;;;8128:84;;21100:499;;;;;;;;;;-1:-1:-1;21100:499:0;;;;;:::i;:::-;;:::i;5873:34::-;;;;;;;;;;;;;;;;6326:35;;;;;;;;;;-1:-1:-1;6326:35:0;;;;;;;;5561:46;;;;;;;;;;-1:-1:-1;5561:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;6368:29;;;;;;;;;;;;;;;;6771:19;;;;;;;;;;-1:-1:-1;6771:19:0;;;;-1:-1:-1;;;;;6771:19:0;;;8994:156;;;;;;;;;;-1:-1:-1;8994:156:0;;;;;:::i;:::-;;:::i;2538:94::-;;;;;;;;;;-1:-1:-1;2538:94:0;;;;;:::i;:::-;;:::i;6456:36::-;;;;;;;;;;-1:-1:-1;6456:36:0;;;;-1:-1:-1;;;;;6456:36:0;;;10454:121;;;;;;;;;;-1:-1:-1;10454:121:0;;;;;:::i;:::-;;:::i;19448:167::-;;;;;;;;;;-1:-1:-1;19448:167:0;;;;;:::i;:::-;;:::i;5996:34::-;;;;;;;;;;;;;;;;8499:133;;;;;;;;;;-1:-1:-1;8499:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8601:19:0;;;8583:7;8601:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8499:133;18939:156;;;;;;;;;;-1:-1:-1;18939:156:0;;;;;:::i;:::-;;:::i;6618:30::-;;;;;;;;;;-1:-1:-1;6618:30:0;;;;-1:-1:-1;;;;;6618:30:0;;;6499:35;;;;;;;;;;-1:-1:-1;6499:35:0;;;;-1:-1:-1;;;;;6499:35:0;;;15098:125;;;;;;;;;;-1:-1:-1;15098:125:0;;;;;:::i;:::-;;:::i;9905:317::-;;;;;;;;;;-1:-1:-1;9905:317:0;;;;;:::i;:::-;;:::i;2640:97::-;;;;;;;;;;-1:-1:-1;2640:97:0;;;;;:::i;:::-;;:::i;9722:175::-;;;;;;;;;;-1:-1:-1;9722:175:0;;;;;:::i;:::-;;:::i;2971:173::-;;;;;;;;;;-1:-1:-1;2971:173:0;;;;;:::i;:::-;;:::i;5466:32::-;;;;;;;;;;;;;;;;17772:128;;;;;;;;;;-1:-1:-1;17772:128:0;;;;;:::i;:::-;;:::i;6740:24::-;;;;;;;;;;-1:-1:-1;6740:24:0;;;;-1:-1:-1;;;;;6740:24:0;;;6037:34;;;;;;;;;;;;;;;;20402:425;;;;;;;;;;-1:-1:-1;20402:425:0;;;;;:::i;:::-;;:::i;2856:107::-;;;;;;;;;;-1:-1:-1;2856:107:0;;;;;:::i;:::-;;:::i;6223:36::-;;;;;;;;;;;;;;;;6837:31;;;;;;;;;;-1:-1:-1;6837:31:0;;;;-1:-1:-1;;;6837:31:0;;;;;;9536:180;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;;;;;;;;;9703:5:::1;9674:24;9659:12;;:39;;;;:::i;:::-;9658:50;;;;:::i;:::-;9640:15;:68:::0;-1:-1:-1;9536:180:0:o;8640:216::-;8744:10;8715:4;8732:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8732:32:0;;;;;;;;;;:41;;;8789:37;8715:4;;8732:32;;8789:37;;;;8767:6;17401:25:1;;17389:2;17374:18;;17255:177;8789:37:0;;;;;;;;-1:-1:-1;8844:4:0;8640:216;;;;;:::o;15254:131::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15333:12:::1;15320:10;:25:::0;15356:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;15356:21:0::1;-1:-1:-1::0;;;;15356:21:0;;::::1;::::0;;;::::1;::::0;;15254:131::o;19623:150::-;19703:4;19759:6;19727:29;19747:8;19727:19;:29::i;:::-;:38;;19623:150;-1:-1:-1;;;19623:150:0:o;18481:450::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18681:21:::1;:46:::0;;-1:-1:-1;;;;;;18681:46:0;;::::1;-1:-1:-1::0;;;;;18681:46:0;;::::1;;::::0;;;18738:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18793:18:::1;:40:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18844:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18889:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;18481:450::o;19803:595::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19953:3:::1;19934:22:::0;::::1;19926:79;;;::::0;-1:-1:-1;;;19926:79:0;;15195:2:1;19926:79:0::1;::::0;::::1;15177:21:1::0;15234:2;15214:18;;;15207:30;15273:34;15253:18;;;15246:62;-1:-1:-1;;;15324:18:1;;;15317:43;15377:19;;19926:79:0::1;14993:409:1::0;19926:79:0::1;20020:33:::0;;::::1;20012:85;;;::::0;-1:-1:-1;;;20012:85:0;;11420:2:1;20012:85:0::1;::::0;::::1;11402:21:1::0;11459:2;11439:18;;;11432:30;11498:34;11478:18;;;11471:62;-1:-1:-1;;;11549:18:1;;;11542:38;11597:19;;20012:85:0::1;11218:404:1::0;20012:85:0::1;20106:12;20135:6:::0;20131:82:::1;20145:20:::0;;::::1;20131:82;;;20196:6;;20203:1;20196:9;;;;;;;:::i;:::-;;;;;;;20189:4;:16;;;;:::i;:::-;20182:23:::0;-1:-1:-1;20167:3:0;::::1;::::0;::::1;:::i;:::-;;;;20131:82;;;;20248:4;20229:15;20239:4;20229:9;:15::i;:::-;:23;;20221:63;;;::::0;-1:-1:-1;;;20221:63:0;;13246:2:1;20221:63:0::1;::::0;::::1;13228:21:1::0;13285:2;13265:18;;;13258:30;13324:29;13304:18;;;13297:57;13371:18;;20221:63:0::1;13044:351:1::0;20221:63:0::1;20297:6;20293:102;20307:20:::0;;::::1;20293:102;;;20344:43;20359:4;20364:9;;20374:1;20364:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20377:6;;20384:1;20377:9;;;;;;;:::i;:::-;;;;;;;20344:14;:43::i;:::-;-1:-1:-1::0;20329:3:0;::::1;::::0;::::1;:::i;:::-;;;;20293:102;;;;19917:481;19803:595:::0;;;;;:::o;14602:208::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14706:21:::1;14746:10;14738:64;14798:3;14767:28;14779:16:::0;14706:21;14767:28:::1;:::i;:::-;:34;;;;:::i;:::-;14738:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14675:135;14602:208:::0;:::o;19103:183::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19201:15:::1;:25:::0;;;;19237:26:::1;:41:::0;19103:183::o;9158:370::-;-1:-1:-1;;;;;9278:19:0;;9258:4;9278:19;;;:11;:19;;;;;;;;9298:10;9278:31;;;;;;;;-1:-1:-1;;9278:52:0;9275:186;;9380:69;;;;;;;;;;;-1:-1:-1;;;9380:69:0;;;;;;;;-1:-1:-1;;;;;9380:19:0;;-1:-1:-1;9380:19:0;;;:11;:19;;;;;9400:10;9380:31;;;;;;;;;;:69;;9416:6;;9380:35;:69::i;:::-;-1:-1:-1;;;;;9346:19:0;;;;;;:11;:19;;;;;;;;9366:10;9346:31;;;;;;;:103;9275:186;9480:40;9494:6;9502:9;9513:6;9480:13;:40::i;:::-;9473:47;;9158:370;;;;;;:::o;19298:142::-;19426:4;;19351:7;;19378:54;;19416:15;;-1:-1:-1;;;;;19426:4:0;19416:9;:15::i;:::-;19405:4;;19378:33;;19395:15;;-1:-1:-1;;;;;19405:4:0;19395:9;:15::i;:::-;19378:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;19371:61;;19298:142;:::o;8864:122::-;8919:4;8943:35;8951:7;-1:-1:-1;;8943:7:0;:35::i;10583:96::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10650:12:::1;:21:::0;10583:96::o;17644:120::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17728:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17728:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17644:120::o;10230:216::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10333:9:::1;10328:111;10344:20:::0;;::::1;10328:111;;;10421:6;10386:18;:32;10405:9;;10415:1;10405:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10386:32:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10386:32:0;:41;;-1:-1:-1;;10386:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10366:3:::1;::::0;::::1;:::i;:::-;;;10328:111;;;;10230:216:::0;;;:::o;8388:105::-;-1:-1:-1;;;;;8472:18:0;8454:7;8472:18;;;:9;:18;;;;;;;8388:105::o;14818:272::-;14908:4;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;14925:11;14922:95:::1;;14961:44;::::0;-1:-1:-1;;;14961:44:0;;14999:4:::1;14961:44;::::0;::::1;8802:51:1::0;-1:-1:-1;;;;;14961:29:0;::::1;::::0;::::1;::::0;8775:18:1;;14961:44:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14952:53;;14922:95;15034:48;::::0;-1:-1:-1;;;15034:48:0;;15063:10:::1;15034:48;::::0;::::1;9254:51:1::0;9321:18;;;9314:34;;;-1:-1:-1;;;;;15034:28:0;::::1;::::0;::::1;::::0;9227:18:1;;15034:48:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17908:565::-:0;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;18084:12:::1;:28:::0;;;18123:7:::1;:18:::0;;;18152:12:::1;:28:::0;;;18191:10:::1;:24:::0;;;18226:7:::1;:18:::0;;;18266:77:::1;18236:8:::0;18266:63:::1;18204:11:::0;18266:63;18167:13;18266:63;18099:13;18133:8;18266:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:77::-;18255:8;:88:::0;18354:14:::1;:32:::0;;;18416:16:::1;18431:1;18371:15:::0;18416:16:::1;:::i;:::-;18405:8;;:27;18397:68;;;::::0;-1:-1:-1;;;18397:68:0;;12175:2:1;18397:68:0::1;::::0;::::1;12157:21:1::0;12214:2;12194:18;;;12187:30;12253;12233:18;;;12226:58;12301:18;;18397:68:0::1;11973:352:1::0;18397:68:0::1;17908:565:::0;;;;;;:::o;20833:263::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;20952:4:::1;20941:8;:15;20933:56;;;::::0;-1:-1:-1;;;20933:56:0;;12532:2:1;20933:56:0::1;::::0;::::1;12514:21:1::0;12571:2;12551:18;;;12544:30;12610:31;12590:18;;;12583:59;12659:18;;20933:56:0::1;12330:353:1::0;20933:56:0::1;21002:15;:23:::0;;;;21032:16:::1;:27:::0;21066:15:::1;:26:::0;;-1:-1:-1;;21066:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20833:263::o;21100:499::-;21177:4;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;21222:4:::1;21201:17;:25;;21193:80;;;::::0;-1:-1:-1;;;21193:80:0;;14784:2:1;21193:80:0::1;::::0;::::1;14766:21:1::0;14823:2;14803:18;;;14796:30;14862:34;14842:18;;;14835:62;-1:-1:-1;;;14913:18:1;;;14906:40;14963:19;;21193:80:0::1;14582:406:1::0;21193:80:0::1;21325:4;::::0;21310:20:::1;::::0;-1:-1:-1;;;21310:20:0;;-1:-1:-1;;;;;21325:4:0;;::::1;21310:20;::::0;::::1;8802:51:1::0;21290:17:0::1;::::0;21310:4:::1;::::0;:14:::1;::::0;8775:18:1;;21310:20:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21290:40:::0;-1:-1:-1;21341:15:0::1;21359:43;21396:5;21359:32;21290:40:::0;21373:17;21359:13:::1;:32::i;:::-;:36:::0;::::1;:43::i;:::-;21341:61:::0;-1:-1:-1;21427:11:0;;21423:136:::1;;21469:4;::::0;21474::::1;::::0;21454:33:::1;::::0;-1:-1:-1;;;;;21469:4:0;;::::1;::::0;21474::::1;21479:7:::0;21454:14:::1;:33::i;:::-;;21502:12;;;;;;;;;-1:-1:-1::0;;;;;21502:12:0::1;-1:-1:-1::0;;;;;21502:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;21543:4:0::1;::::0;21100:499;-1:-1:-1;;;;;;;21100:499:0:o;21423:136::-:1;-1:-1:-1::0;21586:5:0::1;::::0;21100:499;-1:-1:-1;;;21100:499:0:o;8994:156::-;9074:4;9098:44;9112:10;9124:9;9135:6;9098:13;:44::i;2538:94::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2598:19:0::1;;::::0;;;2620:4:::1;2598:19;::::0;;;;;;;:26;;-1:-1:-1;;2598:26:0::1;::::0;;::::1;::::0;;2538:94::o;10454:121::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10541:17:::1;:26:::0;10454:121::o;19448:167::-;19516:7;19543:64;19584:22;:20;:22::i;:::-;19566:4;;19543:36;;19556:22;;19576:1;;19556:15;;-1:-1:-1;;;;;19566:4:0;19556:9;:15::i;:::-;:19;;:22::i;:::-;19543:8;;:12;:36::i;18939:156::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;19031:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;19031:22:0::1;-1:-1:-1::0;;;;19031:22:0;;::::1;::::0;;;::::1;::::0;;;19064:13:::1;:23:::0;18939:156::o;15098:125::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;15179:14:::1;:28:::0;15098:125::o;9905:317::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;10116:5:::1;10081:30;10066:12;;:45;;;;:::i;:::-;10065:56;;;;:::i;:::-;10045:17;:76:::0;10132:24:::1;:38:::0;;-1:-1:-1;;10132:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;10181:21:::1;:33:::0;-1:-1:-1;9905:317:0:o;2640:97::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2702:19:0::1;2724:5;2702:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2702:27:0::1;::::0;;2640:97::o;9722:175::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;9884:5:::1;9854:25;9839:12;;:40;;;;:::i;:::-;9838:51;;;;:::i;:::-;9823:12;:66:::0;-1:-1:-1;9722:175:0:o;2971:173::-;2800:4;2835:5;-1:-1:-1;;;;;2835:5:0;2397:10;2824:16;2381:38;;;;-1:-1:-1;;;2381:38:0;;;;;;;:::i;:::-;3047:5:::1;:11:::0;;-1:-1:-1;;;;;;3047:11:0::1;-1:-1:-1::0;;;;;3047:11:0;::::1;::::0;;::::1;::::0;;3069:19;;;-1:-1:-1;3069:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3069:26:0::1;::::0;;::::1;::::0;;;3111:25;;8802:51:1;;;3111:25:0::1;::::0;8775:18:1;3111:25:0::1;;;;;;;2971:173:::0;:::o;17772:128::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17860:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17860:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17772:128::o;20402:425::-;2479:24;2492:10;2479:12;:24::i;:::-;2471:48;;;;-1:-1:-1;;;2471:48:0;;;;;;;:::i;:::-;20543:3:::1;20524:22:::0;::::1;20516:79;;;::::0;-1:-1:-1;;;20516:79:0;;17043:2:1;20516:79:0::1;::::0;::::1;17025:21:1::0;17082:2;17062:18;;;17055:30;17121:34;17101:18;;;17094:62;-1:-1:-1;;;17172:18:1;;;17165:43;17225:19;;20516:79:0::1;16841:409:1::0;20516:79:0::1;20604:12;20619:25;20628:9:::0;20619:6;:25:::1;:::i;:::-;20604:40;;20680:4;20661:15;20671:4;20661:9;:15::i;:::-;:23;;20653:63;;;::::0;-1:-1:-1;;;20653:63:0;;13246:2:1;20653:63:0::1;::::0;::::1;13228:21:1::0;13285:2;13265:18;;;13258:30;13324:29;13304:18;;;13297:57;13371:18;;20653:63:0::1;13044:351:1::0;20653:63:0::1;20729:6;20725:99;20739:20:::0;;::::1;20725:99;;;20776:40;20791:4;20796:9;;20806:1;20796:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;20809:6;20776:14;:40::i;:::-;-1:-1:-1::0;20761:3:0;::::1;::::0;::::1;:::i;:::-;;;;20725:99;;2856:107:::0;-1:-1:-1;;;;;2936:19:0;2912:4;2936:19;;;:14;:19;;;;;;;;;2856:107::o;12974:330::-;13104:53;;;;;;;;;;;-1:-1:-1;;;13104:53:0;;;;;;;;-1:-1:-1;;;;;13104:17:0;;13067:4;13104:17;;;:9;:17;;;;;;;:53;;13126:6;;13104:21;:53::i;:::-;-1:-1:-1;;;;;13084:17:0;;;;;;;:9;:17;;;;;;:73;;;;13191:20;;;;;;;:32;;13216:6;13191:24;:32::i;:::-;-1:-1:-1;;;;;13168:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13239:35;;;;;;-1:-1:-1;;;;;;;;;;;13239:35:0;;;13267:6;17401:25:1;;17389:2;17374:18;;17255:177;13239:35:0;;;;;;;;-1:-1:-1;13292:4:0;12974:330;;;;;:::o;422:192::-;508:7;544:12;536:6;;;;528:29;;;;-1:-1:-1;;;528:29:0;;;;;;;;:::i;:::-;-1:-1:-1;568:9:0;580:5;584:1;580;:5;:::i;:::-;568:17;422:192;-1:-1:-1;;;;;422:192:0:o;10687:2275::-;10799:6;;10779:4;;10799:6;;10796:63;;;10815:41;10830:6;10838:9;10849:6;10815:14;:41::i;:::-;10808:48;;;;10796:63;-1:-1:-1;;;;;10875:22:0;;;;;;:14;:22;;;;;;;;10874:23;:53;;;;-1:-1:-1;;;;;;10902:25:0;;;;;;:14;:25;;;;;;;;10901:26;10874:53;10871:127;;;10951:11;;-1:-1:-1;;;10951:11:0;;;;10943:43;;;;-1:-1:-1;;;10943:43:0;;13602:2:1;10943:43:0;;;13584:21:1;13641:2;13621:18;;;13614:30;-1:-1:-1;;;13660:18:1;;;13653:50;13720:18;;10943:43:0;13400:344:1;10943:43:0;-1:-1:-1;;;;;11190:26:0;;;;;;:18;:26;;;;;;;;:55;;;;-1:-1:-1;11221:24:0;;;;11190:55;11186:335;;;-1:-1:-1;;;;;11270:21:0;;;;;;:13;:21;;;;;;11294:15;-1:-1:-1;11262:77:0;;;;-1:-1:-1;;;11262:77:0;;16348:2:1;11262:77:0;;;16330:21:1;16387:2;16367:18;;;16360:30;16426:28;16406:18;;;16399:56;16472:18;;11262:77:0;16146:350:1;11262:77:0;11372:17;;11362:6;:27;;11354:75;;;;-1:-1:-1;;;11354:75:0;;15943:2:1;11354:75:0;;;15925:21:1;15982:2;15962:18;;;15955:30;16021:34;16001:18;;;15994:62;-1:-1:-1;;;16072:18:1;;;16065:34;16116:19;;11354:75:0;15741:400:1;11354:75:0;11488:21;;11470:39;;:15;:39;:::i;:::-;-1:-1:-1;;;;;11446:21:0;;;;;;:13;:21;;;;;:63;11186:335;-1:-1:-1;;;;;11538:22:0;;;;;;:14;:22;;;;;;;;11537:23;:53;;;;-1:-1:-1;;;;;;11564:26:0;;11585:4;11564:26;;11537:53;:84;;;;-1:-1:-1;11616:4:0;;-1:-1:-1;;;;;11595:26:0;;;11616:4;;11595:26;;11537:84;:105;;;;-1:-1:-1;11638:4:0;;-1:-1:-1;;;;;11625:17:0;;;11638:4;;11625:17;;11537:105;:137;;;;-1:-1:-1;11659:15:0;;-1:-1:-1;;;;;11646:28:0;;;11659:15;;11646:28;;11537:137;11533:340;;;11691:18;11712:20;11722:9;11712;:20::i;:::-;11780:15;;11691:41;;-1:-1:-1;11756:19:0;11769:6;11691:41;11756:19;:::i;:::-;11755:40;;11747:114;;;;-1:-1:-1;;;11747:114:0;;14353:2:1;11747:114:0;;;14335:21:1;14392:2;14372:18;;;14365:30;14431:34;14411:18;;;14404:62;14502:32;14482:18;;;14475:60;14552:19;;11747:114:0;14151:426:1;11747:114:0;11676:197;11533:340;12159:28;12172:6;12180;12159:12;:28::i;:::-;12203:16;:14;:16::i;:::-;12200:339;;;12222:10;:8;:10::i;:::-;12200:339;;;-1:-1:-1;;;;;12254:22:0;;;;;;:14;:22;;;;;;;;12253:23;:53;;;;-1:-1:-1;;;;;;12281:25:0;;;;;;:14;:25;;;;;;;;12280:26;12253:53;:95;;;;-1:-1:-1;;;;;;12329:19:0;;;;;;:11;:19;;;;;;;;12328:20;12253:95;:133;;;;-1:-1:-1;12382:4:0;;-1:-1:-1;;;;;12369:17:0;;;12382:4;;12369:17;12253:133;:169;;;;-1:-1:-1;12407:15:0;;;;12253:169;:241;;;;;12479:15;;12462:14;;:32;;;;:::i;:::-;12443:15;:51;;12253:241;12250:289;;;12514:13;:11;:13::i;:::-;12598:53;;;;;;;;;;;-1:-1:-1;;;12598:53:0;;;;;;;;-1:-1:-1;;;;;12598:17:0;;-1:-1:-1;12598:17:0;;;:9;:17;;;;;;;;:53;;12620:6;;12598:21;:53::i;:::-;-1:-1:-1;;;;;12578:17:0;;;;;;:9;:17;;;;;;;;:73;;;;13573:11;:19;;;;;;;;13572:20;12690:22;:51;;;-1:-1:-1;;;;;;13573:19:0;;13548:4;13573:19;;;:11;:19;;;;;;;;13572:20;12716:25;12690:51;12689:108;;12791:4;;12754:43;;12762:6;;12770;;-1:-1:-1;;;;;12778:17:0;;;12791:4;;12778:17;12754:7;:43::i;:::-;12689:108;;;12745:6;12689:108;-1:-1:-1;;;;;12831:20:0;;;;;;:9;:20;;;;;;12664:133;;-1:-1:-1;12831:40:0;;12664:133;12831:24;:40::i;:::-;-1:-1:-1;;;;;12808:20:0;;;;;;;:9;:20;;;;;;;:63;;;;12889:43;;;;;;-1:-1:-1;;;;;;;;;;;12889:43:0;;;12917:14;17401:25:1;;17389:2;17374:18;;17255:177;12889:43:0;;;;;;;;-1:-1:-1;12950:4:0;;10687:2275;-1:-1:-1;;;;10687:2275:0:o;280:136::-;338:7;365:43;369:1;372;365:43;;;;;;;;;;;;;;;;;:3;:43::i;93:181::-;151:7;;183:5;187:1;183;:5;:::i;:::-;171:17;;212:1;207;:6;;199:46;;;;-1:-1:-1;;;199:46:0;;12890:2:1;199:46:0;;;12872:21:1;12929:2;12909:18;;;12902:30;12968:29;12948:18;;;12941:57;13015:18;;199:46:0;12688:351:1;620:250:0;678:7;702:6;698:47;;-1:-1:-1;732:1:0;725:8;;698:47;757:9;769:5;773:1;769;:5;:::i;:::-;757:17;-1:-1:-1;802:1:0;793:5;797:1;757:17;793:5;:::i;:::-;:10;785:56;;;;-1:-1:-1;;;785:56:0;;13951:2:1;785:56:0;;;13933:21:1;13990:2;13970:18;;;13963:30;14029:34;14009:18;;;14002:62;-1:-1:-1;;;14080:18:1;;;14073:31;14121:19;;785:56:0;13749:397:1;876:132:0;934:7;961:39;965:1;968;961:39;;;;;;;;;;;;;;;;;:3;:39::i;13312:166::-;13409:12;;13399:6;:22;;:49;;;-1:-1:-1;;;;;;13425:23:0;;;;;;:15;:23;;;;;;;;13399:49;13391:79;;;;-1:-1:-1;;;13391:79:0;;11829:2:1;13391:79:0;;;11811:21:1;11868:2;11848:18;;;11841:30;-1:-1:-1;;;11887:18:1;;;11880:47;11944:18;;13391:79:0;11627:341:1;13391:79:0;13312:166;;:::o;14397:197::-;14484:4;;14446;;-1:-1:-1;;;;;14484:4:0;14470:10;:18;;;;:38;;-1:-1:-1;14502:6:0;;;;14501:7;14470:38;:62;;;;-1:-1:-1;14521:11:0;;-1:-1:-1;;;14521:11:0;;;;14470:62;:116;;;;-1:-1:-1;;14573:13:0;;14563:4;14545:24;;;;:9;:24;;;;;;:41;;;14397:197::o;15393:1900::-;7015:6;:13;;-1:-1:-1;;7015:13:0;7024:4;7015:13;;;15488:15:::1;::::0;15505:26:::1;::::0;7015:6;;15472:60:::1;::::0;:15:::1;:60::i;:::-;:79;;15539:12;;15472:79;;;15535:1;15472:79;15442:109;;15562:23;15588:59;15645:1;15588:52;15631:8;;15588:38;15606:19;15588:13;;:17;;:38;;;;:::i;:59::-;15562:85;;15658:20;15681:34;15699:15;15681:13;;:17;;:34;;;;:::i;:::-;15752:16;::::0;;15766:1:::1;15752:16:::0;;;;;::::1;::::0;;15658:57;;-1:-1:-1;15728:21:0::1;::::0;15752:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15752:16:0::1;15728:40;;15797:4;15779;15784:1;15779:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15779:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15823:4:::1;::::0;15813:7;;15823:4;::::1;::::0;15813;;15823;;15813:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15813:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15898:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15898:188:0;;15864:21:::1;::::0;15898:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15970:12;;15840:21:::1;::::0;16013:4;;16040::::1;::::0;16060:15:::1;::::0;15898:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16099:17;16119:40;16145:13;16119:21;:25;;:40;;;;:::i;:::-;16099:60:::0;-1:-1:-1;16172:19:0::1;16194:40;16207:26;:19:::0;16231:1:::1;16207:23;:26::i;:::-;16194:8;::::0;;:12:::1;:40::i;:::-;16172:62:::0;-1:-1:-1;16255:26:0::1;16284:58;16340:1;16284:51;16172:62:::0;16284:51;:9;16298:19;16284:13:::1;:34::i;:58::-;16255:87;;16353:26;16382:44;16414:11;16382:27;16396:12;;16382:9;:13;;:27;;;;:::i;:44::-;16353:73;;16437:21;16461:39;16488:11;16461:22;16475:7;;16461:9;:13;;:22;;;;:::i;:39::-;16437:63;;16511:24;16538:42;16568:11;16538:25;16552:10;;16538:9;:13;;:25;;;;:::i;:42::-;16622:20;::::0;16614:65:::1;::::0;16511:69;;-1:-1:-1;16594:15:0::1;::::0;-1:-1:-1;;;;;16622:20:0;;::::1;::::0;16656:18;;16594:15;16614:65;16594:15;16614:65;16656:18;16622:20;16614:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16714:18:0::1;::::0;16706:61:::1;::::0;16593:86;;-1:-1:-1;;;;;;16714:18:0::1;::::0;16746:16;;16706:61:::1;::::0;;;16746:16;16714:18;16706:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16802:15:0::1;::::0;16794:55:::1;::::0;16690:77;;-1:-1:-1;;;;;;16802:15:0::1;::::0;16831:13;;16794:55:::1;::::0;;;16831:13;16802:15;16794:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16906:5:0::1;::::0;-1:-1:-1;;16927:19:0;;;-1:-1:-1;16924:362:0::1;;16962:6;::::0;17136:21:::1;::::0;16962:244:::1;::::0;-1:-1:-1;;;16962:244:0;;17038:4:::1;16962:244;::::0;::::1;9700:34:1::0;9750:18;;;9743:34;;;16962:6:0::1;9793:18:1::0;;;9786:34;;;9836:18;;;9829:34;-1:-1:-1;;;;;17136:21:0;;::::1;9879:19:1::0;;;9872:44;17176:15:0::1;9932:19:1::0;;;9925:35;16962:6:0;::::1;::::0;:22:::1;::::0;16992:18;;9634:19:1;;16962:244:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17226:48:0::1;::::0;;18596:25:1;;;18652:2;18637:18;;18630:34;;;17226:48:0::1;::::0;-1:-1:-1;18569:18:1;17226:48:0::1;;;;;;;16924:362;-1:-1:-1::0;;7033:6:0;:14;;-1:-1:-1;;7033:14:0;;;-1:-1:-1;;;;;;;;;;15393:1900:0:o;21603:158::-;21642:11;21656:31;21670:16;;21656:13;:31::i;:::-;21642:45;;21697:6;21694:62;;;21733:15;21716:14;:32;21694:62;21635:126;21603:158::o;13608:781::-;13688:7;13718:18;13739:6;:29;;13765:3;13739:29;;;13748:14;;13739:29;13718:50;;13779:17;13799:62;13840:14;;13857:3;13840:20;;;;:::i;:::-;13799:36;13824:10;13799:20;13810:8;;13799:6;:10;;:20;;;;:::i;:62::-;13779:82;;13874:18;13895:36;13922:8;;13895:22;13909:7;;13895:9;:13;;:22;;;;:::i;:36::-;13874:57;-1:-1:-1;13942:22:0;13967:25;:9;13874:57;13967:13;:25::i;:::-;14050:4;14032:24;;;;:9;:24;;;;;;13942:50;;-1:-1:-1;14032:44:0;;13942:50;14032:28;:44::i;:::-;14023:4;14005:24;;;;:9;:24;;;;;;:71;;;;14126:15;;-1:-1:-1;;;;;14126:15:0;14116:26;;;;:42;;14147:10;14116:30;:42::i;:::-;14097:15;;-1:-1:-1;;;;;14097:15:0;;;14087:26;;;;:9;:26;;;;;;;;;:71;;;;14174:47;17401:25:1;;;14199:4:0;;14174:47;;;;-1:-1:-1;;;;;;;;;;;14174:47:0;17374:18:1;14174:47:0;;;;;;;14245:14;;14242:99;;14297:15;;14280:45;;17401:25:1;;;-1:-1:-1;;;;;14297:15:0;;;;14280:45;;;-1:-1:-1;;;;;;;;;;;14280:45:0;17389:2:1;17374:18;14280:45:0;;;;;;;14242:99;14360:21;:6;14371:9;14360:10;:21::i;:::-;14353:28;13608:781;-1:-1:-1;;;;;;;;13608:781:0:o;1014:189::-;1100:7;1135:12;1128:5;1120:28;;;;-1:-1:-1;;;1120:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1159:9:0;1171:5;1175:1;1171;: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:640::-;3587:6;3595;3603;3611;3664:2;3652:9;3643:7;3639:23;3635:32;3632:52;;;3680:1;3677;3670:12;3632:52;3719:9;3706:23;3738:31;3763:5;3738:31;:::i;:::-;3788:5;-1:-1:-1;3844:2:1;3829:18;;3816:32;3871:18;3860:30;;3857:50;;;3903:1;3900;3893:12;3857:50;3942:70;4004:7;3995:6;3984:9;3980:22;3942:70;:::i;:::-;3483:640;;4031:8;;-1:-1:-1;3916:96:1;;4113:2;4098:18;4085:32;;3483:640;-1:-1:-1;;;;3483:640:1:o;4128:382::-;4193:6;4201;4254:2;4242:9;4233:7;4229:23;4225:32;4222:52;;;4270:1;4267;4260:12;4222:52;4309:9;4296:23;4328:31;4353:5;4328:31;:::i;:::-;4378:5;-1:-1:-1;4435:2:1;4420:18;;4407:32;4448:30;4407:32;4448:30;:::i;4515:315::-;4583:6;4591;4644:2;4632:9;4623:7;4619:23;4615:32;4612:52;;;4660:1;4657;4650:12;4612:52;4699:9;4686:23;4718:31;4743:5;4718:31;:::i;:::-;4768:5;4820:2;4805:18;;;;4792:32;;-1:-1:-1;;;4515:315:1:o;4835:566::-;4927:6;4935;4943;4996:2;4984:9;4975:7;4971:23;4967:32;4964:52;;;5012:1;5009;5002:12;4964:52;5052:9;5039:23;5085:18;5077:6;5074:30;5071:50;;;5117:1;5114;5107:12;5071:50;5156:70;5218:7;5209:6;5198:9;5194:22;5156:70;:::i;:::-;5245:8;;-1:-1:-1;5130:96:1;-1:-1:-1;;5330:2:1;5315:18;;5302:32;5343:28;5302:32;5343:28;:::i;:::-;5390:5;5380:15;;;4835:566;;;;;:::o;5406:241::-;5462:6;5515:2;5503:9;5494:7;5490:23;5486:32;5483:52;;;5531:1;5528;5521:12;5483:52;5570:9;5557:23;5589:28;5611:5;5589:28;:::i;5652:245::-;5719:6;5772:2;5760:9;5751:7;5747:23;5743:32;5740:52;;;5788:1;5785;5778:12;5740:52;5820:9;5814:16;5839:28;5861:5;5839:28;:::i;5902:309::-;5967:6;5975;6028:2;6016:9;6007:7;6003:23;5999:32;5996:52;;;6044:1;6041;6034:12;5996:52;6083:9;6070:23;6102:28;6124:5;6102:28;:::i;6216:180::-;6275:6;6328:2;6316:9;6307:7;6303:23;6299:32;6296:52;;;6344:1;6341;6334:12;6296:52;-1:-1:-1;6367:23:1;;6216:180;-1:-1:-1;6216:180:1:o;6401:184::-;6471:6;6524:2;6512:9;6503:7;6499:23;6495:32;6492:52;;;6540:1;6537;6530:12;6492:52;-1:-1:-1;6563:16:1;;6401:184;-1:-1:-1;6401:184:1:o;6590:377::-;6664:6;6672;6680;6733:2;6721:9;6712:7;6708:23;6704:32;6701:52;;;6749:1;6746;6739:12;6701:52;6785:9;6772:23;6762:33;;6845:2;6834:9;6830:18;6817:32;6858:28;6880:5;6858:28;:::i;6972:248::-;7040:6;7048;7101:2;7089:9;7080:7;7076:23;7072:32;7069:52;;;7117:1;7114;7107:12;7069:52;-1:-1:-1;;7140:23:1;;;7210:2;7195:18;;;7182:32;;-1:-1:-1;6972:248:1:o;7225:377::-;7299:6;7307;7315;7368:2;7356:9;7347:7;7343:23;7339:32;7336:52;;;7384:1;7381;7374:12;7336:52;7420:9;7407:23;7397:33;;7477:2;7466:9;7462:18;7449:32;7439:42;;7531:2;7520:9;7516:18;7503:32;7544:28;7566:5;7544:28;:::i;7607:306::-;7695:6;7703;7711;7764:2;7752:9;7743:7;7739:23;7735:32;7732:52;;;7780:1;7777;7770:12;7732:52;7809:9;7803:16;7793:26;;7859:2;7848:9;7844:18;7838:25;7828:35;;7903:2;7892:9;7888:18;7882:25;7872:35;;7607:306;;;;;:::o;7918:523::-;8022:6;8030;8038;8046;8054;8062;8115:3;8103:9;8094:7;8090:23;8086:33;8083:53;;;8132:1;8129;8122:12;8083:53;-1:-1:-1;;8155:23:1;;;8225:2;8210:18;;8197:32;;-1:-1:-1;8276:2:1;8261:18;;8248:32;;8327:2;8312:18;;8299:32;;-1:-1:-1;8378:3:1;8363:19;;8350:33;;-1:-1:-1;8430:3:1;8415:19;8402:33;;-1:-1:-1;7918:523:1;-1:-1:-1;7918:523:1:o;10616:597::-;10728:4;10757:2;10786;10775:9;10768:21;10818:6;10812:13;10861:6;10856:2;10845:9;10841:18;10834:34;10886:1;10896:140;10910:6;10907:1;10904:13;10896:140;;;11005:14;;;11001:23;;10995:30;10971:17;;;10990:2;10967:26;10960:66;10925:10;;10896:140;;;11054:6;11051:1;11048:13;11045:91;;;11124:1;11119:2;11110:6;11099:9;11095:22;11091:31;11084:42;11045:91;-1:-1:-1;11197:2:1;11176:15;-1:-1:-1;;11172:29:1;11157:45;;;;11204:2;11153:54;;10616:597;-1:-1:-1;;;10616:597:1:o;15407:329::-;15609:2;15591:21;;;15648:1;15628:18;;;15621:29;-1:-1:-1;;;15681:2:1;15666:18;;15659:36;15727:2;15712:18;;15407:329::o;16501:335::-;16703:2;16685:21;;;16742:2;16722:18;;;16715:30;-1:-1:-1;;;16776:2:1;16761:18;;16754:41;16827:2;16812:18;;16501:335::o;17437:980::-;17699:4;17747:3;17736:9;17732:19;17778:6;17767:9;17760:25;17804:2;17842:6;17837:2;17826:9;17822:18;17815:34;17885:3;17880:2;17869:9;17865:18;17858:31;17909:6;17944;17938:13;17975:6;17967;17960:22;18013:3;18002:9;17998:19;17991:26;;18052:2;18044:6;18040:15;18026:29;;18073:1;18083:195;18097:6;18094:1;18091:13;18083:195;;;18162:13;;-1:-1:-1;;;;;18158:39:1;18146:52;;18253:15;;;;18218:12;;;;18194:1;18112:9;18083:195;;;-1:-1:-1;;;;;;;18334:32:1;;;;18329:2;18314:18;;18307:60;-1:-1:-1;;;18398:3:1;18383:19;18376:35;18295:3;17437:980;-1:-1:-1;;;17437:980:1:o;18864:128::-;18904:3;18935:1;18931:6;18928:1;18925:13;18922:39;;;18941:18;;:::i;:::-;-1:-1:-1;18977:9:1;;18864:128::o;18997:217::-;19037:1;19063;19053:132;;19107:10;19102:3;19098:20;19095:1;19088:31;19142:4;19139:1;19132:15;19170:4;19167:1;19160:15;19053:132;-1:-1:-1;19199:9:1;;18997:217::o;19219:168::-;19259:7;19325:1;19321;19317:6;19313:14;19310:1;19307:21;19302:1;19295:9;19288:17;19284:45;19281:71;;;19332:18;;:::i;:::-;-1:-1:-1;19372:9:1;;19219:168::o;19392:125::-;19432:4;19460:1;19457;19454:8;19451:34;;;19465:18;;:::i;:::-;-1:-1:-1;19502:9:1;;19392:125::o;19522:135::-;19561:3;-1:-1:-1;;19582:17:1;;19579:43;;;19602:18;;:::i;:::-;-1:-1:-1;19649:1:1;19638:13;;19522:135::o;19662:127::-;19723:10;19718:3;19714:20;19711:1;19704:31;19754:4;19751:1;19744:15;19778:4;19775:1;19768:15;19794:127;19855:10;19850:3;19846:20;19843:1;19836:31;19886:4;19883:1;19876:15;19910:4;19907:1;19900:15;20058:131;-1:-1:-1;;;;;20133:31:1;;20123:42;;20113:70;;20179:1;20176;20169:12;20194:118;20280:5;20273:13;20266:21;20259:5;20256:32;20246:60;;20302:1;20299;20292:12

Swarm Source

ipfs://96b252137aae929bbc7c7e0da8ef40e4fa013a7a770a73a33ef3aa3c7678241e
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.