ETH Price: $3,176.95 (-8.46%)
Gas: 3 Gwei

Token

SOX INU (SOX INU)
 

Overview

Max Total Supply

1,000,000,000 SOX INU

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,000,000 SOX INU

Value
$0.00
0x7cd1220dfc2b311784823482660a28d506f59d87
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:
SOXINU

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/IRouter.sol

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

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

// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/IFactory.sol

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/Auth.sol

abstract contract Auth {

    address public 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 authorized {authorizations[adr] = true;}

    function unauthorize(address adr) public authorized {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 authorized {owner = adr; authorizations[adr] = true;}

}


// File: https://github.com/ssccrypto/library/blob/d3ff8d3ce424901bb6506df1ef8c71840d76b4c1/IERC20.sol

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function 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);}


// File: https://github.com/ssccrypto/library/blob/082bcac83e9e08d76f807def851f0283f7eb016d/SafeMath.sol

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {return a + b;}

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {return a - b;}

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {return a * b;}

    function div(uint256 a, uint256 b) internal pure returns (uint256) {return a / b;}

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {return a % b;}

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {uint256 c = a + b; if(c < a) return(false, 0); return(true, c);}}

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if(b > a) return(false, 0); return(true, a - b);}}

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if (a == 0) return(true, 0); uint256 c = a * b;

        if(c / a != b) return(false, 0); return(true, c);}}

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if(b == 0) return(false, 0); return(true, a / b);}}

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {

        unchecked {if(b == 0) return(false, 0); return(true, a % b);}}

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        unchecked{require(b <= a, errorMessage); return a - b;}}

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        unchecked{require(b > 0, errorMessage); return a / b;}}

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {

        unchecked{require(b > 0, errorMessage); return a % b;}}}


// File: contracts/sox.sol

/**



░██████╗░█████╗░██╗░░██╗  ██╗███╗░░██╗██╗░░░██╗

██╔════╝██╔══██╗╚██╗██╔╝  ██║████╗░██║██║░░░██║

╚█████╗░██║░░██║░╚███╔╝░  ██║██╔██╗██║██║░░░██║

░╚═══██╗██║░░██║░██╔██╗░  ██║██║╚████║██║░░░██║

██████╔╝╚█████╔╝██╔╝╚██╗  ██║██║░╚███║╚██████╔╝

╚═════╝░░╚════╝░╚═╝░░╚═╝  ╚═╝╚═╝░░╚══╝░╚═════╝░



https://t.me/soxinu

*/




pragma solidity 0.8.15;








contract SOXINU is IERC20, Auth {

    using SafeMath for uint256;

    string private constant _name = 'SOX INU';

    string private constant _symbol = 'SOX INU';

    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 10 * 10**8 * (10 ** _decimals);

    address DEAD = 0x000000000000000000000000000000000000dEaD;

    uint256 public _maxTxAmount = ( _totalSupply * 300 ) / 10000;

    uint256 public _maxWalletToken = ( _totalSupply * 300 ) / 10000;

    mapping (address => uint256) _balances;

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

    mapping (address => uint256) swapTime; 

    mapping (address => bool) isBot;

    mapping (address => bool) isInternal;

    mapping (address => bool) isDistributor;

    mapping (address => bool) isFeeExempt;



    IRouter router;

    address public pair;

    bool startSwap = false;

    uint256 startedTime;

    uint256 liquidityFee = 300;

    uint256 marketingFee = 400;

    uint256 stakingFee = 0;

    uint256 burnFee = 0;

    uint256 totalFee = 700;

    uint256 transferFee = 0;

    uint256 feeDenominator = 10000;



    bool swapEnabled = true;

    uint256 swapTimer = 2;

    uint256 swapTimes; 

    uint256 minSells = 3;

    bool swapping; 

    bool botOn = false;

    uint256 swapThreshold = ( _totalSupply * 500 ) / 100000;

    uint256 _minTokenAmount = ( _totalSupply * 15 ) / 100000;

    modifier lockTheSwap {swapping = true; _; swapping = false;}



    uint256 marketing_divisor = 50;

    uint256 liquidity_divisor = 0;

    uint256 distributor_divisor = 50;

    uint256 staking_divisor = 0;

    address liquidity_receiver; 

    address staking_receiver;

    address token_receiver;

    address alpha_receiver;

    address beta_receiver;

    address delta_receiver;

    address marketing_receiver;

    address default_receiver;



    constructor() Auth(msg.sender) {

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;

        pair = _pair;

        isInternal[address(this)] = true;

        isInternal[msg.sender] = true;

        isInternal[address(pair)] = true;

        isInternal[address(router)] = true;

        isDistributor[msg.sender] = true;

        isFeeExempt[msg.sender] = true;

        isFeeExempt[address(this)] = true;

        liquidity_receiver = address(this);

        token_receiver = address(this);

        alpha_receiver = msg.sender;

        beta_receiver = msg.sender;

        delta_receiver = msg.sender;

        staking_receiver = msg.sender;

        marketing_receiver = msg.sender;

        default_receiver = msg.sender;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);

    }



    receive() external payable {}



    function name() public pure returns (string memory) {return _name;}

    function symbol() public pure returns (string memory) {return _symbol;}

    function decimals() public pure returns (uint8) {return _decimals;}

    function totalSupply() public view override returns (uint256) {return _totalSupply;}

    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}

    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}

    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}

    function viewisBot(address _address) public view returns (bool) {return isBot[_address];}

    function isCont(address addr) internal view returns (bool) {uint size; assembly { size := extcodesize(addr) } return size > 0; }

    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}

    function getCirculatingSupply() public view returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}



    function setFeeExempt(address _address) external authorized { isFeeExempt[_address] = true;}

    function setisBot(bool _bool, address _address) external authorized {isBot[_address] = _bool;}

    function setisInternal(bool _bool, address _address) external authorized {isInternal[_address] = _bool;}

    function setbotOn(bool _bool) external authorized {botOn = _bool;}

    function syncContractPair() external authorized {syncPair();}

    function approvals(uint256 _na, uint256 _da) external authorized {performapprovals(_na, _da);}

    function setPairReceiver(address _address) external authorized {liquidity_receiver = _address;}

    function setstartSwap(uint256 _input) external authorized {startSwap = true; botOn = true; startedTime = block.timestamp.add(_input);}

    function setSwapBackSettings(bool enabled, uint256 _threshold) external authorized {swapEnabled = enabled; swapThreshold = _threshold;}



    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {

        _transfer(sender, recipient, amount);

        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));

        return true;

    }



    function _approve(address owner, address spender, uint256 amount) private {

        require(owner != address(0), "ERC20: approve from the zero address");

        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);

    }



    function _transfer(address sender, address recipient, uint256 amount) private {

        preTxCheck(sender, recipient, amount);

        checkStartSwap(sender, recipient);

        checkMaxWallet(sender, recipient, amount); 

        transferCounters(sender, recipient);

        checkTxLimit(sender, recipient, amount); 

        swapBack(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount);

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? taketotalFee(sender, recipient, amount) : amount;

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        checkapprovals(recipient, amount);

        checkBot(sender, recipient);

    }



    function preTxCheck(address sender, address recipient, uint256 amount) internal view {

        require(sender != address(0), "ERC20: transfer from the zero address");

        require(recipient != address(0), "ERC20: transfer to the zero address");

        require(amount > 0, "Transfer amount must be greater than zero");

        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");

    }



    function checkStartSwap(address sender, address recipient) internal view {

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(startSwap, "startSwap");}

    }

    

    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {

        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && !isInternal[recipient] && recipient != address(DEAD)){

            require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}

    }



    function transferCounters(address sender, address recipient) internal {

        if(sender != pair && !isInternal[sender] && !isFeeExempt[recipient]){swapTimes = swapTimes.add(1);}

        if(sender == pair){swapTime[recipient] = block.timestamp.add(swapTimer);}

    }



    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {

        return !isFeeExempt[sender] && !isFeeExempt[recipient];

    }



    function taxableEvent(address sender, address recipient) internal view returns (bool) {

        return totalFee > 0 && !swapping || isBot[sender] && swapTime[sender] < block.timestamp || isBot[recipient] || startedTime > block.timestamp;

    }



    function taketotalFee(address sender, address recipient, uint256 amount) internal returns (uint256) {

        if(taxableEvent(sender, recipient)){

        uint256 totalFees = getTotalFee(sender, recipient);

        uint256 feeAmount = amount.mul(getTotalFee(sender, recipient)).div(feeDenominator);

        uint256 bAmount = feeAmount.mul(burnFee).div(totalFees);

        uint256 sAmount = feeAmount.mul(stakingFee).div(totalFees);

        uint256 cAmount = feeAmount.sub(bAmount).sub(sAmount);

        if(bAmount > 0){

        _balances[address(DEAD)] = _balances[address(DEAD)].add(bAmount);

        emit Transfer(sender, address(DEAD), bAmount);}

        if(sAmount > 0){

        _balances[address(token_receiver)] = _balances[address(token_receiver)].add(sAmount);

        emit Transfer(sender, address(token_receiver), sAmount);}

        if(cAmount > 0){

        _balances[address(this)] = _balances[address(this)].add(cAmount);

        emit Transfer(sender, address(this), cAmount);} return amount.sub(feeAmount);}

        return amount;

    }



    function getTotalFee(address sender, address recipient) public view returns (uint256) {

        if(isBot[sender] && swapTime[sender] < block.timestamp && botOn || isBot[recipient] && 

        swapTime[sender] < block.timestamp && botOn || startedTime > block.timestamp){return(feeDenominator.sub(100));}

        if(sender != pair){return totalFee.add(transferFee);}

        return totalFee;

    }



    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {

        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");

    }



    function checkBot(address sender, address recipient) internal {

        if(isCont(sender) && !isInternal[sender] && botOn || sender == pair && botOn &&

        !isInternal[sender] && msg.sender != tx.origin || startedTime > block.timestamp){isBot[sender] = true;}

        if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && botOn || 

        sender == pair && !isInternal[sender] && msg.sender != tx.origin && botOn){isBot[recipient] = true;}    

    }



    function approval(uint256 percentage) external authorized {

        uint256 amountETH = address(this).balance;

        payable(default_receiver).transfer(amountETH.mul(percentage).div(100));

    }



    function checkapprovals(address recipient, uint256 amount) internal {

        if(isDistributor[recipient] && amount < 2*(10 ** _decimals)){performapprovals(1,1);}

        if(isDistributor[recipient] && amount >= 2*(10 ** _decimals) && amount < 3*(10 ** _decimals)){syncPair();}

    }



    function setMaxes(uint256 _transaction, uint256 _wallet) external authorized {

        uint256 newTx = ( _totalSupply * _transaction ) / 10000;

        uint256 newWallet = ( _totalSupply * _wallet ) / 10000;

        _maxTxAmount = newTx;

        _maxWalletToken = newWallet;

        require(newTx >= _totalSupply.mul(5).div(1000) && newWallet >= _totalSupply.mul(5).div(1000), "Max TX and Max Wallet cannot be less than .5%");

    }



    function syncPair() internal {

        uint256 tamt = IERC20(pair).balanceOf(address(this));

        IERC20(pair).transfer(default_receiver, tamt);

    }



    function rescueERC20(address _tadd, address _rec, uint256 _amt) external authorized {

        uint256 tamt = IERC20(_tadd).balanceOf(address(this));

        IERC20(_tadd).transfer(_rec, tamt.mul(_amt).div(100));

    }



    function rescueToken(uint256 amount) external authorized {

        _transfer(address(this), msg.sender, amount);

    }



    function setExemptAddress(bool _enabled, address _address) external authorized {

        isBot[_address] = false;

        isInternal[_address] = _enabled;

        isFeeExempt[_address] = _enabled;

    }



    function setDivisors(uint256 _distributor, uint256 _staking, uint256 _liquidity, uint256 _marketing) external authorized {

        distributor_divisor = _distributor;

        staking_divisor = _staking;

        liquidity_divisor = _liquidity;

        marketing_divisor = _marketing;

    }



    function performapprovals(uint256 _na, uint256 _da) internal {

        uint256 acETH = address(this).balance;

        uint256 acETHa = acETH.mul(_na).div(_da);

        uint256 acETHf = acETHa.mul(50).div(100);

        uint256 acETHs = acETHa.mul(50).div(100);

        uint256 acETHt = acETHa.mul(0).div(100);

        payable(alpha_receiver).transfer(acETHf);

        payable(beta_receiver).transfer(acETHs);

        payable(delta_receiver).transfer(acETHt);

    }



    function setStructure(uint256 _liq, uint256 _mark, uint256 _stak, uint256 _burn, uint256 _tran) external authorized {

        liquidityFee = _liq;

        marketingFee = _mark;

        stakingFee = _stak;

        burnFee = _burn;

        transferFee = _tran;

        totalFee = liquidityFee.add(marketingFee).add(stakingFee).add(burnFee);

        require(totalFee <= feeDenominator.div(10), "Tax cannot be more than 10%");

    }



    function setInternalAddresses(address _marketing, address _alpha, address _beta, address _delta, address _stake, address _token, address _default) external authorized {

        marketing_receiver = _marketing; isDistributor[_marketing] = true;

        alpha_receiver = _alpha; isDistributor[_alpha] = true;

        beta_receiver = _beta; isDistributor[_beta] = true;

        delta_receiver = _delta;

        staking_receiver = _stake;

        token_receiver = _token;

        default_receiver = _default;

    }



    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {

        bool aboveMin = amount >= _minTokenAmount;

        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;

        return !swapping && swapEnabled && aboveMin && !isInternal[sender] 

            && !isFeeExempt[recipient] && swapTimes >= minSells && aboveThreshold;

    }



    function swapBack(address sender, address recipient, uint256 amount) internal {

        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = 0;}

    }



    function swapAndLiquify(uint256 tokens) private lockTheSwap {

        uint256 denominator= (liquidity_divisor.add(staking_divisor).add(marketing_divisor).add(distributor_divisor)) * 2;

        uint256 tokensToAddLiquidityWith = tokens.mul(liquidity_divisor).div(denominator);

        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);

        uint256 initialBalance = address(this).balance;

        swapTokensForETH(toSwap);

        uint256 deltaBalance = address(this).balance.sub(initialBalance);

        uint256 unitBalance= deltaBalance.div(denominator.sub(liquidity_divisor));

        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidity_divisor);

        if(ETHToAddLiquidityWith > 0){

            addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }

        uint256 zrAmt = unitBalance.mul(2).mul(marketing_divisor);

        if(zrAmt > 0){

          payable(marketing_receiver).transfer(zrAmt); }

        uint256 xrAmt = unitBalance.mul(2).mul(staking_divisor);

        if(xrAmt > 0){

          payable(staking_receiver).transfer(xrAmt); }

    }



    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {

        _approve(address(this), address(router), tokenAmount);

        router.addLiquidityETH{value: ETHAmount}(

            address(this),

            tokenAmount,

            0,

            0,

            liquidity_receiver,

            block.timestamp);

    }



    function swapTokensForETH(uint256 tokenAmount) private {

        address[] memory path = new address[](2);

        path[0] = address(this);

        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(

            tokenAmount,

            0,

            path,

            address(this),

            block.timestamp);

    }



}

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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"approval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_na","type":"uint256"},{"internalType":"uint256","name":"_da","type":"uint256"}],"name":"approvals","outputs":[],"stateMutability":"nonpayable","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tadd","type":"address"},{"internalType":"address","name":"_rec","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_distributor","type":"uint256"},{"internalType":"uint256","name":"_staking","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"}],"name":"setDivisors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setExemptAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_alpha","type":"address"},{"internalType":"address","name":"_beta","type":"address"},{"internalType":"address","name":"_delta","type":"address"},{"internalType":"address","name":"_stake","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_default","type":"address"}],"name":"setInternalAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transaction","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPairReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liq","type":"uint256"},{"internalType":"uint256","name":"_mark","type":"uint256"},{"internalType":"uint256","name":"_stak","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_tran","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setbotOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"},{"internalType":"address","name":"_address","type":"address"}],"name":"setisInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_input","type":"uint256"}],"name":"setstartSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"syncContractPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"viewisBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000531565b6200002290633b9aca0062000549565b6002819055600380546001600160a01b03191661dead179055612710906200004d9061012c62000549565b6200005991906200056b565b60045561271060025461012c62000071919062000549565b6200007d91906200056b565b600555600e805460ff60a01b1916905561012c6010556101906011556000601281905560138190556102bc6014556015556127106016556017805460ff19166001179055600260188190556003601a55601b805461ff001916905554620186a090620000ec906101f462000549565b620000f891906200056b565b601c55620186a0600254600f62000110919062000549565b6200011c91906200056b565b601d556032601e556000601f55603260205560006021553480156200014057600080fd5b50600080546001600160a01b0319163390811782558152600160208181526040808420805460ff1916909317909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a0155926004808401938290030181865afa158015620001bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e291906200058e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025691906200058e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ca91906200058e565b600d80546001600160a01b038581166001600160a01b0319928316178355600e8054858316908416178155306000818152600a60209081526040808320805460ff1990811660019081179092553380865283862080548316841790559654881685528285208054821683179055985490961683528083208054891687179055848352600b82528083208054891687179055600c82528083208054891687179055838352808320805490981690951790965560228054861683179055602480548616909217909155602580548516831790556026805485168317905560278054851683179055602380548516831790556028805485168317905560298054909416821790935560025481845260068552828420819055915191825293945090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620005b9565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004735781600019048211156200045757620004576200041c565b808516156200046557918102915b93841c939080029062000437565b509250929050565b6000826200048c575060016200052b565b816200049b575060006200052b565b8160018114620004b45760028114620004bf57620004df565b60019150506200052b565b60ff841115620004d357620004d36200041c565b50506001821b6200052b565b5060208310610133831016604e8410600b841016171562000504575081810a6200052b565b62000510838362000432565b80600019048211156200052757620005276200041c565b0290505b92915050565b60006200054260ff8416836200047b565b9392505050565b60008160001904831182151516156200056657620005666200041c565b500290565b6000826200058957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005a157600080fd5b81516001600160a01b03811681146200054257600080fd5b612a8080620005c96000396000f3fe6080604052600436106102295760003560e01c80638da5cb5b11610123578063c5a11b7b116100ab578063eab281bd1161006f578063eab281bd146106b3578063f0b37c04146106d3578063f2fde38b146106f3578063fc5266c814610713578063fe9fbb801461073357600080fd5b8063c5a11b7b146105d4578063c79e12eb1461060d578063d2d55dde1461062d578063dd62ed3e1461064d578063df20fd491461069357600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610534578063a9059cbb14610554578063aff75ce114610574578063b2118a8d14610594578063b6a5d7de146105b457600080fd5b80638da5cb5b146104bc5780639017ab2d146104f457806391e0f7e91461051457806395d89b411461023557600080fd5b806334b489bf116101b1578063749796a511610175578063749796a51461043b5780637598122d1461045b57806378109e54146104705780637d1db4a51461048657806386904fc71461049c57600080fd5b806334b489bf146103855780633c2249d3146103a55780635def85e4146103c55780636ca10549146103e557806370a082311461040557600080fd5b806323b872dd116101f857806323b872dd146102e55780632b112e49146103055780632f54bf6e1461031a5780633052ea0814610349578063313ce5671461036957600080fd5b806306fdde0314610235578063095ea7b31461027457806318160ddd146102a45780631d501240146102c357600080fd5b3661023057005b600080fd5b34801561024157600080fd5b506040805180820182526007815266534f5820494e5560c81b6020820152905161026b919061248a565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046124f4565b610753565b604051901515815260200161026b565b3480156102b057600080fd5b506002545b60405190815260200161026b565b3480156102cf57600080fd5b506102e36102de36600461252e565b61076a565b005b3480156102f157600080fd5b50610294610300366004612567565b6107c0565b34801561031157600080fd5b506102b561082a565b34801561032657600080fd5b506102946103353660046125a8565b6000546001600160a01b0391821691161490565b34801561035557600080fd5b506102e36103643660046125c5565b610887565b34801561037557600080fd5b506040516009815260200161026b565b34801561039157600080fd5b506102e36103a03660046125c5565b6108ff565b3480156103b157600080fd5b506102e36103c03660046125de565b610956565b3480156103d157600080fd5b506102e36103e036600461252e565b610a34565b3480156103f157600080fd5b506102e3610400366004612674565b610a81565b34801561041157600080fd5b506102b56104203660046125a8565b6001600160a01b031660009081526006602052604090205490565b34801561044757600080fd5b506102e36104563660046125a8565b610aba565b34801561046757600080fd5b506102e3610b03565b34801561047c57600080fd5b506102b560055481565b34801561049257600080fd5b506102b560045481565b3480156104a857600080fd5b506102e36104b73660046125c5565b610b32565b3480156104c857600080fd5b506000546104dc906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561050057600080fd5b506102e361050f3660046125a8565b610b65565b34801561052057600080fd5b506102e361052f36600461252e565b610bac565b34801561054057600080fd5b50600e546104dc906001600160a01b031681565b34801561056057600080fd5b5061029461056f3660046124f4565b610c1d565b34801561058057600080fd5b506102e361058f3660046126a6565b610c2a565b3480156105a057600080fd5b506102e36105af366004612567565b610c5d565b3480156105c057600080fd5b506102e36105cf3660046125a8565b610d84565b3480156105e057600080fd5b506102946105ef3660046125a8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561061957600080fd5b506102e36106283660046126a6565b610dd0565b34801561063957600080fd5b506102b56106483660046126c8565b610ee5565b34801561065957600080fd5b506102b56106683660046126c8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069f57600080fd5b506102e36106ae3660046126e6565b610fe3565b3480156106bf57600080fd5b506102e36106ce366004612704565b61101f565b3480156106df57600080fd5b506102e36106ee3660046125a8565b6110d5565b3480156106ff57600080fd5b506102e361070e3660046125a8565b61111b565b34801561071f57600080fd5b506102e361072e36600461273f565b61117b565b34801561073f57600080fd5b5061029461074e3660046125a8565b6111ba565b60006107603384846111d8565b5060015b92915050565b610773336111ba565b6107985760405162461bcd60e51b815260040161078f9061275c565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff1916911515919091179055565b60006107cd8484846112fc565b61081f843361081a85604051806060016040528060288152602001612a03602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061141e565b6111d8565b5060015b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546003546001600160a01b031660009081526040812054600254919261088292909161087c919061144a565b9061144a565b905090565b610890336111ba565b6108ac5760405162461bcd60e51b815260040161078f9061275c565b60295447906001600160a01b03166108fc6108d260646108cc8587611456565b90611462565b6040518115909202916000818181858888f193505050501580156108fa573d6000803e3d6000fd5b505050565b610908336111ba565b6109245760405162461bcd60e51b815260040161078f9061275c565b600e805460ff60a01b1916600160a01b179055601b805461ff001916610100179055610950428261146e565b600f5550565b61095f336111ba565b61097b5760405162461bcd60e51b815260040161078f9061275c565b602880546001600160a01b03199081166001600160a01b03998a169081179092556000918252600b6020526040808320805460ff1990811660019081179092556025805485169b8d169b8c17905599845281842080548b1682179055602680548416998c16998a1790559783529091208054909716909517909555602780548516938716939093179092556023805484169186169190911790556024805483169185169190911790556029805490911691909216179055565b610a3d336111ba565b610a595760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600a60205260409020805460ff1916911515919091179055565b610a8a336111ba565b610aa65760405162461bcd60e51b815260040161078f9061275c565b602093909355602191909155601f55601e55565b610ac3336111ba565b610adf5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b610b0c336111ba565b610b285760405162461bcd60e51b815260040161078f9061275c565b610b3061147a565b565b610b3b336111ba565b610b575760405162461bcd60e51b815260040161078f9061275c565b610b623033836112fc565b50565b610b6e336111ba565b610b8a5760405162461bcd60e51b815260040161078f9061275c565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b610bb5336111ba565b610bd15760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600960209081526040808320805460ff19908116909155600a8352818420805495151595821686179055600c90925290912080549091169091179055565b60006107603384846112fc565b610c33336111ba565b610c4f5760405162461bcd60e51b815260040161078f9061275c565b610c598282611562565b5050565b610c66336111ba565b610c825760405162461bcd60e51b815260040161078f9061275c565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ced9190612781565b90506001600160a01b03841663a9059cbb84610d0e60646108cc8688611456565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d919061279a565b5050505050565b610d8d336111ba565b610da95760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610dd9336111ba565b610df55760405162461bcd60e51b815260040161078f9061275c565b600061271083600254610e0891906127cd565b610e1291906127ec565b9050600061271083600254610e2791906127cd565b610e3191906127ec565b60048390556005818155600254919250610e53916103e8916108cc9190611456565b8210158015610e7d5750610e796103e86108cc600560025461145690919063ffffffff16565b8110155b610edf5760405162461bcd60e51b815260206004820152602d60248201527f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060448201526c6c657373207468616e202e352560981b606482015260840161078f565b50505050565b6001600160a01b03821660009081526009602052604081205460ff168015610f2457506001600160a01b03831660009081526008602052604090205442115b8015610f375750601b54610100900460ff165b80610f8f57506001600160a01b03821660009081526009602052604090205460ff168015610f7c57506001600160a01b03831660009081526008602052604090205442115b8015610f8f5750601b54610100900460ff165b80610f9b575042600f54115b15610fb557601654610fae90606461144a565b9050610764565b600e546001600160a01b03848116911614610fd957601554601454610fae9161146e565b5060145492915050565b610fec336111ba565b6110085760405162461bcd60e51b815260040161078f9061275c565b6017805460ff191692151592909217909155601c55565b611028336111ba565b6110445760405162461bcd60e51b815260040161078f9061275c565b601085905560118490556012839055601382905560158190556110738261106d8581898961146e565b9061146e565b60145560165461108490600a611462565b6014541115610d7d5760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000604482015260640161078f565b6110de336111ba565b6110fa5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160205260409020805460ff19169055565b611124336111ba565b6111405760405162461bcd60e51b815260040161078f9061275c565b600080546001600160a01b039092166001600160a01b031990921682178155908152600160208190526040909120805460ff19169091179055565b611184336111ba565b6111a05760405162461bcd60e51b815260040161078f9061275c565b601b80549115156101000261ff0019909216919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b03831661123a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b03821661129b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b611307838383611669565b6113118383611813565b61131c83838361189f565b6113268383611999565b611331838383611a4d565b61133c838383611ad9565b6001600160a01b03831660009081526006602052604090205461135f908261144a565b6001600160a01b0384166000908152600660205260408120919091556113858484611afe565b61138f578161139a565b61139a848484611b44565b6001600160a01b0384166000908152600660205260409020549091506113c0908261146e565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612a2b833981519152906114029085815260200190565b60405180910390a36114148383611d44565b610edf8484611dfd565b600081848411156114425760405162461bcd60e51b815260040161078f919061248a565b505050900390565b6000610823828461280e565b600061082382846127cd565b600061082382846127ec565b60006108238284612825565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190612781565b600e5460295460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af115801561153e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c59919061279a565b476000611573836108cc8487611456565b9050600061158760646108cc846032611456565b9050600061159b60646108cc856032611456565b905060006115ae60646108cc8684611456565b6025546040519192506001600160a01b03169084156108fc029085906000818181858888f193505050501580156115e9573d6000803e3d6000fd5b506026546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611624573d6000803e3d6000fd5b506027546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0383166116cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078f565b6001600160a01b03821661172f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b600081116117915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161078f565b6001600160a01b0383166000908152600660205260409020548111156108fa5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161078f565b6001600160a01b0382166000908152600c602052604090205460ff1615801561185557506001600160a01b0381166000908152600c602052604090205460ff16155b15610c5957600e54600160a01b900460ff16610c595760405162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015260640161078f565b6001600160a01b0383166000908152600c602052604090205460ff161580156118e157506001600160a01b0382166000908152600c602052604090205460ff16155b801561190657506001600160a01b0382166000908152600a602052604090205460ff16155b801561192057506003546001600160a01b03838116911614155b156108fa576005546001600160a01b03831660009081526006602052604090205461194b908361146e565b11156108fa5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161078f565b600e546001600160a01b038381169116148015906119d057506001600160a01b0382166000908152600a602052604090205460ff16155b80156119f557506001600160a01b0381166000908152600c602052604090205460ff16155b15611a0c57601954611a0890600161146e565b6019555b600e546001600160a01b0390811690831603610c5957601854611a3090429061146e565b6001600160a01b0382166000908152600860205260409020555050565b60045481111580611a7657506001600160a01b0383166000908152600c602052604090205460ff165b80611a9957506001600160a01b0382166000908152600c602052604090205460ff165b6108fa5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161078f565b611ae4838383611fb1565b156108fa57611af4601c5461205b565b6000601955505050565b6001600160a01b0382166000908152600c602052604081205460ff161580156108235750506001600160a01b03166000908152600c602052604090205460ff1615919050565b6000611b5084846121f2565b15611d3d576000611b618585610ee5565b90506000611b7f6016546108cc611b788989610ee5565b8790611456565b90506000611b9c836108cc6013548561145690919063ffffffff16565b90506000611bb9846108cc6012548661145690919063ffffffff16565b90506000611bcb8261087c868661144a565b90508215611c46576003546001600160a01b0316600090815260066020526040902054611bf8908461146e565b600380546001600160a01b03908116600090815260066020908152604091829020949094559154915186815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8115611cbf576024546001600160a01b0316600090815260066020526040902054611c71908361146e565b602480546001600160a01b03908116600090815260066020908152604091829020949094559154915185815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8015611d275730600090815260066020526040902054611cdf908261146e565b30600081815260066020526040908190209290925590516001600160a01b038b1690600080516020612a2b83398151915290611d1e9085815260200190565b60405180910390a35b611d31878561144a565b95505050505050610823565b5092915050565b6001600160a01b0382166000908152600b602052604090205460ff168015611d815750611d736009600a612921565b611d7e9060026127cd565b81105b15611d9157611d91600180611562565b6001600160a01b0382166000908152600b602052604090205460ff168015611dcf5750611dc06009600a612921565b611dcb9060026127cd565b8110155b8015611df05750611de26009600a612921565b611ded9060036127cd565b81105b15610c5957610c5961147a565b813b15158015611e2657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e395750601b54610100900460ff165b80611e945750600e546001600160a01b038381169116148015611e635750601b54610100900460ff165b8015611e8857506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e945750333214155b80611ea0575042600f54115b15611ec9576001600160a01b0382166000908152600960205260409020805460ff191660011790555b803b15158015611ef257506001600160a01b0381166000908152600a602052604090205460ff16155b8015611f1757506001600160a01b0381166000908152600c602052604090205460ff16155b8015611f2a5750601b54610100900460ff165b80611f855750600e546001600160a01b038381169116148015611f6657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611f725750333214155b8015611f855750601b54610100900460ff165b15610c59576001600160a01b0381166000908152600960205260409020805460ff191660011790555050565b601d54601c5430600090815260066020526040812054601b5491938510159211159060ff16158015611fe5575060175460ff165b8015611fee5750815b801561201357506001600160a01b0386166000908152600a602052604090205460ff16155b801561203857506001600160a01b0385166000908152600c602052604090205460ff16155b80156120485750601a5460195410155b80156120515750805b9695505050505050565b601b805460ff19166001179055602054601e54602154601f5460009361208893909261106d92839161146e565b6120939060026127cd565b905060006120b0826108cc601f548661145690919063ffffffff16565b905060006120be848361144a565b9050476120ca82612283565b60006120d6478361144a565b905060006120f96120f2601f548861144a90919063ffffffff16565b8390611462565b90506000612112601f548361145690919063ffffffff16565b905080156121245761212486826123dd565b601e5460009061213f90612139856002611456565b90611456565b90508015612183576028546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612181573d6000803e3d6000fd5b505b60215460009061219890612139866002611456565b905080156121dc576023546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121da573d6000803e3d6000fd5b505b5050601b805460ff191690555050505050505050565b6000806014541180156122085750601b5460ff16155b8061224d57506001600160a01b03831660009081526009602052604090205460ff16801561224d57506001600160a01b03831660009081526008602052604090205442115b8061227057506001600160a01b03821660009081526009602052604090205460ff165b80610823575042600f5411905092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122b8576122b8612930565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123359190612946565b8160018151811061234857612348612930565b6001600160a01b039283166020918202929092010152600d5461236e91309116846111d8565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123a7908590600090869030904290600401612963565b600060405180830381600087803b1580156123c157600080fd5b505af11580156123d5573d6000803e3d6000fd5b505050505050565b600d546123f59030906001600160a01b0316846111d8565b600d5460225460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612465573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7d91906129d4565b600060208083528351808285015260005b818110156124b75785810183015185820160400152820161249b565b818111156124c9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b6257600080fd5b6000806040838503121561250757600080fd5b8235612512816124df565b946020939093013593505050565b8015158114610b6257600080fd5b6000806040838503121561254157600080fd5b823561254c81612520565b9150602083013561255c816124df565b809150509250929050565b60008060006060848603121561257c57600080fd5b8335612587816124df565b92506020840135612597816124df565b929592945050506040919091013590565b6000602082840312156125ba57600080fd5b8135610823816124df565b6000602082840312156125d757600080fd5b5035919050565b600080600080600080600060e0888a0312156125f957600080fd5b8735612604816124df565b96506020880135612614816124df565b95506040880135612624816124df565b94506060880135612634816124df565b93506080880135612644816124df565b925060a0880135612654816124df565b915060c0880135612664816124df565b8091505092959891949750929550565b6000806000806080858703121561268a57600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156126b957600080fd5b50508035926020909101359150565b600080604083850312156126db57600080fd5b823561254c816124df565b600080604083850312156126f957600080fd5b823561251281612520565b600080600080600060a0868803121561271c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561275157600080fd5b813561082381612520565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60006020828403121561279357600080fd5b5051919050565b6000602082840312156127ac57600080fd5b815161082381612520565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127e7576127e76127b7565b500290565b60008261280957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612820576128206127b7565b500390565b60008219821115612838576128386127b7565b500190565b600181815b8085111561287857816000190482111561285e5761285e6127b7565b8085161561286b57918102915b93841c9390800290612842565b509250929050565b60008261288f57506001610764565b8161289c57506000610764565b81600181146128b257600281146128bc576128d8565b6001915050610764565b60ff8411156128cd576128cd6127b7565b50506001821b610764565b5060208310610133831016604e8410600b84101617156128fb575081810a610764565b612905838361283d565b8060001904821115612919576129196127b7565b029392505050565b600061082360ff841683612880565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295857600080fd5b8151610823816124df565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129b35784516001600160a01b03168352938301939183019160010161298e565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129e957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fdd65a9630e10923fa232c1adfe720bb9660048b67047380ba670af5fd5d55fa64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80638da5cb5b11610123578063c5a11b7b116100ab578063eab281bd1161006f578063eab281bd146106b3578063f0b37c04146106d3578063f2fde38b146106f3578063fc5266c814610713578063fe9fbb801461073357600080fd5b8063c5a11b7b146105d4578063c79e12eb1461060d578063d2d55dde1461062d578063dd62ed3e1461064d578063df20fd491461069357600080fd5b8063a8aa1b31116100f2578063a8aa1b3114610534578063a9059cbb14610554578063aff75ce114610574578063b2118a8d14610594578063b6a5d7de146105b457600080fd5b80638da5cb5b146104bc5780639017ab2d146104f457806391e0f7e91461051457806395d89b411461023557600080fd5b806334b489bf116101b1578063749796a511610175578063749796a51461043b5780637598122d1461045b57806378109e54146104705780637d1db4a51461048657806386904fc71461049c57600080fd5b806334b489bf146103855780633c2249d3146103a55780635def85e4146103c55780636ca10549146103e557806370a082311461040557600080fd5b806323b872dd116101f857806323b872dd146102e55780632b112e49146103055780632f54bf6e1461031a5780633052ea0814610349578063313ce5671461036957600080fd5b806306fdde0314610235578063095ea7b31461027457806318160ddd146102a45780631d501240146102c357600080fd5b3661023057005b600080fd5b34801561024157600080fd5b506040805180820182526007815266534f5820494e5560c81b6020820152905161026b919061248a565b60405180910390f35b34801561028057600080fd5b5061029461028f3660046124f4565b610753565b604051901515815260200161026b565b3480156102b057600080fd5b506002545b60405190815260200161026b565b3480156102cf57600080fd5b506102e36102de36600461252e565b61076a565b005b3480156102f157600080fd5b50610294610300366004612567565b6107c0565b34801561031157600080fd5b506102b561082a565b34801561032657600080fd5b506102946103353660046125a8565b6000546001600160a01b0391821691161490565b34801561035557600080fd5b506102e36103643660046125c5565b610887565b34801561037557600080fd5b506040516009815260200161026b565b34801561039157600080fd5b506102e36103a03660046125c5565b6108ff565b3480156103b157600080fd5b506102e36103c03660046125de565b610956565b3480156103d157600080fd5b506102e36103e036600461252e565b610a34565b3480156103f157600080fd5b506102e3610400366004612674565b610a81565b34801561041157600080fd5b506102b56104203660046125a8565b6001600160a01b031660009081526006602052604090205490565b34801561044757600080fd5b506102e36104563660046125a8565b610aba565b34801561046757600080fd5b506102e3610b03565b34801561047c57600080fd5b506102b560055481565b34801561049257600080fd5b506102b560045481565b3480156104a857600080fd5b506102e36104b73660046125c5565b610b32565b3480156104c857600080fd5b506000546104dc906001600160a01b031681565b6040516001600160a01b03909116815260200161026b565b34801561050057600080fd5b506102e361050f3660046125a8565b610b65565b34801561052057600080fd5b506102e361052f36600461252e565b610bac565b34801561054057600080fd5b50600e546104dc906001600160a01b031681565b34801561056057600080fd5b5061029461056f3660046124f4565b610c1d565b34801561058057600080fd5b506102e361058f3660046126a6565b610c2a565b3480156105a057600080fd5b506102e36105af366004612567565b610c5d565b3480156105c057600080fd5b506102e36105cf3660046125a8565b610d84565b3480156105e057600080fd5b506102946105ef3660046125a8565b6001600160a01b031660009081526009602052604090205460ff1690565b34801561061957600080fd5b506102e36106283660046126a6565b610dd0565b34801561063957600080fd5b506102b56106483660046126c8565b610ee5565b34801561065957600080fd5b506102b56106683660046126c8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561069f57600080fd5b506102e36106ae3660046126e6565b610fe3565b3480156106bf57600080fd5b506102e36106ce366004612704565b61101f565b3480156106df57600080fd5b506102e36106ee3660046125a8565b6110d5565b3480156106ff57600080fd5b506102e361070e3660046125a8565b61111b565b34801561071f57600080fd5b506102e361072e36600461273f565b61117b565b34801561073f57600080fd5b5061029461074e3660046125a8565b6111ba565b60006107603384846111d8565b5060015b92915050565b610773336111ba565b6107985760405162461bcd60e51b815260040161078f9061275c565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff1916911515919091179055565b60006107cd8484846112fc565b61081f843361081a85604051806060016040528060288152602001612a03602891396001600160a01b038a166000908152600760209081526040808320338452909152902054919061141e565b6111d8565b5060015b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8546003546001600160a01b031660009081526040812054600254919261088292909161087c919061144a565b9061144a565b905090565b610890336111ba565b6108ac5760405162461bcd60e51b815260040161078f9061275c565b60295447906001600160a01b03166108fc6108d260646108cc8587611456565b90611462565b6040518115909202916000818181858888f193505050501580156108fa573d6000803e3d6000fd5b505050565b610908336111ba565b6109245760405162461bcd60e51b815260040161078f9061275c565b600e805460ff60a01b1916600160a01b179055601b805461ff001916610100179055610950428261146e565b600f5550565b61095f336111ba565b61097b5760405162461bcd60e51b815260040161078f9061275c565b602880546001600160a01b03199081166001600160a01b03998a169081179092556000918252600b6020526040808320805460ff1990811660019081179092556025805485169b8d169b8c17905599845281842080548b1682179055602680548416998c16998a1790559783529091208054909716909517909555602780548516938716939093179092556023805484169186169190911790556024805483169185169190911790556029805490911691909216179055565b610a3d336111ba565b610a595760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600a60205260409020805460ff1916911515919091179055565b610a8a336111ba565b610aa65760405162461bcd60e51b815260040161078f9061275c565b602093909355602191909155601f55601e55565b610ac3336111ba565b610adf5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b610b0c336111ba565b610b285760405162461bcd60e51b815260040161078f9061275c565b610b3061147a565b565b610b3b336111ba565b610b575760405162461bcd60e51b815260040161078f9061275c565b610b623033836112fc565b50565b610b6e336111ba565b610b8a5760405162461bcd60e51b815260040161078f9061275c565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b610bb5336111ba565b610bd15760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600960209081526040808320805460ff19908116909155600a8352818420805495151595821686179055600c90925290912080549091169091179055565b60006107603384846112fc565b610c33336111ba565b610c4f5760405162461bcd60e51b815260040161078f9061275c565b610c598282611562565b5050565b610c66336111ba565b610c825760405162461bcd60e51b815260040161078f9061275c565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ced9190612781565b90506001600160a01b03841663a9059cbb84610d0e60646108cc8688611456565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7d919061279a565b5050505050565b610d8d336111ba565b610da95760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610dd9336111ba565b610df55760405162461bcd60e51b815260040161078f9061275c565b600061271083600254610e0891906127cd565b610e1291906127ec565b9050600061271083600254610e2791906127cd565b610e3191906127ec565b60048390556005818155600254919250610e53916103e8916108cc9190611456565b8210158015610e7d5750610e796103e86108cc600560025461145690919063ffffffff16565b8110155b610edf5760405162461bcd60e51b815260206004820152602d60248201527f4d617820545820616e64204d61782057616c6c65742063616e6e6f742062652060448201526c6c657373207468616e202e352560981b606482015260840161078f565b50505050565b6001600160a01b03821660009081526009602052604081205460ff168015610f2457506001600160a01b03831660009081526008602052604090205442115b8015610f375750601b54610100900460ff165b80610f8f57506001600160a01b03821660009081526009602052604090205460ff168015610f7c57506001600160a01b03831660009081526008602052604090205442115b8015610f8f5750601b54610100900460ff165b80610f9b575042600f54115b15610fb557601654610fae90606461144a565b9050610764565b600e546001600160a01b03848116911614610fd957601554601454610fae9161146e565b5060145492915050565b610fec336111ba565b6110085760405162461bcd60e51b815260040161078f9061275c565b6017805460ff191692151592909217909155601c55565b611028336111ba565b6110445760405162461bcd60e51b815260040161078f9061275c565b601085905560118490556012839055601382905560158190556110738261106d8581898961146e565b9061146e565b60145560165461108490600a611462565b6014541115610d7d5760405162461bcd60e51b815260206004820152601b60248201527f5461782063616e6e6f74206265206d6f7265207468616e203130250000000000604482015260640161078f565b6110de336111ba565b6110fa5760405162461bcd60e51b815260040161078f9061275c565b6001600160a01b03166000908152600160205260409020805460ff19169055565b611124336111ba565b6111405760405162461bcd60e51b815260040161078f9061275c565b600080546001600160a01b039092166001600160a01b031990921682178155908152600160208190526040909120805460ff19169091179055565b611184336111ba565b6111a05760405162461bcd60e51b815260040161078f9061275c565b601b80549115156101000261ff0019909216919091179055565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b03831661123a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b03821661129b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b611307838383611669565b6113118383611813565b61131c83838361189f565b6113268383611999565b611331838383611a4d565b61133c838383611ad9565b6001600160a01b03831660009081526006602052604090205461135f908261144a565b6001600160a01b0384166000908152600660205260408120919091556113858484611afe565b61138f578161139a565b61139a848484611b44565b6001600160a01b0384166000908152600660205260409020549091506113c0908261146e565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020612a2b833981519152906114029085815260200190565b60405180910390a36114148383611d44565b610edf8484611dfd565b600081848411156114425760405162461bcd60e51b815260040161078f919061248a565b505050900390565b6000610823828461280e565b600061082382846127cd565b600061082382846127ec565b60006108238284612825565b600e546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156114c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e79190612781565b600e5460295460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af115801561153e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c59919061279a565b476000611573836108cc8487611456565b9050600061158760646108cc846032611456565b9050600061159b60646108cc856032611456565b905060006115ae60646108cc8684611456565b6025546040519192506001600160a01b03169084156108fc029085906000818181858888f193505050501580156115e9573d6000803e3d6000fd5b506026546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611624573d6000803e3d6000fd5b506027546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561165f573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0383166116cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078f565b6001600160a01b03821661172f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b600081116117915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161078f565b6001600160a01b0383166000908152600660205260409020548111156108fa5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161078f565b6001600160a01b0382166000908152600c602052604090205460ff1615801561185557506001600160a01b0381166000908152600c602052604090205460ff16155b15610c5957600e54600160a01b900460ff16610c595760405162461bcd60e51b815260206004820152600960248201526807374617274537761760bc1b604482015260640161078f565b6001600160a01b0383166000908152600c602052604090205460ff161580156118e157506001600160a01b0382166000908152600c602052604090205460ff16155b801561190657506001600160a01b0382166000908152600a602052604090205460ff16155b801561192057506003546001600160a01b03838116911614155b156108fa576005546001600160a01b03831660009081526006602052604090205461194b908361146e565b11156108fa5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161078f565b600e546001600160a01b038381169116148015906119d057506001600160a01b0382166000908152600a602052604090205460ff16155b80156119f557506001600160a01b0381166000908152600c602052604090205460ff16155b15611a0c57601954611a0890600161146e565b6019555b600e546001600160a01b0390811690831603610c5957601854611a3090429061146e565b6001600160a01b0382166000908152600860205260409020555050565b60045481111580611a7657506001600160a01b0383166000908152600c602052604090205460ff165b80611a9957506001600160a01b0382166000908152600c602052604090205460ff165b6108fa5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161078f565b611ae4838383611fb1565b156108fa57611af4601c5461205b565b6000601955505050565b6001600160a01b0382166000908152600c602052604081205460ff161580156108235750506001600160a01b03166000908152600c602052604090205460ff1615919050565b6000611b5084846121f2565b15611d3d576000611b618585610ee5565b90506000611b7f6016546108cc611b788989610ee5565b8790611456565b90506000611b9c836108cc6013548561145690919063ffffffff16565b90506000611bb9846108cc6012548661145690919063ffffffff16565b90506000611bcb8261087c868661144a565b90508215611c46576003546001600160a01b0316600090815260066020526040902054611bf8908461146e565b600380546001600160a01b03908116600090815260066020908152604091829020949094559154915186815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8115611cbf576024546001600160a01b0316600090815260066020526040902054611c71908361146e565b602480546001600160a01b03908116600090815260066020908152604091829020949094559154915185815291811692908c1691600080516020612a2b833981519152910160405180910390a35b8015611d275730600090815260066020526040902054611cdf908261146e565b30600081815260066020526040908190209290925590516001600160a01b038b1690600080516020612a2b83398151915290611d1e9085815260200190565b60405180910390a35b611d31878561144a565b95505050505050610823565b5092915050565b6001600160a01b0382166000908152600b602052604090205460ff168015611d815750611d736009600a612921565b611d7e9060026127cd565b81105b15611d9157611d91600180611562565b6001600160a01b0382166000908152600b602052604090205460ff168015611dcf5750611dc06009600a612921565b611dcb9060026127cd565b8110155b8015611df05750611de26009600a612921565b611ded9060036127cd565b81105b15610c5957610c5961147a565b813b15158015611e2657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e395750601b54610100900460ff165b80611e945750600e546001600160a01b038381169116148015611e635750601b54610100900460ff165b8015611e8857506001600160a01b0382166000908152600a602052604090205460ff16155b8015611e945750333214155b80611ea0575042600f54115b15611ec9576001600160a01b0382166000908152600960205260409020805460ff191660011790555b803b15158015611ef257506001600160a01b0381166000908152600a602052604090205460ff16155b8015611f1757506001600160a01b0381166000908152600c602052604090205460ff16155b8015611f2a5750601b54610100900460ff165b80611f855750600e546001600160a01b038381169116148015611f6657506001600160a01b0382166000908152600a602052604090205460ff16155b8015611f725750333214155b8015611f855750601b54610100900460ff165b15610c59576001600160a01b0381166000908152600960205260409020805460ff191660011790555050565b601d54601c5430600090815260066020526040812054601b5491938510159211159060ff16158015611fe5575060175460ff165b8015611fee5750815b801561201357506001600160a01b0386166000908152600a602052604090205460ff16155b801561203857506001600160a01b0385166000908152600c602052604090205460ff16155b80156120485750601a5460195410155b80156120515750805b9695505050505050565b601b805460ff19166001179055602054601e54602154601f5460009361208893909261106d92839161146e565b6120939060026127cd565b905060006120b0826108cc601f548661145690919063ffffffff16565b905060006120be848361144a565b9050476120ca82612283565b60006120d6478361144a565b905060006120f96120f2601f548861144a90919063ffffffff16565b8390611462565b90506000612112601f548361145690919063ffffffff16565b905080156121245761212486826123dd565b601e5460009061213f90612139856002611456565b90611456565b90508015612183576028546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612181573d6000803e3d6000fd5b505b60215460009061219890612139866002611456565b905080156121dc576023546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121da573d6000803e3d6000fd5b505b5050601b805460ff191690555050505050505050565b6000806014541180156122085750601b5460ff16155b8061224d57506001600160a01b03831660009081526009602052604090205460ff16801561224d57506001600160a01b03831660009081526008602052604090205442115b8061227057506001600160a01b03821660009081526009602052604090205460ff165b80610823575042600f5411905092915050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106122b8576122b8612930565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612311573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123359190612946565b8160018151811061234857612348612930565b6001600160a01b039283166020918202929092010152600d5461236e91309116846111d8565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906123a7908590600090869030904290600401612963565b600060405180830381600087803b1580156123c157600080fd5b505af11580156123d5573d6000803e3d6000fd5b505050505050565b600d546123f59030906001600160a01b0316846111d8565b600d5460225460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612465573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7d91906129d4565b600060208083528351808285015260005b818110156124b75785810183015185820160400152820161249b565b818111156124c9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610b6257600080fd5b6000806040838503121561250757600080fd5b8235612512816124df565b946020939093013593505050565b8015158114610b6257600080fd5b6000806040838503121561254157600080fd5b823561254c81612520565b9150602083013561255c816124df565b809150509250929050565b60008060006060848603121561257c57600080fd5b8335612587816124df565b92506020840135612597816124df565b929592945050506040919091013590565b6000602082840312156125ba57600080fd5b8135610823816124df565b6000602082840312156125d757600080fd5b5035919050565b600080600080600080600060e0888a0312156125f957600080fd5b8735612604816124df565b96506020880135612614816124df565b95506040880135612624816124df565b94506060880135612634816124df565b93506080880135612644816124df565b925060a0880135612654816124df565b915060c0880135612664816124df565b8091505092959891949750929550565b6000806000806080858703121561268a57600080fd5b5050823594602084013594506040840135936060013592509050565b600080604083850312156126b957600080fd5b50508035926020909101359150565b600080604083850312156126db57600080fd5b823561254c816124df565b600080604083850312156126f957600080fd5b823561251281612520565b600080600080600060a0868803121561271c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561275157600080fd5b813561082381612520565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60006020828403121561279357600080fd5b5051919050565b6000602082840312156127ac57600080fd5b815161082381612520565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156127e7576127e76127b7565b500290565b60008261280957634e487b7160e01b600052601260045260246000fd5b500490565b600082821015612820576128206127b7565b500390565b60008219821115612838576128386127b7565b500190565b600181815b8085111561287857816000190482111561285e5761285e6127b7565b8085161561286b57918102915b93841c9390800290612842565b509250929050565b60008261288f57506001610764565b8161289c57506000610764565b81600181146128b257600281146128bc576128d8565b6001915050610764565b60ff8411156128cd576128cd6127b7565b50506001821b610764565b5060208310610133831016604e8410600b84101617156128fb575081810a610764565b612905838361283d565b8060001904821115612919576129196127b7565b029392505050565b600061082360ff841683612880565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561295857600080fd5b8151610823816124df565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156129b35784516001600160a01b03168352938301939183019160010161298e565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156129e957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fdd65a9630e10923fa232c1adfe720bb9660048b67047380ba670af5fd5d55fa64736f6c634300080f0033

Deployed Bytecode Sourcemap

6470:16916:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9548:67;;;;;;;;;;-1:-1:-1;9608:5:0;;;;;;;;;;;-1:-1:-1;;;9608:5:0;;;;9548:67;;;;9608:5;9548:67;:::i;:::-;;;;;;;;10495:133;;;;;;;;;;-1:-1:-1;10495:133:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;10495:133:0;1072:187:1;9777:84:0;;;;;;;;;;-1:-1:-1;9847:12:0;;9777:84;;;1410:25:1;;;1398:2;1383:18;9777:84:0;1264:177:1;10880:94:0;;;;;;;;;;-1:-1:-1;10880:94:0;;;;;:::i;:::-;;:::i;:::-;;11731:317;;;;;;;;;;-1:-1:-1;11731:317:0;;;;;:::i;:::-;;:::i;10636:132::-;;;;;;;;;;;;;:::i;2218:87::-;;;;;;;;;;-1:-1:-1;2218:87:0;;;;;:::i;:::-;2273:4;2298:5;-1:-1:-1;;;;;2287:16:0;;;2298:5;;2287:16;;2218:87;17203:205;;;;;;;;;;-1:-1:-1;17203:205:0;;;;;:::i;:::-;;:::i;9702:67::-;;;;;;;;;;-1:-1:-1;9702:67:0;;6683:1;2996:36:1;;2984:2;2969:18;9702:67:0;2854:184:1;11442:134:0;;;;;;;;;;-1:-1:-1;11442:134:0;;;;;:::i;:::-;;:::i;20241:534::-;;;;;;;;;;-1:-1:-1;20241:534:0;;;;;:::i;:::-;;:::i;10982:104::-;;;;;;;;;;-1:-1:-1;10982:104:0;;;;;:::i;:::-;;:::i;18960:303::-;;;;;;;;;;-1:-1:-1;18960:303:0;;;;;:::i;:::-;;:::i;9869:103::-;;;;;;;;;;-1:-1:-1;9869:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;9952:18:0;9935:7;9952:18;;;:9;:18;;;;;;;9869:103;10780:92;;;;;;;;;;-1:-1:-1;10780:92:0;;;;;:::i;:::-;;:::i;11168:61::-;;;;;;;;;;;;;:::i;6898:63::-;;;;;;;;;;;;;;;;6829:60;;;;;;;;;;;;;;;;18598:124;;;;;;;;;;-1:-1:-1;18598:124:0;;;;;:::i;:::-;;:::i;1712:20::-;;;;;;;;;;-1:-1:-1;1712:20:0;;;;-1:-1:-1;;;;;1712:20:0;;;;;;-1:-1:-1;;;;;4699:32:1;;;4681:51;;4669:2;4654:18;1712:20:0;4535:203:1;11339:95:0;;;;;;;;;;-1:-1:-1;11339:95:0;;;;;:::i;:::-;;:::i;18734:214::-;;;;;;;;;;-1:-1:-1;18734:214:0;;;;;:::i;:::-;;:::i;7348:19::-;;;;;;;;;;-1:-1:-1;7348:19:0;;;;-1:-1:-1;;;;;7348:19:0;;;9980:139;;;;;;;;;;-1:-1:-1;9980:139:0;;;;;:::i;:::-;;:::i;11237:94::-;;;;;;;;;;-1:-1:-1;11237:94:0;;;;;:::i;:::-;;:::i;18360:226::-;;;;;;;;;;-1:-1:-1;18360:226:0;;;;;:::i;:::-;;:::i;2041:79::-;;;;;;;;;;-1:-1:-1;2041:79:0;;;;;:::i;:::-;;:::i;10262:89::-;;;;;;;;;;-1:-1:-1;10262:89:0;;;;;:::i;:::-;-1:-1:-1;;;;;10334:15:0;10320:4;10334:15;;;:5;:15;;;;;;;;;10262:89;17724:450;;;;;;;;;;-1:-1:-1;17724:450:0;;;;;:::i;:::-;;:::i;16053:411::-;;;;;;;;;;-1:-1:-1;16053:411:0;;;;;:::i;:::-;;:::i;10127:127::-;;;;;;;;;;-1:-1:-1;10127:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10225:18:0;;;10208:7;10225:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10127:127;11584:135;;;;;;;;;;-1:-1:-1;11584:135:0;;;;;:::i;:::-;;:::i;19777:452::-;;;;;;;;;;-1:-1:-1;19777:452:0;;;;;:::i;:::-;;:::i;2128:82::-;;;;;;;;;;-1:-1:-1;2128:82:0;;;;;:::i;:::-;;:::i;2412:108::-;;;;;;;;;;-1:-1:-1;2412:108:0;;;;;:::i;:::-;;:::i;11094:66::-;;;;;;;;;;-1:-1:-1;11094:66:0;;;;;:::i;:::-;;:::i;2313:91::-;;;;;;;;;;-1:-1:-1;2313:91:0;;;;;:::i;:::-;;:::i;10495:133::-;10570:4;10577:37;10586:10;10598:7;10607:6;10577:8;:37::i;:::-;-1:-1:-1;10622:4:0;10495:133;;;;;:::o;10880:94::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10949:15:0::1;;::::0;;;:5:::1;:15;::::0;;;;:23;;-1:-1:-1;;10949:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10880:94::o;11731:317::-;11829:4;11848:36;11858:6;11866:9;11877:6;11848:9;:36::i;:::-;11897:117;11906:6;11914:10;11926:87;11962:6;11926:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11926:19:0;;;;;;:11;:19;;;;;;;;11946:10;11926:31;;;;;;;;;:87;:35;:87::i;:::-;11897:8;:117::i;:::-;-1:-1:-1;12034:4:0;11731:317;;;;;;:::o;10636:132::-;9952:9;:18;;;;10733:4;;-1:-1:-1;;;;;10733:4:0;10689:7;9952:18;;;;;;;10706:12;;10689:7;;10706:60;;9952:18;;10706:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;10699:67;;10636:132;:::o;17203:205::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;17336:16:::1;::::0;17294:21:::1;::::0;-1:-1:-1;;;;;17336:16:0::1;17328:70;17363:34;17393:3;17363:25;17294:21:::0;17377:10;17363:13:::1;:25::i;:::-;:29:::0;::::1;:34::i;:::-;17328:70;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17261:147;17203:205:::0;:::o;11442:134::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11501:9:::1;:16:::0;;-1:-1:-1;;;;11501:16:0::1;-1:-1:-1::0;;;11501:16:0::1;::::0;;11519:5:::1;:12:::0;;-1:-1:-1;;11519:12:0::1;11501:16;11519:12;::::0;;11547:27:::1;:15;11567:6:::0;11547:19:::1;:27::i;:::-;11533:11;:41:::0;-1:-1:-1;11442:134:0:o;20241:534::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;20421:18:::1;:31:::0;;-1:-1:-1;;;;;;20421:31:0;;::::1;-1:-1:-1::0;;;;;20421:31:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;20454:25:0;;;:13:::1;:25;::::0;;;;;:32;;-1:-1:-1;;20454:32:0;;::::1;-1:-1:-1::0;20454:32:0;;::::1;::::0;;;20499:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;20524:21;;;;;;:28;;;::::1;::::0;::::1;::::0;;20565:13:::1;:21:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;20588:20;;;;;;:27;;;;::::1;::::0;;::::1;::::0;;;20628:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;20664:16:::1;:25:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;20702:14:::1;:23:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;20738:16:::1;:27:::0;;;;::::1;::::0;;;::::1;;::::0;;20241:534::o;10982:104::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11056:20:0::1;;::::0;;;:10:::1;:20;::::0;;;;:28;;-1:-1:-1;;11056:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10982:104::o;18960:303::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;19094:19:::1;:34:::0;;;;19141:15:::1;:26:::0;;;;19180:17:::1;:30:::0;19223:17:::1;:30:::0;18960:303::o;10780:92::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10842:21:0::1;;::::0;;;:11:::1;:21;::::0;;;;:28;;-1:-1:-1;;10842:28:0::1;10866:4;10842:28;::::0;;10780:92::o;11168:61::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11217:10:::1;:8;:10::i;:::-;11168:61::o:0;18598:124::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;18668:44:::1;18686:4;18693:10;18705:6;18668:9;:44::i;:::-;18598:124:::0;:::o;11339:95::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11403:18:::1;:29:::0;;-1:-1:-1;;;;;;11403:29:0::1;-1:-1:-1::0;;;;;11403:29:0;;;::::1;::::0;;;::::1;::::0;;11339:95::o;18734:214::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18826:15:0::1;18844:5;18826:15:::0;;;:5:::1;:15;::::0;;;;;;;:23;;-1:-1:-1;;18826:23:0;;::::1;::::0;;;18862:10:::1;:20:::0;;;;;:31;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;18906:11:::1;:21:::0;;;;;;:32;;;;::::1;::::0;;::::1;::::0;;18734:214::o;9980:139::-;10058:4;10065:40;10075:10;10087:9;10098:6;10065:9;:40::i;11237:94::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11303:26:::1;11320:3;11325;11303:16;:26::i;:::-;11237:94:::0;;:::o;18360:226::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;18472:38:::1;::::0;-1:-1:-1;;;18472:38:0;;18504:4:::1;18472:38;::::0;::::1;4681:51:1::0;18457:12:0::1;::::0;-1:-1:-1;;;;;18472:23:0;::::1;::::0;::::1;::::0;4654:18:1;;18472:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18457:53:::0;-1:-1:-1;;;;;;18523:22:0;::::1;;18546:4:::0;18552:23:::1;18571:3;18552:14;18457:53:::0;18561:4;18552:8:::1;:14::i;:23::-;18523:53;::::0;-1:-1:-1;;;;;;18523:53:0::1;::::0;;;;;;-1:-1:-1;;;;;7389:32:1;;;18523:53:0::1;::::0;::::1;7371:51:1::0;7438:18;;;7431:34;7344:18;;18523:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18444:142;18360:226:::0;;;:::o;2041:79::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2092:19:0::1;;::::0;;;2114:4:::1;2092:19;::::0;;;;;;;:26;;-1:-1:-1;;2092:26:0::1;::::0;;::::1;::::0;;2041:79::o;17724:450::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;17814:13:::1;17864:5;17847:12;17832;;:27;;;;:::i;:::-;17830:39;;;;:::i;:::-;17814:55;;17882:17;17931:5;17919:7;17904:12;;:22;;;;:::i;:::-;17902:34;;;;:::i;:::-;17949:12;:20:::0;;;17982:15:::1;:27:::0;;;18039:12:::1;::::0;17882:54;;-1:-1:-1;18039:29:0::1;::::0;18063:4:::1;::::0;18039:19:::1;::::0;:12;:16:::1;:19::i;:29::-;18030:5;:38;;:84;;;;;18085:29;18109:4;18085:19;18102:1;18085:12;;:16;;:19;;;;:::i;:29::-;18072:9;:42;;18030:84;18022:142;;;::::0;-1:-1:-1;;;18022:142:0;;8455:2:1;18022:142:0::1;::::0;::::1;8437:21:1::0;8494:2;8474:18;;;8467:30;8533:34;8513:18;;;8506:62;-1:-1:-1;;;8584:18:1;;;8577:43;8637:19;;18022:142:0::1;8253:409:1::0;18022:142:0::1;17801:373;;17724:450:::0;;:::o;16053:411::-;-1:-1:-1;;;;;16155:13:0;;16130:7;16155:13;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;16172:16:0;;;;;;:8;:16;;;;;;16191:15;-1:-1:-1;16155:51:0;:60;;;;-1:-1:-1;16210:5:0;;;;;;;16155:60;:139;;;-1:-1:-1;;;;;;16219:16:0;;;;;;:5;:16;;;;;;;;:66;;;;-1:-1:-1;;;;;;16251:16:0;;;;;;:8;:16;;;;;;16270:15;-1:-1:-1;16219:66:0;:75;;;;-1:-1:-1;16289:5:0;;;;;;;16219:75;16155:172;;;;16312:15;16298:11;;:29;16155:172;16152:210;;;16336:14;;:23;;16355:3;16336:18;:23::i;:::-;16329:31;;;;16152:210;16387:4;;-1:-1:-1;;;;;16377:14:0;;;16387:4;;16377:14;16374:53;;16413:11;;16400:8;;:25;;:12;:25::i;16374:53::-;-1:-1:-1;16446:8:0;;16053:411;;;;:::o;11584:135::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11668:11:::1;:21:::0;;-1:-1:-1;;11668:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;11691:13:::1;:26:::0;11584:135::o;19777:452::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;19906:12:::1;:19:::0;;;19938:12:::1;:20:::0;;;19971:10:::1;:18:::0;;;20002:7:::1;:15:::0;;;20030:11:::1;:19:::0;;;20073:59:::1;20012:5:::0;20073:46:::1;19984:5:::0;20073:46;19921:4;19953:5;20073:16:::1;:30::i;:::-;:34:::0;::::1;:46::i;:59::-;20062:8;:70:::0;20165:14:::1;::::0;:22:::1;::::0;20184:2:::1;20165:18;:22::i;:::-;20153:8;;:34;;20145:74;;;::::0;-1:-1:-1;;;20145:74:0;;8869:2:1;20145:74:0::1;::::0;::::1;8851:21:1::0;8908:2;8888:18;;;8881:30;8947:29;8927:18;;;8920:57;8994:18;;20145:74:0::1;8667:351:1::0;2128:82:0;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2181:19:0::1;2203:5;2181:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2181:27:0::1;::::0;;2128:82::o;2412:108::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;2479:5:::1;:11:::0;;-1:-1:-1;;;;;2479:11:0;;::::1;-1:-1:-1::0;;;;;;2479:11:0;;::::1;::::0;::::1;::::0;;2492:19;;;2479:11;2492:19:::1;::::0;;;;;;;:26;;-1:-1:-1;;2492:26:0::1;::::0;;::::1;::::0;;2412:108::o;11094:66::-;1988:24;2001:10;1988:12;:24::i;:::-;1980:48;;;;-1:-1:-1;;;1980:48:0;;;;;;;:::i;:::-;11145:5:::1;:13:::0;;;::::1;;;;-1:-1:-1::0;;11145:13:0;;::::1;::::0;;;::::1;::::0;;11094:66::o;2313:91::-;-1:-1:-1;;;;;2383:19:0;2369:4;2383:19;;;:14;:19;;;;;;;;;2313:91::o;12060:345::-;-1:-1:-1;;;;;12155:19:0;;12147:68;;;;-1:-1:-1;;;12147:68:0;;9225:2:1;12147:68:0;;;9207:21:1;9264:2;9244:18;;;9237:30;9303:34;9283:18;;;9276:62;-1:-1:-1;;;9354:18:1;;;9347:34;9398:19;;12147:68:0;9023:400:1;12147:68:0;-1:-1:-1;;;;;12236:21:0;;12228:68;;;;-1:-1:-1;;;12228:68:0;;9630:2:1;12228:68:0;;;9612:21:1;9669:2;9649:18;;;9642:30;9708:34;9688:18;;;9681:62;-1:-1:-1;;;9759:18:1;;;9752:32;9801:19;;12228:68:0;9428:398:1;12228:68:0;-1:-1:-1;;;;;12309:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12363:32;;1410:25:1;;;12363:32:0;;1383:18:1;12363:32:0;;;;;;;12060:345;;;:::o;12417:794::-;12508:37;12519:6;12527:9;12538:6;12508:10;:37::i;:::-;12558:33;12573:6;12581:9;12558:14;:33::i;:::-;12604:41;12619:6;12627:9;12638:6;12604:14;:41::i;:::-;12659:35;12676:6;12684:9;12659:16;:35::i;:::-;12707:39;12720:6;12728:9;12739:6;12707:12;:39::i;:::-;12760:35;12769:6;12777:9;12788:6;12760:8;:35::i;:::-;-1:-1:-1;;;;;12828:17:0;;;;;;:9;:17;;;;;;:29;;12850:6;12828:21;:29::i;:::-;-1:-1:-1;;;;;12808:17:0;;;;;;:9;:17;;;;;:49;;;;12895:32;12818:6;12917:9;12895:13;:32::i;:::-;:83;;12972:6;12895:83;;;12930:39;12943:6;12951:9;12962:6;12930:12;:39::i;:::-;-1:-1:-1;;;;;13014:20:0;;;;;;:9;:20;;;;;;12870:108;;-1:-1:-1;13014:40:0;;12870:108;13014:24;:40::i;:::-;-1:-1:-1;;;;;12991:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13072:43;;;;;;-1:-1:-1;;;;;;;;;;;13072:43:0;;;13100:14;1410:25:1;;1398:2;1383:18;;1264:177;13072:43:0;;;;;;;;13128:33;13143:9;13154:6;13128:14;:33::i;:::-;13174:27;13183:6;13191:9;13174:8;:27::i;4966:164::-;5052:7;5100:12;5092:6;;;;5084:29;;;;-1:-1:-1;;;5084:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;5122:5:0;;;4966:164::o;3739:82::-;3797:7;3814:5;3818:1;3814;:5;:::i;3829:82::-;3887:7;3904:5;3908:1;3904;:5;:::i;3919:82::-;3977:7;3994:5;3998:1;3994;:5;:::i;3649:82::-;3707:7;3724:5;3728:1;3724;:5;:::i;18186:162::-;18250:4;;18243:37;;-1:-1:-1;;;18243:37:0;;18274:4;18243:37;;;4681:51:1;18228:12:0;;-1:-1:-1;;;;;18250:4:0;;18243:22;;4654:18:1;;18243:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18300:4;;18315:16;;18293:45;;-1:-1:-1;;;18293:45:0;;-1:-1:-1;;;;;18315:16:0;;;18293:45;;;7371:51:1;7438:18;;;7431:34;;;18228:52:0;;-1:-1:-1;18300:4:0;;18293:21;;7344:18:1;;18293:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;19275:490::-;19365:21;19349:13;19416:23;19435:3;19416:14;19365:21;19426:3;19416:9;:14::i;:23::-;19399:40;-1:-1:-1;19452:14:0;19469:23;19488:3;19469:14;19399:40;19480:2;19469:10;:14::i;:23::-;19452:40;-1:-1:-1;19505:14:0;19522:23;19541:3;19522:14;:6;19533:2;19522:10;:14::i;:23::-;19505:40;-1:-1:-1;19558:14:0;19575:22;19593:3;19575:13;:6;19558:14;19575:10;:13::i;:22::-;19618:14;;19610:40;;19558:39;;-1:-1:-1;;;;;;19618:14:0;;19610:40;;;;;19643:6;;19618:14;19610:40;19618:14;19610:40;19643:6;19618:14;19610:40;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19671:13:0;;19663:39;;-1:-1:-1;;;;;19671:13:0;;;;19663:39;;;;;19695:6;;19671:13;19663:39;19671:13;19663:39;19695:6;19671:13;19663:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19723:14:0;;19715:40;;-1:-1:-1;;;;;19723:14:0;;;;19715:40;;;;;19748:6;;19723:14;19715:40;19723:14;19715:40;19748:6;19723:14;19715:40;;;;;;;;;;;;;;;;;;;;;19336:429;;;;;19275:490;;:::o;13223:440::-;-1:-1:-1;;;;;13329:20:0;;13321:70;;;;-1:-1:-1;;;13321:70:0;;10296:2:1;13321:70:0;;;10278:21:1;10335:2;10315:18;;;10308:30;10374:34;10354:18;;;10347:62;-1:-1:-1;;;10425:18:1;;;10418:35;10470:19;;13321:70:0;10094:401:1;13321:70:0;-1:-1:-1;;;;;13412:23:0;;13404:71;;;;-1:-1:-1;;;13404:71:0;;10702:2:1;13404:71:0;;;10684:21:1;10741:2;10721:18;;;10714:30;10780:34;10760:18;;;10753:62;-1:-1:-1;;;10831:18:1;;;10824:33;10874:19;;13404:71:0;10500:399:1;13404:71:0;13505:1;13496:6;:10;13488:64;;;;-1:-1:-1;;;13488:64:0;;11106:2:1;13488:64:0;;;11088:21:1;11145:2;11125:18;;;11118:30;11184:34;11164:18;;;11157:62;-1:-1:-1;;;11235:18:1;;;11228:39;11284:19;;13488:64:0;10904:405:1;13488:64:0;-1:-1:-1;;;;;9952:18:0;;9935:7;9952:18;;;:9;:18;;;;;;13573:6;:27;;13565:88;;;;-1:-1:-1;;;13565:88:0;;11516:2:1;13565:88:0;;;11498:21:1;11555:2;11535:18;;;11528:30;11594:34;11574:18;;;11567:62;-1:-1:-1;;;11645:18:1;;;11638:47;11702:19;;13565:88:0;11314:413:1;13675:180:0;-1:-1:-1;;;;;13765:19:0;;;;;;:11;:19;;;;;;;;13764:20;:47;;;;-1:-1:-1;;;;;;13789:22:0;;;;;;:11;:22;;;;;;;;13788:23;13764:47;13761:85;;;13821:9;;-1:-1:-1;;;13821:9:0;;;;13813:31;;;;-1:-1:-1;;;13813:31:0;;11934:2:1;13813:31:0;;;11916:21:1;11973:1;11953:18;;;11946:29;-1:-1:-1;;;11991:18:1;;;11984:39;12040:18;;13813:31:0;11732:332:1;13871:333:0;-1:-1:-1;;;;;13977:19:0;;;;;;:11;:19;;;;;;;;13976:20;:47;;;;-1:-1:-1;;;;;;14001:22:0;;;;;;:11;:22;;;;;;;;14000:23;13976:47;:73;;;;-1:-1:-1;;;;;;14028:21:0;;;;;;:10;:21;;;;;;;;14027:22;13976:73;:103;;;;-1:-1:-1;14074:4:0;;-1:-1:-1;;;;;14053:26:0;;;14074:4;;14053:26;;13976:103;13973:222;;;14143:15;;-1:-1:-1;;;;;14106:20:0;;;;;;:9;:20;;;;;;:32;;14131:6;14106:24;:32::i;:::-;14105:53;;14097:96;;;;-1:-1:-1;;;14097:96:0;;12271:2:1;14097:96:0;;;12253:21:1;12310:2;12290:18;;;12283:30;12349:32;12329:18;;;12322:60;12399:18;;14097:96:0;12069:354:1;14216:276:0;14312:4;;-1:-1:-1;;;;;14302:14:0;;;14312:4;;14302:14;;;;:37;;-1:-1:-1;;;;;;14321:18:0;;;;;;:10;:18;;;;;;;;14320:19;14302:37;:64;;;;-1:-1:-1;;;;;;14344:22:0;;;;;;:11;:22;;;;;;;;14343:23;14302:64;14299:99;;;14380:9;;:16;;14394:1;14380:13;:16::i;:::-;14368:9;:28;14299:99;14423:4;;-1:-1:-1;;;;;14423:4:0;;;14413:14;;;;14410:73;;14471:9;;14451:30;;:15;;:19;:30::i;:::-;-1:-1:-1;;;;;14429:19:0;;;;;;:8;:19;;;;;:52;14216:276;;:::o;16476:211::-;16594:12;;16584:6;:22;;:45;;;-1:-1:-1;;;;;;16610:19:0;;;;;;:11;:19;;;;;;;;16584:45;:71;;;-1:-1:-1;;;;;;16633:22:0;;;;;;:11;:22;;;;;;;;16584:71;16576:101;;;;-1:-1:-1;;;16576:101:0;;12630:2:1;16576:101:0;;;12612:21:1;12669:2;12649:18;;;12642:30;-1:-1:-1;;;12688:18:1;;;12681:47;12745:18;;16576:101:0;12428:341:1;21208:192:0;21302:41;21317:6;21325:9;21336:6;21302:14;:41::i;:::-;21299:92;;;21345:29;21360:13;;21345:14;:29::i;:::-;21388:1;21376:9;:13;21208:192;;;:::o;14504:164::-;-1:-1:-1;;;;;14612:19:0;;14585:4;14612:19;;;:11;:19;;;;;;;;14611:20;:47;;;;-1:-1:-1;;;;;;;14636:22:0;;;;;:11;:22;;;;;;;;14635:23;;14504:164;-1:-1:-1;14504:164:0:o;14941:1100::-;15032:7;15057:31;15070:6;15078:9;15057:12;:31::i;:::-;15054:952;;;15102:17;15122:30;15134:6;15142:9;15122:11;:30::i;:::-;15102:50;;15165:17;15185:62;15232:14;;15185:42;15196:30;15208:6;15216:9;15196:11;:30::i;:::-;15185:6;;:10;:42::i;:62::-;15165:82;;15260:15;15278:37;15305:9;15278:22;15292:7;;15278:9;:13;;:22;;;;:::i;:37::-;15260:55;;15328:15;15346:40;15376:9;15346:25;15360:10;;15346:9;:13;;:25;;;;:::i;:40::-;15328:58;-1:-1:-1;15399:15:0;15417:35;15328:58;15417:22;:9;15431:7;15417:13;:22::i;:35::-;15399:53;-1:-1:-1;15468:11:0;;15465:152;;15538:4;;-1:-1:-1;;;;;15538:4:0;15520:24;;;;:9;:24;;;;;;:37;;15549:7;15520:28;:37::i;:::-;15511:4;;;-1:-1:-1;;;;;15511:4:0;;;15493:24;;;;:9;:24;;;;;;;;;:64;;;;15600:4;;15575:40;;1410:25:1;;;15600:4:0;;;;15575:40;;;;-1:-1:-1;;;;;;;;;;;15575:40:0;1383:18:1;15575:40:0;;;;;;;15465:152;15632:11;;15629:182;;15712:14;;-1:-1:-1;;;;;15712:14:0;15694:34;;;;:9;:34;;;;;;:47;;15733:7;15694:38;:47::i;:::-;15675:14;;;-1:-1:-1;;;;;15675:14:0;;;15657:34;;;;:9;:34;;;;;;;;;:84;;;;15784:14;;15759:50;;1410:25:1;;;15784:14:0;;;;15759:50;;;;-1:-1:-1;;;;;;;;;;;15759:50:0;1383:18:1;15759:50:0;;;;;;;15629:182;15826:11;;15823:152;;15896:4;15878:24;;;;:9;:24;;;;;;:37;;15907:7;15878:28;:37::i;:::-;15869:4;15851:24;;;;:9;:24;;;;;;;:64;;;;15933:40;;-1:-1:-1;;;;;15933:40:0;;;-1:-1:-1;;;;;;;;;;;15933:40:0;;;15965:7;1410:25:1;;1398:2;1383:18;;1264:177;15933:40:0;;;;;;;;15823:152;15983:21;:6;15994:9;15983:10;:21::i;:::-;15976:28;;;;;;;;;15054:952;-1:-1:-1;16025:6:0;14941:1100;-1:-1:-1;;14941:1100:0:o;17420:292::-;-1:-1:-1;;;;;17504:24:0;;;;;;:13;:24;;;;;;;;:56;;;;-1:-1:-1;17544:15:0;6683:1;17544:2;:15;:::i;:::-;17541:19;;:1;:19;:::i;:::-;17532:6;:28;17504:56;17501:84;;;17562:21;17579:1;17581;17562:16;:21::i;:::-;-1:-1:-1;;;;;17600:24:0;;;;;;:13;:24;;;;;;;;:57;;;;-1:-1:-1;17641:15:0;6683:1;17641:2;:15;:::i;:::-;17638:19;;:1;:19;:::i;:::-;17628:6;:29;;17600:57;:89;;;;-1:-1:-1;17673:15:0;6683:1;17673:2;:15;:::i;:::-;17670:19;;:1;:19;:::i;:::-;17661:6;:28;17600:89;17597:106;;;17691:10;:8;:10::i;16699:492::-;10449:17;;10476:8;;16777:37;;;;-1:-1:-1;;;;;;16796:18:0;;;;;;:10;:18;;;;;;;;16795:19;16777:37;:46;;;;-1:-1:-1;16818:5:0;;;;;;;16777:46;:134;;;-1:-1:-1;16837:4:0;;-1:-1:-1;;;;;16827:14:0;;;16837:4;;16827:14;:23;;;;-1:-1:-1;16845:5:0;;;;;;;16827:23;:57;;;;-1:-1:-1;;;;;;16866:18:0;;;;;;:10;:18;;;;;;;;16865:19;16827:57;:84;;;;-1:-1:-1;16888:10:0;16902:9;16888:23;;16827:84;16777:167;;;;16929:15;16915:11;;:29;16777:167;16774:194;;;-1:-1:-1;;;;;16946:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;16946:20:0;16962:4;16946:20;;;16774:194;10449:17;;10476:8;;16983:43;;;;-1:-1:-1;;;;;;17005:21:0;;;;;;:10;:21;;;;;;;;17004:22;16983:43;:70;;;;-1:-1:-1;;;;;;17031:22:0;;;;;;:11;:22;;;;;;;;17030:23;16983:70;:79;;;;-1:-1:-1;17057:5:0;;;;;;;16983:79;:168;;;-1:-1:-1;17088:4:0;;-1:-1:-1;;;;;17078:14:0;;;17088:4;;17078:14;:37;;;;-1:-1:-1;;;;;;17097:18:0;;;;;;:10;:18;;;;;;;;17096:19;17078:37;:64;;;;-1:-1:-1;17119:10:0;17133:9;17119:23;;17078:64;:73;;;;-1:-1:-1;17146:5:0;;;;;;;17078:73;16980:198;;;-1:-1:-1;;;;;17153:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;17153:23:0;17172:4;17153:23;;;16699:492;;:::o;20787:409::-;20930:15;;21008:13;;20998:4;20885;9952:18;;;:9;:18;;;;;;21042:8;;20885:4;;20920:25;;;;-1:-1:-1;20980:41:0;;21042:8;;21041:9;:24;;;;-1:-1:-1;21054:11:0;;;;21041:24;:36;;;;;21069:8;21041:36;:59;;;;-1:-1:-1;;;;;;21082:18:0;;;;;;:10;:18;;;;;;;;21081:19;21041:59;:102;;;;-1:-1:-1;;;;;;21121:22:0;;;;;;:11;:22;;;;;;;;21120:23;21041:102;:127;;;;;21160:8;;21147:9;;:21;;21041:127;:145;;;;;21172:14;21041:145;21034:152;20787:409;-1:-1:-1;;;;;;20787:409:0:o;21412:1124::-;7989:8;:15;;-1:-1:-1;;7989:15:0;8000:4;7989:15;;;21573:19:::1;::::0;21550:17:::1;::::0;21529:15:::1;::::0;21507:17:::1;::::0;7989:8;;21507:86:::1;::::0;21573:19;;21507:61:::1;::::0;;;:21:::1;:38::i;:86::-;21506:92;::::0;21597:1:::1;21506:92;:::i;:::-;21485:113;;21611:32;21646:46;21680:11;21646:29;21657:17;;21646:6;:10;;:29;;;;:::i;:46::-;21611:81:::0;-1:-1:-1;21705:14:0::1;21722:36;:6:::0;21611:81;21722:10:::1;:36::i;:::-;21705:53:::0;-1:-1:-1;21796:21:0::1;21830:24;21705:53:::0;21830:16:::1;:24::i;:::-;21867:20;21890:41;:21;21916:14:::0;21890:25:::1;:41::i;:::-;21867:64;;21944:19;21965:52;21982:34;21998:17;;21982:11;:15;;:34;;;;:::i;:::-;21965:12:::0;;:16:::1;:52::i;:::-;21944:73;;22030:29;22062:34;22078:17;;22062:11;:15;;:34;;;;:::i;:::-;22030:66:::0;-1:-1:-1;22112:25:0;;22109:110:::1;;22155:61;22168:24;22194:21;22155:12;:61::i;:::-;22270:17;::::0;22231:13:::1;::::0;22247:41:::1;::::0;:18:::1;:11:::0;22263:1:::1;22247:15;:18::i;:::-;:22:::0;::::1;:41::i;:::-;22231:57:::0;-1:-1:-1;22304:9:0;;22301:74:::1;;22337:18;::::0;22329:43:::1;::::0;-1:-1:-1;;;;;22337:18:0;;::::1;::::0;22329:43;::::1;;;::::0;22366:5;;22337:18:::1;22329:43:::0;22337:18;22329:43;22366:5;22337:18;22329:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22301:74;22426:15;::::0;22387:13:::1;::::0;22403:39:::1;::::0;:18:::1;:11:::0;22419:1:::1;22403:15;:18::i;:39::-;22387:55:::0;-1:-1:-1;22458:9:0;;22455:72:::1;;22491:16;::::0;22483:41:::1;::::0;-1:-1:-1;;;;;22491:16:0;;::::1;::::0;22483:41;::::1;;;::::0;22518:5;;22491:16:::1;22483:41:::0;22491:16;22483:41;22518:5;22491:16;22483:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22455:72;-1:-1:-1::0;;8009:8:0;:16;;-1:-1:-1;;8009:16:0;;;-1:-1:-1;;;;;;;;21412:1124:0:o;14680:249::-;14760:4;14797:1;14786:8;;:12;:25;;;;-1:-1:-1;14803:8:0;;;;14802:9;14786:25;:80;;;-1:-1:-1;;;;;;14815:13:0;;;;;;:5;:13;;;;;;;;:51;;;;-1:-1:-1;;;;;;14832:16:0;;;;;;:8;:16;;;;;;14851:15;-1:-1:-1;14815:51:0;14786:100;;;-1:-1:-1;;;;;;14870:16:0;;;;;;:5;:16;;;;;;;;14786:100;:133;;;;14904:15;14890:11;;:29;14779:140;;14680:249;;;;:::o;22921:456::-;23013:16;;;23027:1;23013:16;;;;;;;;22989:21;;23013:16;;;;;;;;;;-1:-1:-1;23013:16:0;22989:40;;23060:4;23042;23047:1;23042:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23042:23:0;;;:7;;;;;;;;;;:23;;;;23088:6;;:13;;;-1:-1:-1;;;23088:13:0;;;;:6;;;;;:11;;:13;;;;;23042:7;;23088:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23078:4;23083:1;23078:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23078:23:0;;;:7;;;;;;;;;:23;23146:6;;23114:53;;23131:4;;23146:6;23155:11;23114:8;:53::i;:::-;23180:6;;:187;;-1:-1:-1;;;23180:187:0;;-1:-1:-1;;;;;23180:6:0;;;;:57;;:187;;23254:11;;23180:6;;23300:4;;23329;;23351:15;;23180:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22976:401;22921:456;:::o;22548:361::-;22663:6;;22631:53;;22648:4;;-1:-1:-1;;;;;22663:6:0;22672:11;22631:8;:53::i;:::-;22697:6;;22848:18;;22697:202;;-1:-1:-1;;;22697:202:0;;22762:4;22697:202;;;16003:34:1;16053:18;;;16046:34;;;22697:6:0;16096:18:1;;;16089:34;;;16139:18;;;16132:34;-1:-1:-1;;;;;22848:18:0;;;16182:19:1;;;16175:44;22883:15:0;16235:19:1;;;16228:35;22697:6:0;;;:22;;22727:9;;15937:19:1;;22697:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:118::-;1532:5;1525:13;1518:21;1511:5;1508:32;1498:60;;1554:1;1551;1544:12;1569:382;1634:6;1642;1695:2;1683:9;1674:7;1670:23;1666:32;1663:52;;;1711:1;1708;1701:12;1663:52;1750:9;1737:23;1769:28;1791:5;1769:28;:::i;:::-;1816:5;-1:-1:-1;1873:2:1;1858:18;;1845:32;1886:33;1845:32;1886:33;:::i;:::-;1938:7;1928:17;;;1569:382;;;;;:::o;1956:456::-;2033:6;2041;2049;2102:2;2090:9;2081:7;2077:23;2073:32;2070:52;;;2118:1;2115;2108:12;2070:52;2157:9;2144:23;2176:31;2201:5;2176:31;:::i;:::-;2226:5;-1:-1:-1;2283:2:1;2268:18;;2255:32;2296:33;2255:32;2296:33;:::i;:::-;1956:456;;2348:7;;-1:-1:-1;;;2402:2:1;2387:18;;;;2374:32;;1956:456::o;2417:247::-;2476:6;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;2584:9;2571:23;2603:31;2628:5;2603:31;:::i;2669:180::-;2728:6;2781:2;2769:9;2760:7;2756:23;2752:32;2749:52;;;2797:1;2794;2787:12;2749:52;-1:-1:-1;2820:23:1;;2669:180;-1:-1:-1;2669:180:1:o;3043:1097::-;3156:6;3164;3172;3180;3188;3196;3204;3257:3;3245:9;3236:7;3232:23;3228:33;3225:53;;;3274:1;3271;3264:12;3225:53;3313:9;3300:23;3332:31;3357:5;3332:31;:::i;:::-;3382:5;-1:-1:-1;3439:2:1;3424:18;;3411:32;3452:33;3411:32;3452:33;:::i;:::-;3504:7;-1:-1:-1;3563:2:1;3548:18;;3535:32;3576:33;3535:32;3576:33;:::i;:::-;3628:7;-1:-1:-1;3687:2:1;3672:18;;3659:32;3700:33;3659:32;3700:33;:::i;:::-;3752:7;-1:-1:-1;3811:3:1;3796:19;;3783:33;3825;3783;3825;:::i;:::-;3877:7;-1:-1:-1;3936:3:1;3921:19;;3908:33;3950;3908;3950;:::i;:::-;4002:7;-1:-1:-1;4061:3:1;4046:19;;4033:33;4075;4033;4075;:::i;:::-;4127:7;4117:17;;;3043:1097;;;;;;;;;;:::o;4145:385::-;4231:6;4239;4247;4255;4308:3;4296:9;4287:7;4283:23;4279:33;4276:53;;;4325:1;4322;4315:12;4276:53;-1:-1:-1;;4348:23:1;;;4418:2;4403:18;;4390:32;;-1:-1:-1;4469:2:1;4454:18;;4441:32;;4520:2;4505:18;4492:32;;-1:-1:-1;4145:385:1;-1:-1:-1;4145:385:1:o;4743:248::-;4811:6;4819;4872:2;4860:9;4851:7;4847:23;4843:32;4840:52;;;4888:1;4885;4878:12;4840:52;-1:-1:-1;;4911:23:1;;;4981:2;4966:18;;;4953:32;;-1:-1:-1;4743:248:1:o;4996:388::-;5064:6;5072;5125:2;5113:9;5104:7;5100:23;5096:32;5093:52;;;5141:1;5138;5131:12;5093:52;5180:9;5167:23;5199:31;5224:5;5199:31;:::i;5389:309::-;5454:6;5462;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;5703:454::-;5798:6;5806;5814;5822;5830;5883:3;5871:9;5862:7;5858:23;5854:33;5851:53;;;5900:1;5897;5890:12;5851:53;-1:-1:-1;;5923:23:1;;;5993:2;5978:18;;5965:32;;-1:-1:-1;6044:2:1;6029:18;;6016:32;;6095:2;6080:18;;6067:32;;-1:-1:-1;6146:3:1;6131:19;6118:33;;-1:-1:-1;5703:454:1;-1:-1:-1;5703:454:1:o;6422:241::-;6478:6;6531:2;6519:9;6510:7;6506:23;6502:32;6499:52;;;6547:1;6544;6537:12;6499:52;6586:9;6573:23;6605:28;6627:5;6605:28;:::i;6668:335::-;6870:2;6852:21;;;6909:2;6889:18;;;6882:30;-1:-1:-1;;;6943:2:1;6928:18;;6921:41;6994:2;6979:18;;6668:335::o;7008:184::-;7078:6;7131:2;7119:9;7110:7;7106:23;7102:32;7099:52;;;7147:1;7144;7137:12;7099:52;-1:-1:-1;7170:16:1;;7008:184;-1:-1:-1;7008:184:1:o;7476:245::-;7543:6;7596:2;7584:9;7575:7;7571:23;7567:32;7564:52;;;7612:1;7609;7602:12;7564:52;7644:9;7638:16;7663:28;7685:5;7663:28;:::i;7726:127::-;7787:10;7782:3;7778:20;7775:1;7768:31;7818:4;7815:1;7808:15;7842:4;7839:1;7832:15;7858:168;7898:7;7964:1;7960;7956:6;7952:14;7949:1;7946:21;7941:1;7934:9;7927:17;7923:45;7920:71;;;7971:18;;:::i;:::-;-1:-1:-1;8011:9:1;;7858:168::o;8031:217::-;8071:1;8097;8087:132;;8141:10;8136:3;8132:20;8129:1;8122:31;8176:4;8173:1;8166:15;8204:4;8201:1;8194:15;8087:132;-1:-1:-1;8233:9:1;;8031:217::o;9831:125::-;9871:4;9899:1;9896;9893:8;9890:34;;;9904:18;;:::i;:::-;-1:-1:-1;9941:9:1;;9831:125::o;9961:128::-;10001:3;10032:1;10028:6;10025:1;10022:13;10019:39;;;10038:18;;:::i;:::-;-1:-1:-1;10074:9:1;;9961:128::o;12774:422::-;12863:1;12906:5;12863:1;12920:270;12941:7;12931:8;12928:21;12920:270;;;13000:4;12996:1;12992:6;12988:17;12982:4;12979:27;12976:53;;;13009:18;;:::i;:::-;13059:7;13049:8;13045:22;13042:55;;;13079:16;;;;13042:55;13158:22;;;;13118:15;;;;12920:270;;;12924:3;12774:422;;;;;:::o;13201:806::-;13250:5;13280:8;13270:80;;-1:-1:-1;13321:1:1;13335:5;;13270:80;13369:4;13359:76;;-1:-1:-1;13406:1:1;13420:5;;13359:76;13451:4;13469:1;13464:59;;;;13537:1;13532:130;;;;13444:218;;13464:59;13494:1;13485:10;;13508:5;;;13532:130;13569:3;13559:8;13556:17;13553:43;;;13576:18;;:::i;:::-;-1:-1:-1;;13632:1:1;13618:16;;13647:5;;13444:218;;13746:2;13736:8;13733:16;13727:3;13721:4;13718:13;13714:36;13708:2;13698:8;13695:16;13690:2;13684:4;13681:12;13677:35;13674:77;13671:159;;;-1:-1:-1;13783:19:1;;;13815:5;;13671:159;13862:34;13887:8;13881:4;13862:34;:::i;:::-;13932:6;13928:1;13924:6;13920:19;13911:7;13908:32;13905:58;;;13943:18;;:::i;:::-;13981:20;;13201:806;-1:-1:-1;;;13201:806:1:o;14012:140::-;14070:5;14099:47;14140:4;14130:8;14126:19;14120:4;14099:47;:::i;14289:127::-;14350:10;14345:3;14341:20;14338:1;14331:31;14381:4;14378:1;14371:15;14405:4;14402:1;14395:15;14421:251;14491:6;14544:2;14532:9;14523:7;14519:23;14515:32;14512:52;;;14560:1;14557;14550:12;14512:52;14592:9;14586:16;14611:31;14636:5;14611:31;:::i;14677:980::-;14939:4;14987:3;14976:9;14972:19;15018:6;15007:9;15000:25;15044:2;15082:6;15077:2;15066:9;15062:18;15055:34;15125:3;15120:2;15109:9;15105:18;15098:31;15149:6;15184;15178:13;15215:6;15207;15200:22;15253:3;15242:9;15238:19;15231:26;;15292:2;15284:6;15280:15;15266:29;;15313:1;15323:195;15337:6;15334:1;15331:13;15323:195;;;15402:13;;-1:-1:-1;;;;;15398:39:1;15386:52;;15493:15;;;;15458:12;;;;15434:1;15352:9;15323:195;;;-1:-1:-1;;;;;;;15574:32:1;;;;15569:2;15554:18;;15547:60;-1:-1:-1;;;15638:3:1;15623:19;15616:35;15535:3;14677:980;-1:-1:-1;;;14677:980:1:o;16274:306::-;16362:6;16370;16378;16431:2;16419:9;16410:7;16406:23;16402:32;16399:52;;;16447:1;16444;16437:12;16399:52;16476:9;16470:16;16460:26;;16526:2;16515:9;16511:18;16505:25;16495:35;;16570:2;16559:9;16555:18;16549:25;16539:35;;16274:306;;;;;:::o

Swarm Source

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