ETH Price: $3,989.73 (+0.81%)

Token

ERC-20: America Is Great Again (AIGA)
 

Overview

Max Total Supply

1,000,000,000 AIGA

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
20,507,526.12893285995684227 AIGA

Value
$0.00
0x873ed690a1238858e453dd7eef6cd25575a0ee20
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:
AIGA

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-06
*/

/*
============;===========;()
            # # # #::::::
            # # # #::::::
            # # # #::::::
            # # # #::::::
            # # # # # # #
            # # # # # # #
            # # # # # # #
            # # # # # # #
            # # # # # # #
            # # # # # # #

------------------------------------------------

https://americaisgreatagain.vip/

https://x.com/AmericaIsGr8Eth

https://t.me/americaisgreatagainportal

*/
// SPDX-License-Identifier: MIT


pragma solidity ^0.8.26;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {return payable(msg.sender);}
    function _msgData() internal view virtual returns (bytes memory) {this; return msg.data;}
}

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

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

contract Ownable is Context {
    address public _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

interface InterfaceLP {
    function sync() external;
}

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

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

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

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

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

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

contract AIGA is Ownable, ERC20 {
    using SafeMath for uint256;

    string constant _name = "America Is Great Again";
    string constant _symbol = "AIGA";
    uint8 constant _decimals = 18; 

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

    uint256 _totalSupply = 1 * 10**9 * 10**_decimals;
    mapping (address => bool) public isIssnipered;

    bool public liveMode = false;
    mapping (address => bool) public isliveed;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    uint256 public _maxTxAmount = _totalSupply.mul(25).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(25).div(1000);

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

    uint256 private liquidityFee    = 2;
    uint256 private teamFee         = 2; 
    uint256 private burnFee         = 0;
    uint256 private marketingFee    = 5;
    uint256 private devFee          = 1;
    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 100; 
    uint256 public totalFee        = teamFee + marketingFee + liquidityFee + devFee + burnFee;
    uint256 private feeDenominator  = 100;
    UniswapRouter public router;
    InterfaceLP private pairContract;
    address public pair;
    address private autoLiquidityReceiver;
    address private marketingFeeReceiver;
    address private devFeeReceiver;
    address private teamFeeReceiver;
    address private burnFeeReceiver;

    uint256 targetLiquidity = 5;
    uint256 targetLiquidityDenominator = 100;
    
    bool public TradingOpen = false;    

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

    constructor () {
        router = UniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        WETH = router.WETH();
        pair = UniswapFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        
        _allowances[address(this)][address(router)] = type(uint256).max;
        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x1Db1f474E5a2fd221393cBE72d9e592c114b723B;
        devFeeReceiver = msg.sender;
        teamFeeReceiver = msg.sender;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
        isFeeExempt[msg.sender] = true;
        isFeeExempt[devFeeReceiver] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isliveed[msg.sender] = true;    
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[devFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[address(this)] = true;
        }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function setNewTXNLimits(uint256 maxWallPercent, uint256 maxTXPercent) public {
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
        require(_maxWalletToken >= _totalSupply / 1000); //no less than .1%
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
                
    }

    function setMaxTxn(uint256 maxTXPercent) public {
        require(isliveed[msg.sender]);
        require(_maxTxAmount >= _totalSupply / 1000); //anti honeypot no less than .1%
        _maxTxAmount = (_totalSupply * maxTXPercent ) / 1000;
    }

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

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(TradingOpen,"Trading not open yet");

        if(liveMode){
                require(isliveed[recipient],"Not Whitelisted"); 
           }
        }

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

        checkTxLimit(sender, amount); 
        if(shouldSwapBack()){ swapBack(); }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

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

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

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

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

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

        return amount.sub(feeAmount);
    }

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

    function clearStuckETH(uint256 amountPercentage) external onlyOwner { // to marketing
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) public returns (bool) {
        require(isliveed[msg.sender]);
     if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function setNewMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;    
    }

    function openTrading() public onlyOwner {
        TradingOpen = true;
    }

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

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

        uint256 balanceBefore = address(this).balance;

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

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

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

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

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

    function enable_live(bool _status) public onlyOwner {
        liveMode = _status;

    }

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

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

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

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

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

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _devFeeReceiver, address _burnFeeReceiver, address _teamFeeReceiver) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = _devFeeReceiver;
        burnFeeReceiver = _burnFeeReceiver;
        teamFeeReceiver = _teamFeeReceiver;
    }

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

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

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

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

event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isIssnipered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isliveed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_Issniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_devFeeReceiver","type":"address"},{"internalType":"address","name":"_burnFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setNewMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"},{"internalType":"uint256","name":"maxTXPercent","type":"uint256"}],"name":"setNewTXNLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimitAbsolute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead179091556004805490911690556100306012600a61069e565b61003e90633b9aca006106ac565b60058190556007805460ff19169055610066906103e89061006090601961049f565b9061052b565b600b5560055461007f906103e89061006090601961049f565b600c556002600f5560026010555f60115560056012556001601355606460145560646015556064601655601154601354600f546012546010546100c291906106c3565b6100cc91906106c3565b6100d691906106c3565b6100e091906106c3565b601755606460188190556005602181905560228290556023805461ffff1916610100179055546103e89161011491906106ac565b61011e91906106d6565b60245534801561012c575f80fd5b505f80546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156101e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061020c91906106f5565b600280546001600160a01b0319166001600160a01b039283161790556019546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c91906106f5565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156102da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102fe91906106f5565b601b80546001600160a01b039283166001600160a01b03199182168117909255601a80548216909217909155305f908152600e602090815260408083206019548616845282528083205f199055601c8054851633908117909155601d80548616731db1f474e5a2fd221393cbe72d9e592c114b723b179055601e8054861682179055601f8054861682179055600354835490951694909516939093178155600554848352600d909152828220819055915190917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916103df91815260200190565b60405180910390a3335f8181526009602090815260408083208054600160ff199182168117909255601e80546001600160a01b0390811687528487208054841685179055601d8054821688528588208054851686179055978752600886528487208054841685179055600a9095528386208054831684179055601b54851686528386208054831684179055548416855282852080548216831790559454909216835280832080548516831790553083529091208054909216179055610750565b5f825f036104ae57505f610525565b5f6104b983856106ac565b9050826104c685836106d6565b146105225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f61052283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061057260201b60201c565b5f81836105925760405162461bcd60e51b8152600401610519919061071b565b505f61059e84866106d6565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105f6578085048111156105da576105da6105a7565b60018416156105e857908102905b60019390931c9280026105bf565b935093915050565b5f8261060c57506001610525565b8161061857505f610525565b816001811461062e576002811461063857610654565b6001915050610525565b60ff841115610649576106496105a7565b50506001821b610525565b5060208310610133831016604e8410600b8410161715610677575081810a610525565b6106835f1984846105bb565b805f1904821115610696576106966105a7565b029392505050565b5f61052260ff8416836105fe565b8082028115828204841417610525576105256105a7565b80820180821115610525576105256105a7565b5f826106f057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610705575f80fd5b81516001600160a01b0381168114610522575f80fd5b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6123718061075d5f395ff3fe60806040526004361061026d575f3560e01c80637d1db4a51161014a578063b7593ad9116100be578063dd62ed3e11610078578063dd62ed3e14610766578063df20fd49146107aa578063f2fde38b146107c9578063f84ba65d146107e8578063f887ea4014610807578063fc588c0414610826575f80fd5b8063b7593ad914610699578063c9567bf9146106c7578063cf55fea9146106db578063d51ed1c814610709578063d78e139d14610728578063dcd2e64514610747575f80fd5b80638da5cb5b1161010f5780638da5cb5b146105dc578063900ba33b146105f857806395d89b4114610611578063a8aa1b311461063d578063a9059cbb1461065c578063b2bdfa7b1461067b575f80fd5b80637d1db4a51461053a5780638200f66f1461054f57806383f9d9fa1461056e57806386f6c3c11461058d578063893d20e8146105ac575f80fd5b8063313ce567116101e1578063658d4b7f116101a6578063658d4b7f146104815780636ddd1713146104a057806370a08231146104be578063715018a6146104f257806377b54bad1461050657806378109e5414610525575f80fd5b8063313ce567146103ea5780634f85a0c514610405578063571ac8b0146104245780635d3bf9f5146104435780635e04e4f814610462575f80fd5b806318160ddd1161023257806318160ddd1461034e57806318abb635146103625780631df4ccfc14610383578063201e79911461039857806323b872dd146103b75780632b112e49146103d6575f80fd5b80630445b6671461027857806306fdde03146102a057806308fd3d05146102e7578063095ea7b3146103105780631161ae391461032f575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d60245481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b5060408051808201909152601681527520b6b2b934b1b09024b99023b932b0ba1020b3b0b4b760511b60208201525b6040516102979190611e9b565b3480156102f2575f80fd5b506023546103009060ff1681565b6040519015158152602001610297565b34801561031b575f80fd5b5061030061032a366004611eeb565b610845565b34801561033a575f80fd5b50610300610349366004611f13565b6108b1565b348015610359575f80fd5b5060055461028d565b34801561036d575f80fd5b5061038161037c366004611f33565b6108c4565b005b34801561038e575f80fd5b5061028d60175481565b3480156103a3575f80fd5b506103816103b2366004611f13565b610955565b3480156103c2575f80fd5b506103006103d1366004611f94565b610989565b3480156103e1575f80fd5b5061028d610a47565b3480156103f5575f80fd5b5060405160128152602001610297565b348015610410575f80fd5b5061038161041f366004611fde565b610a97565b34801561042f575f80fd5b5061030061043e366004612060565b610b2a565b34801561044e575f80fd5b5061038161045d366004611f13565b610b36565b34801561046d575f80fd5b5061038161047c366004612079565b610baf565b34801561048c575f80fd5b5061038161049b366004612094565b610beb565b3480156104ab575f80fd5b5060235461030090610100900460ff1681565b3480156104c9575f80fd5b5061028d6104d8366004612060565b6001600160a01b03165f908152600d602052604090205490565b3480156104fd575f80fd5b50610381610c3e565b348015610511575f80fd5b50610300610520366004611eeb565b610caf565b348015610530575f80fd5b5061028d600c5481565b348015610545575f80fd5b5061028d600b5481565b34801561055a575f80fd5b506103816105693660046120c9565b610da7565b348015610579575f80fd5b506103816105883660046120f2565b610de1565b348015610598575f80fd5b506103816105a7366004612109565b610e2c565b3480156105b7575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610297565b3480156105e7575f80fd5b505f546001600160a01b03166105c4565b348015610603575f80fd5b506007546103009060ff1681565b34801561061c575f80fd5b506040805180820190915260048152634149474160e01b60208201526102da565b348015610648575f80fd5b50601b546105c4906001600160a01b031681565b348015610667575f80fd5b50610300610676366004611eeb565b610ef1565b348015610686575f80fd5b505f546105c4906001600160a01b031681565b3480156106a4575f80fd5b506103006106b3366004612060565b60086020525f908152604090205460ff1681565b3480156106d2575f80fd5b50610381610efd565b3480156106e6575f80fd5b506103006106f5366004612060565b60066020525f908152604090205460ff1681565b348015610714575f80fd5b5061028d6107233660046120f2565b610f35565b348015610733575f80fd5b506103816107423660046120f2565b610f7a565b348015610752575f80fd5b50610381610761366004611fde565b610ff4565b348015610771575f80fd5b5061028d610780366004612148565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b3480156107b5575f80fd5b506103816107c4366004612179565b611081565b3480156107d4575f80fd5b506103816107e3366004612060565b6110c8565b3480156107f3575f80fd5b50610381610802366004612094565b6111af565b348015610812575f80fd5b506019546105c4906001600160a01b031681565b348015610831575f80fd5b506103816108403660046120f2565b611202565b335f818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061089f9086815260200190565b60405180910390a35060015b92915050565b5f826108bc83610f35565b119392505050565b5f546001600160a01b031633146108f65760405162461bcd60e51b81526004016108ed90612195565b60405180910390fd5b601c80546001600160a01b03199081166001600160a01b0397881617909155601d8054821695871695909517909455601e8054851693861693909317909255602080548416918516919091179055601f80549092169216919091179055565b5f546001600160a01b0316331461097e5760405162461bcd60e51b81526004016108ed90612195565b602191909155602255565b6001600160a01b0383165f908152600e602090815260408083203384529091528120545f1914610a32576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600e82528381203382529091529190912054610a0e91849061125a565b6001600160a01b0385165f908152600e602090815260408083203384529091529020555b610a3d848484611292565b90505b9392505050565b6004546001600160a01b03165f908152600d6020526040812054610a92906003546001600160a01b03165f908152600d6020526040902054610a8c9060055490611649565b90611649565b905090565b5f546001600160a01b03163314610ac05760405162461bcd60e51b81526004016108ed90612195565b5f5b82811015610b24578160085f868685818110610ae057610ae06121ca565b9050602002016020810190610af59190612060565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ac2565b50505050565b5f6108ab825f19610845565b6103e8600554610b4691906121f2565b600b541015610b53575f80fd5b6103e881600554610b649190612211565b610b6e91906121f2565b600b55600554610b81906103e8906121f2565b600c541015610b8e575f80fd5b606482600554610b9e9190612211565b610ba891906121f2565b600c555050565b5f546001600160a01b03163314610bd85760405162461bcd60e51b81526004016108ed90612195565b6007805460ff1916911515919091179055565b5f546001600160a01b03163314610c145760405162461bcd60e51b81526004016108ed90612195565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c675760405162461bcd60e51b81526004016108ed90612195565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f9081526008602052604081205460ff16610cc9575f80fd5b815f03610d39576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d369190612228565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a40919061223f565b5f546001600160a01b03163314610dd05760405162461bcd60e51b81526004016108ed90612195565b601491909155601591909155601655565b5f546001600160a01b03163314610e0a5760405162461bcd60e51b81526004016108ed90612195565b6103e8600554610e1a91906121f2565b600b541015610e27575f80fd5b600b55565b5f546001600160a01b03163314610e555760405162461bcd60e51b81526004016108ed90612195565b600f8690556010859055601284905560138390556011829055610e8682610e80858188818c8c61168a565b9061168a565b6017556018819055610e996002826121f2565b60175410610ee95760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016108ed565b505050505050565b5f610a40338484611292565b5f546001600160a01b03163314610f265760405162461bcd60e51b81526004016108ed90612195565b6023805460ff19166001179055565b5f6108ab610f41610a47565b601b546001600160a01b03165f908152600d6020526040902054610f7490610f6d906002905b906116e8565b85906116e8565b90611766565b5f546001600160a01b03163314610fa35760405162461bcd60e51b81526004016108ed90612195565b601d5447906001600160a01b03166108fc6064610fc08585612211565b610fca91906121f2565b6040518115909202915f818181858888f19350505050158015610fef573d5f803e3d5ffd5b505050565b5f546001600160a01b0316331461101d5760405162461bcd60e51b81526004016108ed90612195565b5f5b82811015610b24578160065f86868581811061103d5761103d6121ca565b90506020020160208101906110529190612060565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161101f565b5f546001600160a01b031633146110aa5760405162461bcd60e51b81526004016108ed90612195565b602380549215156101000261ff001990931692909217909155602455565b5f546001600160a01b031633146110f15760405162461bcd60e51b81526004016108ed90612195565b6001600160a01b0381166111565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111d85760405162461bcd60e51b81526004016108ed90612195565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b335f9081526008602052604090205460ff1661121c575f80fd5b6103e860055461122c91906121f2565b600b541015611239575f80fd5b6103e88160055461124a9190612211565b61125491906121f2565b600b5550565b5f818484111561127d5760405162461bcd60e51b81526004016108ed9190611e9b565b505f611289848661225a565b95945050505050565b6025545f9060ff16156112b1576112aa8484846117a7565b9050610a40565b6001600160a01b0384165f9081526001602052604090205460ff161580156112f157506001600160a01b0383165f9081526001602052604090205460ff16155b156113a35760235460ff1661133f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108ed565b60075460ff16156113a3576001600160a01b0383165f9081526008602052604090205460ff166113a35760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016108ed565b6001600160a01b0384165f9081526001602052604090205460ff161580156113d457506001600160a01b0383163014155b80156113ee57506003546001600160a01b03848116911614155b80156114085750601b546001600160a01b03848116911614155b801561142257506020546001600160a01b03848116911614155b801561143c5750601d546001600160a01b03848116911614155b801561146057506001600160a01b0383165f908152600a602052604090205460ff16155b15611500576001600160a01b0383165f908152600d6020526040902054600c5461148a848361226d565b11156114fe5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108ed565b505b61150a8483611877565b6115126118e3565b1561151f5761151f611935565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600d909152919091205461157091849061125a565b6001600160a01b0385165f908152600d6020908152604080832093909355600990529081205460ff16806115bb57506001600160a01b0384165f9081526009602052604090205460ff165b6115cf576115ca858486611cfd565b6115d1565b825b6001600160a01b0385165f908152600d60205260409020549091506115f6908261168a565b6001600160a01b038086165f818152600d602052604090819020939093559151908716905f8051602061231c833981519152906116369085815260200190565b60405180910390a3506001949350505050565b5f610a4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061125a565b5f80611696838561226d565b905083811015610a405760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ed565b5f825f036116f757505f6108ab565b5f6117028385612211565b90508261170f85836121f2565b14610a405760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ed565b5f610a4083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e6f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600d909152918220546117f791849061125a565b6001600160a01b038086165f908152600d60205260408082209390935590851681522054611825908361168a565b6001600160a01b038085165f818152600d602052604090819020939093559151908616905f8051602061231c833981519152906118659086815260200190565b60405180910390a35060019392505050565b600b548111158061189f57506001600160a01b0382165f908152600a602052604090205460ff165b6118df5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108ed565b5050565b601b545f906001600160a01b03163314801590611903575060255460ff16155b80156119165750602354610100900460ff165b8015610a92575050602454305f908152600d6020526040902054101590565b6025805460ff191660011790556021546022545f91611953916108b1565b61195f57600f54611961565b5f5b90505f6119846002610f74601754610f74866024546116e890919063ffffffff16565b90505f61199c8260245461164990919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119d4576119d46121ca565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0557611a056121ca565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b81524792919091169063791ac94790611a4e9086905f90879030904290600401612280565b5f604051808303815f87803b158015611a65575f80fd5b505af1158015611a77573d5f803e3d5ffd5b505050505f611a8f824761164990919063ffffffff16565b90505f611aa9611aa0886002611766565b60175490611649565b90505f611abd6002610f748481878d6116e8565b90505f611ad983610f74601254876116e890919063ffffffff16565b90505f611af584610f74601054886116e890919063ffffffff16565b90505f611b1185610f74601354896116e890919063ffffffff16565b601d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b60576040519150601f19603f3d011682016040523d82523d5f602084013e611b65565b606091505b5050601e546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bb2576040519150601f19603f3d011682016040523d82523d5f602084013e611bb7565b606091505b5050601f546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c04576040519150601f19603f3d011682016040523d82523d5f602084013e611c09565b606091505b505f9250508b159050611ce557601954601c5460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c83573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ca891906122f0565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b601654601b545f91906001600160a01b0390811690841603611d225750601454611d3d565b601b546001600160a01b0390811690861603611d3d57506015545b5f611d696018546064611d509190612211565b610f7484610f676017548a6116e890919063ffffffff16565b90505f611d87601754610f74601154856116e890919063ffffffff16565b90505f611d948383611649565b305f908152600d6020526040902054909150611db0908261168a565b305f908152600d6020908152604080832093909355546001600160a01b031681522054611ddd908361168a565b602080546001600160a01b039081165f908152600d835260409081902093909355915183815230928b16915f8051602061231c833981519152910160405180910390a38115611e5957602080546040518481526001600160a01b0391821692918b16915f8051602061231c833981519152910160405180910390a35b611e638784611649565b98975050505050505050565b5f8183611e8f5760405162461bcd60e51b81526004016108ed9190611e9b565b505f61128984866121f2565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ee6575f80fd5b919050565b5f8060408385031215611efc575f80fd5b611f0583611ed0565b946020939093013593505050565b5f8060408385031215611f24575f80fd5b50508035926020909101359150565b5f805f805f60a08688031215611f47575f80fd5b611f5086611ed0565b9450611f5e60208701611ed0565b9350611f6c60408701611ed0565b9250611f7a60608701611ed0565b9150611f8860808701611ed0565b90509295509295909350565b5f805f60608486031215611fa6575f80fd5b611faf84611ed0565b9250611fbd60208501611ed0565b929592945050506040919091013590565b8015158114611fdb575f80fd5b50565b5f805f60408486031215611ff0575f80fd5b833567ffffffffffffffff811115612006575f80fd5b8401601f81018613612016575f80fd5b803567ffffffffffffffff81111561202c575f80fd5b8660208260051b8401011115612040575f80fd5b60209182019450925084013561205581611fce565b809150509250925092565b5f60208284031215612070575f80fd5b610a4082611ed0565b5f60208284031215612089575f80fd5b8135610a4081611fce565b5f80604083850312156120a5575f80fd5b6120ae83611ed0565b915060208301356120be81611fce565b809150509250929050565b5f805f606084860312156120db575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612102575f80fd5b5035919050565b5f805f805f8060c0878903121561211e575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f8060408385031215612159575f80fd5b61216283611ed0565b915061217060208401611ed0565b90509250929050565b5f806040838503121561218a575f80fd5b8235611f0581611fce565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261220c57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108ab576108ab6121de565b5f60208284031215612238575f80fd5b5051919050565b5f6020828403121561224f575f80fd5b8151610a4081611fce565b818103818111156108ab576108ab6121de565b808201808211156108ab576108ab6121de565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156122d05783516001600160a01b03168352602093840193909201916001016122a9565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f60608486031215612302575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200481b0d5c9018d76cef66f8c0310c2d2d1001cd2c7a9b63e02e31399950cc6f364736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061026d575f3560e01c80637d1db4a51161014a578063b7593ad9116100be578063dd62ed3e11610078578063dd62ed3e14610766578063df20fd49146107aa578063f2fde38b146107c9578063f84ba65d146107e8578063f887ea4014610807578063fc588c0414610826575f80fd5b8063b7593ad914610699578063c9567bf9146106c7578063cf55fea9146106db578063d51ed1c814610709578063d78e139d14610728578063dcd2e64514610747575f80fd5b80638da5cb5b1161010f5780638da5cb5b146105dc578063900ba33b146105f857806395d89b4114610611578063a8aa1b311461063d578063a9059cbb1461065c578063b2bdfa7b1461067b575f80fd5b80637d1db4a51461053a5780638200f66f1461054f57806383f9d9fa1461056e57806386f6c3c11461058d578063893d20e8146105ac575f80fd5b8063313ce567116101e1578063658d4b7f116101a6578063658d4b7f146104815780636ddd1713146104a057806370a08231146104be578063715018a6146104f257806377b54bad1461050657806378109e5414610525575f80fd5b8063313ce567146103ea5780634f85a0c514610405578063571ac8b0146104245780635d3bf9f5146104435780635e04e4f814610462575f80fd5b806318160ddd1161023257806318160ddd1461034e57806318abb635146103625780631df4ccfc14610383578063201e79911461039857806323b872dd146103b75780632b112e49146103d6575f80fd5b80630445b6671461027857806306fdde03146102a057806308fd3d05146102e7578063095ea7b3146103105780631161ae391461032f575f80fd5b3661027457005b5f80fd5b348015610283575f80fd5b5061028d60245481565b6040519081526020015b60405180910390f35b3480156102ab575f80fd5b5060408051808201909152601681527520b6b2b934b1b09024b99023b932b0ba1020b3b0b4b760511b60208201525b6040516102979190611e9b565b3480156102f2575f80fd5b506023546103009060ff1681565b6040519015158152602001610297565b34801561031b575f80fd5b5061030061032a366004611eeb565b610845565b34801561033a575f80fd5b50610300610349366004611f13565b6108b1565b348015610359575f80fd5b5060055461028d565b34801561036d575f80fd5b5061038161037c366004611f33565b6108c4565b005b34801561038e575f80fd5b5061028d60175481565b3480156103a3575f80fd5b506103816103b2366004611f13565b610955565b3480156103c2575f80fd5b506103006103d1366004611f94565b610989565b3480156103e1575f80fd5b5061028d610a47565b3480156103f5575f80fd5b5060405160128152602001610297565b348015610410575f80fd5b5061038161041f366004611fde565b610a97565b34801561042f575f80fd5b5061030061043e366004612060565b610b2a565b34801561044e575f80fd5b5061038161045d366004611f13565b610b36565b34801561046d575f80fd5b5061038161047c366004612079565b610baf565b34801561048c575f80fd5b5061038161049b366004612094565b610beb565b3480156104ab575f80fd5b5060235461030090610100900460ff1681565b3480156104c9575f80fd5b5061028d6104d8366004612060565b6001600160a01b03165f908152600d602052604090205490565b3480156104fd575f80fd5b50610381610c3e565b348015610511575f80fd5b50610300610520366004611eeb565b610caf565b348015610530575f80fd5b5061028d600c5481565b348015610545575f80fd5b5061028d600b5481565b34801561055a575f80fd5b506103816105693660046120c9565b610da7565b348015610579575f80fd5b506103816105883660046120f2565b610de1565b348015610598575f80fd5b506103816105a7366004612109565b610e2c565b3480156105b7575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610297565b3480156105e7575f80fd5b505f546001600160a01b03166105c4565b348015610603575f80fd5b506007546103009060ff1681565b34801561061c575f80fd5b506040805180820190915260048152634149474160e01b60208201526102da565b348015610648575f80fd5b50601b546105c4906001600160a01b031681565b348015610667575f80fd5b50610300610676366004611eeb565b610ef1565b348015610686575f80fd5b505f546105c4906001600160a01b031681565b3480156106a4575f80fd5b506103006106b3366004612060565b60086020525f908152604090205460ff1681565b3480156106d2575f80fd5b50610381610efd565b3480156106e6575f80fd5b506103006106f5366004612060565b60066020525f908152604090205460ff1681565b348015610714575f80fd5b5061028d6107233660046120f2565b610f35565b348015610733575f80fd5b506103816107423660046120f2565b610f7a565b348015610752575f80fd5b50610381610761366004611fde565b610ff4565b348015610771575f80fd5b5061028d610780366004612148565b6001600160a01b039182165f908152600e6020908152604080832093909416825291909152205490565b3480156107b5575f80fd5b506103816107c4366004612179565b611081565b3480156107d4575f80fd5b506103816107e3366004612060565b6110c8565b3480156107f3575f80fd5b50610381610802366004612094565b6111af565b348015610812575f80fd5b506019546105c4906001600160a01b031681565b348015610831575f80fd5b506103816108403660046120f2565b611202565b335f818152600e602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061089f9086815260200190565b60405180910390a35060015b92915050565b5f826108bc83610f35565b119392505050565b5f546001600160a01b031633146108f65760405162461bcd60e51b81526004016108ed90612195565b60405180910390fd5b601c80546001600160a01b03199081166001600160a01b0397881617909155601d8054821695871695909517909455601e8054851693861693909317909255602080548416918516919091179055601f80549092169216919091179055565b5f546001600160a01b0316331461097e5760405162461bcd60e51b81526004016108ed90612195565b602191909155602255565b6001600160a01b0383165f908152600e602090815260408083203384529091528120545f1914610a32576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600e82528381203382529091529190912054610a0e91849061125a565b6001600160a01b0385165f908152600e602090815260408083203384529091529020555b610a3d848484611292565b90505b9392505050565b6004546001600160a01b03165f908152600d6020526040812054610a92906003546001600160a01b03165f908152600d6020526040902054610a8c9060055490611649565b90611649565b905090565b5f546001600160a01b03163314610ac05760405162461bcd60e51b81526004016108ed90612195565b5f5b82811015610b24578160085f868685818110610ae057610ae06121ca565b9050602002016020810190610af59190612060565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610ac2565b50505050565b5f6108ab825f19610845565b6103e8600554610b4691906121f2565b600b541015610b53575f80fd5b6103e881600554610b649190612211565b610b6e91906121f2565b600b55600554610b81906103e8906121f2565b600c541015610b8e575f80fd5b606482600554610b9e9190612211565b610ba891906121f2565b600c555050565b5f546001600160a01b03163314610bd85760405162461bcd60e51b81526004016108ed90612195565b6007805460ff1916911515919091179055565b5f546001600160a01b03163314610c145760405162461bcd60e51b81526004016108ed90612195565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c675760405162461bcd60e51b81526004016108ed90612195565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b335f9081526008602052604081205460ff16610cc9575f80fd5b815f03610d39576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d12573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d369190612228565b91505b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a40919061223f565b5f546001600160a01b03163314610dd05760405162461bcd60e51b81526004016108ed90612195565b601491909155601591909155601655565b5f546001600160a01b03163314610e0a5760405162461bcd60e51b81526004016108ed90612195565b6103e8600554610e1a91906121f2565b600b541015610e27575f80fd5b600b55565b5f546001600160a01b03163314610e555760405162461bcd60e51b81526004016108ed90612195565b600f8690556010859055601284905560138390556011829055610e8682610e80858188818c8c61168a565b9061168a565b6017556018819055610e996002826121f2565b60175410610ee95760405162461bcd60e51b815260206004820152601c60248201527f466565732063616e6e6f74206265206d6f7265207468616e203530250000000060448201526064016108ed565b505050505050565b5f610a40338484611292565b5f546001600160a01b03163314610f265760405162461bcd60e51b81526004016108ed90612195565b6023805460ff19166001179055565b5f6108ab610f41610a47565b601b546001600160a01b03165f908152600d6020526040902054610f7490610f6d906002905b906116e8565b85906116e8565b90611766565b5f546001600160a01b03163314610fa35760405162461bcd60e51b81526004016108ed90612195565b601d5447906001600160a01b03166108fc6064610fc08585612211565b610fca91906121f2565b6040518115909202915f818181858888f19350505050158015610fef573d5f803e3d5ffd5b505050565b5f546001600160a01b0316331461101d5760405162461bcd60e51b81526004016108ed90612195565b5f5b82811015610b24578160065f86868581811061103d5761103d6121ca565b90506020020160208101906110529190612060565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161101f565b5f546001600160a01b031633146110aa5760405162461bcd60e51b81526004016108ed90612195565b602380549215156101000261ff001990931692909217909155602455565b5f546001600160a01b031633146110f15760405162461bcd60e51b81526004016108ed90612195565b6001600160a01b0381166111565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146111d85760405162461bcd60e51b81526004016108ed90612195565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b335f9081526008602052604090205460ff1661121c575f80fd5b6103e860055461122c91906121f2565b600b541015611239575f80fd5b6103e88160055461124a9190612211565b61125491906121f2565b600b5550565b5f818484111561127d5760405162461bcd60e51b81526004016108ed9190611e9b565b505f611289848661225a565b95945050505050565b6025545f9060ff16156112b1576112aa8484846117a7565b9050610a40565b6001600160a01b0384165f9081526001602052604090205460ff161580156112f157506001600160a01b0383165f9081526001602052604090205460ff16155b156113a35760235460ff1661133f5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b60448201526064016108ed565b60075460ff16156113a3576001600160a01b0383165f9081526008602052604090205460ff166113a35760405162461bcd60e51b815260206004820152600f60248201526e139bdd0815da1a5d195b1a5cdd1959608a1b60448201526064016108ed565b6001600160a01b0384165f9081526001602052604090205460ff161580156113d457506001600160a01b0383163014155b80156113ee57506003546001600160a01b03848116911614155b80156114085750601b546001600160a01b03848116911614155b801561142257506020546001600160a01b03848116911614155b801561143c5750601d546001600160a01b03848116911614155b801561146057506001600160a01b0383165f908152600a602052604090205460ff16155b15611500576001600160a01b0383165f908152600d6020526040902054600c5461148a848361226d565b11156114fe5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016108ed565b505b61150a8483611877565b6115126118e3565b1561151f5761151f611935565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600d909152919091205461157091849061125a565b6001600160a01b0385165f908152600d6020908152604080832093909355600990529081205460ff16806115bb57506001600160a01b0384165f9081526009602052604090205460ff165b6115cf576115ca858486611cfd565b6115d1565b825b6001600160a01b0385165f908152600d60205260409020549091506115f6908261168a565b6001600160a01b038086165f818152600d602052604090819020939093559151908716905f8051602061231c833981519152906116369085815260200190565b60405180910390a3506001949350505050565b5f610a4083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061125a565b5f80611696838561226d565b905083811015610a405760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ed565b5f825f036116f757505f6108ab565b5f6117028385612211565b90508261170f85836121f2565b14610a405760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ed565b5f610a4083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e6f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600d909152918220546117f791849061125a565b6001600160a01b038086165f908152600d60205260408082209390935590851681522054611825908361168a565b6001600160a01b038085165f818152600d602052604090819020939093559151908616905f8051602061231c833981519152906118659086815260200190565b60405180910390a35060019392505050565b600b548111158061189f57506001600160a01b0382165f908152600a602052604090205460ff165b6118df5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b60448201526064016108ed565b5050565b601b545f906001600160a01b03163314801590611903575060255460ff16155b80156119165750602354610100900460ff165b8015610a92575050602454305f908152600d6020526040902054101590565b6025805460ff191660011790556021546022545f91611953916108b1565b61195f57600f54611961565b5f5b90505f6119846002610f74601754610f74866024546116e890919063ffffffff16565b90505f61199c8260245461164990919063ffffffff16565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106119d4576119d46121ca565b6001600160a01b039283166020918202929092010152600254825191169082906001908110611a0557611a056121ca565b6001600160a01b03928316602091820292909201015260195460405163791ac94760e01b81524792919091169063791ac94790611a4e9086905f90879030904290600401612280565b5f604051808303815f87803b158015611a65575f80fd5b505af1158015611a77573d5f803e3d5ffd5b505050505f611a8f824761164990919063ffffffff16565b90505f611aa9611aa0886002611766565b60175490611649565b90505f611abd6002610f748481878d6116e8565b90505f611ad983610f74601254876116e890919063ffffffff16565b90505f611af584610f74601054886116e890919063ffffffff16565b90505f611b1185610f74601354896116e890919063ffffffff16565b601d546040519192505f916001600160a01b039091169085908381818185875af1925050503d805f8114611b60576040519150601f19603f3d011682016040523d82523d5f602084013e611b65565b606091505b5050601e546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611bb2576040519150601f19603f3d011682016040523d82523d5f602084013e611bb7565b606091505b5050601f546040519192506001600160a01b03169084905f81818185875af1925050503d805f8114611c04576040519150601f19603f3d011682016040523d82523d5f602084013e611c09565b606091505b505f9250508b159050611ce557601954601c5460405163f305d71960e01b8152306004820152602481018e90525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611c83573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611ca891906122f0565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506025805460ff1916905550505050505050505050565b601654601b545f91906001600160a01b0390811690841603611d225750601454611d3d565b601b546001600160a01b0390811690861603611d3d57506015545b5f611d696018546064611d509190612211565b610f7484610f676017548a6116e890919063ffffffff16565b90505f611d87601754610f74601154856116e890919063ffffffff16565b90505f611d948383611649565b305f908152600d6020526040902054909150611db0908261168a565b305f908152600d6020908152604080832093909355546001600160a01b031681522054611ddd908361168a565b602080546001600160a01b039081165f908152600d835260409081902093909355915183815230928b16915f8051602061231c833981519152910160405180910390a38115611e5957602080546040518481526001600160a01b0391821692918b16915f8051602061231c833981519152910160405180910390a35b611e638784611649565b98975050505050505050565b5f8183611e8f5760405162461bcd60e51b81526004016108ed9190611e9b565b505f61128984866121f2565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114611ee6575f80fd5b919050565b5f8060408385031215611efc575f80fd5b611f0583611ed0565b946020939093013593505050565b5f8060408385031215611f24575f80fd5b50508035926020909101359150565b5f805f805f60a08688031215611f47575f80fd5b611f5086611ed0565b9450611f5e60208701611ed0565b9350611f6c60408701611ed0565b9250611f7a60608701611ed0565b9150611f8860808701611ed0565b90509295509295909350565b5f805f60608486031215611fa6575f80fd5b611faf84611ed0565b9250611fbd60208501611ed0565b929592945050506040919091013590565b8015158114611fdb575f80fd5b50565b5f805f60408486031215611ff0575f80fd5b833567ffffffffffffffff811115612006575f80fd5b8401601f81018613612016575f80fd5b803567ffffffffffffffff81111561202c575f80fd5b8660208260051b8401011115612040575f80fd5b60209182019450925084013561205581611fce565b809150509250925092565b5f60208284031215612070575f80fd5b610a4082611ed0565b5f60208284031215612089575f80fd5b8135610a4081611fce565b5f80604083850312156120a5575f80fd5b6120ae83611ed0565b915060208301356120be81611fce565b809150509250929050565b5f805f606084860312156120db575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612102575f80fd5b5035919050565b5f805f805f8060c0878903121561211e575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f8060408385031215612159575f80fd5b61216283611ed0565b915061217060208401611ed0565b90509250929050565b5f806040838503121561218a575f80fd5b8235611f0581611fce565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f8261220c57634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176108ab576108ab6121de565b5f60208284031215612238575f80fd5b5051919050565b5f6020828403121561224f575f80fd5b8151610a4081611fce565b818103818111156108ab576108ab6121de565b808201808211156108ab576108ab6121de565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156122d05783516001600160a01b03168352602093840193909201916001016122a9565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f60608486031215612302575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200481b0d5c9018d76cef66f8c0310c2d2d1001cd2c7a9b63e02e31399950cc6f364736f6c634300081a0033

Deployed Bytecode Sourcemap

5186:14044:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7011:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7011:56:0;;;;;;;;8578:80;;;;;;;;;;-1:-1:-1;8650:5:0;;;;;;;;;;;;-1:-1:-1;;;8650:5:0;;;;8578:80;;;;;;;:::i;6930:31::-;;;;;;;;;;-1:-1:-1;6930:31:0;;;;;;;;;;;784:14:1;;777:22;759:41;;747:2;732:18;6930:31:0;619:187:1;9000:216:0;;;;;;;;;;-1:-1:-1;9000:216:0;;;;;:::i;:::-;;:::i;19012:150::-;;;;;;;;;;-1:-1:-1;19012:150:0;;;;;:::i;:::-;;:::i;8308:88::-;;;;;;;;;;-1:-1:-1;8381:12:0;;8308:88;;17885:437;;;;;;;;;;-1:-1:-1;17885:437:0;;;;;:::i;:::-;;:::i;:::-;;6402:89;;;;;;;;;;;;;;;;18493:182;;;;;;;;;;-1:-1:-1;18493:182:0;;;;;:::i;:::-;;:::i;9518:370::-;;;;;;;;;;-1:-1:-1;9518:370:0;;;;;:::i;:::-;;:::i;18687:142::-;;;;;;;;;;;;;:::i;8402:80::-;;;;;;;;;;-1:-1:-1;8402:80:0;;5381:2;2655:36:1;;2643:2;2628:18;8402:80:0;2513:184:1;16844:200:0;;;;;;;;;;-1:-1:-1;16844:200:0;;;;;:::i;:::-;;:::i;9224:122::-;;;;;;;;;;-1:-1:-1;9224:122:0;;;;;:::i;:::-;;:::i;9896:399::-;;;;;;;;;;-1:-1:-1;9896:399:0;;;;;:::i;:::-;;:::i;16529:91::-;;;;;;;;;;-1:-1:-1;16529:91:0;;;;;:::i;:::-;;:::i;17052:119::-;;;;;;;;;;-1:-1:-1;17052:119:0;;;;;:::i;:::-;;:::i;6974:30::-;;;;;;;;;;-1:-1:-1;6974:30:0;;;;;;;;;;;8748:105;;;;;;;;;;-1:-1:-1;8748:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8832:18:0;8814:7;8832:18;;;:9;:18;;;;;;;8748:105;3237:148;;;;;;;;;;;;;:::i;14053:301::-;;;;;;;;;;-1:-1:-1;14053:301:0;;;;;:::i;:::-;;:::i;5895:63::-;;;;;;;;;;;;;;;;5828:60;;;;;;;;;;;;;;;;14362:205;;;;;;;;;;-1:-1:-1;14362:205:0;;;;;:::i;:::-;;:::i;10558:158::-;;;;;;;;;;-1:-1:-1;10558:158:0;;;;;:::i;:::-;;:::i;17314:563::-;;;;;;;;;;-1:-1:-1;17314:563:0;;;;;:::i;:::-;;:::i;8664:78::-;;;;;;;;;;-1:-1:-1;8716:7:0;3088:6;-1:-1:-1;;;;;3088:6:0;8664:78;;;-1:-1:-1;;;;;6032:32:1;;;6014:51;;6002:2;5987:18;8664:78:0;5868:203:1;3023:79:0;;;;;;;;;;-1:-1:-1;3061:7:0;3088:6;-1:-1:-1;;;;;3088:6:0;3023:79;;5651:28;;;;;;;;;;-1:-1:-1;5651:28:0;;;;;;;;8488:84;;;;;;;;;;-1:-1:-1;8562:7:0;;;;;;;;;;;;-1:-1:-1;;;8562:7:0;;;;8488:84;;6615:19;;;;;;;;;;-1:-1:-1;6615:19:0;;;;-1:-1:-1;;;;;6615:19:0;;;9354:156;;;;;;;;;;-1:-1:-1;9354:156:0;;;;;:::i;:::-;;:::i;2645:21::-;;;;;;;;;;-1:-1:-1;2645:21:0;;;;-1:-1:-1;;;;;2645:21:0;;;5686:41;;;;;;;;;;-1:-1:-1;5686:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14575:77;;;;;;;;;;;;;:::i;5597:45::-;;;;;;;;;;-1:-1:-1;5597:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18837:167;;;;;;;;;;-1:-1:-1;18837:167:0;;;;;:::i;:::-;;:::i;13816:229::-;;;;;;;;;;-1:-1:-1;13816:229:0;;;;;:::i;:::-;;:::i;16628:208::-;;;;;;;;;;-1:-1:-1;16628:208:0;;;;;:::i;:::-;;:::i;8859:133::-;;;;;;;;;;-1:-1:-1;8859:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8961:19:0;;;8943:7;8961:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8859:133;18330:155;;;;;;;;;;-1:-1:-1;18330:155:0;;;;;:::i;:::-;;:::i;3393:244::-;;;;;;;;;;-1:-1:-1;3393:244:0;;;;;:::i;:::-;;:::i;17179:127::-;;;;;;;;;;-1:-1:-1;17179:127:0;;;;;:::i;:::-;;:::i;6542:27::-;;;;;;;;;;-1:-1:-1;6542:27:0;;;;-1:-1:-1;;;;;6542:27:0;;;10303:247;;;;;;;;;;-1:-1:-1;10303:247:0;;;;;:::i;:::-;;:::i;9000:216::-;9104:10;9075:4;9092:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9092:32:0;;;;;;;;;;:41;;;9149:37;9075:4;;9092:32;;9149:37;;;;9127:6;160:25:1;;148:2;133:18;;14:177;9149:37:0;;;;;;;;-1:-1:-1;9204:4:0;9000:216;;;;;:::o;19012:150::-;19092:4;19148:6;19116:29;19136:8;19116:19;:29::i;:::-;:38;;19012:150;-1:-1:-1;;;19012:150:0:o;17885:437::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;;;;;;;;;18080:21:::1;:46:::0;;-1:-1:-1;;;;;;18080:46:0;;::::1;-1:-1:-1::0;;;;;18080:46:0;;::::1;;::::0;;;18137:20:::1;:44:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18192:14:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;18235:15:::1;:34:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;18280:15:::1;:34:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;17885:437::o;18493:182::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;18590:15:::1;:25:::0;;;;18626:26:::1;:41:::0;18493:182::o;9518:370::-;-1:-1:-1;;;;;9638:19:0;;9618:4;9638:19;;;:11;:19;;;;;;;;9658:10;9638:31;;;;;;;;-1:-1:-1;;9638:52:0;9635:186;;9740:69;;;;;;;;;;;-1:-1:-1;;;9740:69:0;;;;;;;;-1:-1:-1;;;;;9740:19:0;;-1:-1:-1;9740:19:0;;;:11;:19;;;;;9760:10;9740:31;;;;;;;;;;:69;;9776:6;;9740:35;:69::i;:::-;-1:-1:-1;;;;;9706:19:0;;;;;;:11;:19;;;;;;;;9726:10;9706:31;;;;;;;:103;9635:186;9840:40;9854:6;9862:9;9873:6;9840:13;:40::i;:::-;9833:47;;9518:370;;;;;;:::o;18687:142::-;18815:4;;-1:-1:-1;;;;;18815:4:0;18740:7;8832:18;;;:9;:18;;;;;;18767:54;;18794:4;;-1:-1:-1;;;;;18794:4:0;8814:7;8832:18;;;:9;:18;;;;;;18767:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;18760:61;;18687:142;:::o;16844:200::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;16941:9:::1;16936:101;16952:20:::0;;::::1;16936:101;;;17019:6;16994:8;:22;17003:9;;17013:1;17003:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16994:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16994:22:0;:31;;-1:-1:-1;;16994:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16974:3:0::1;16936:101;;;;16844:200:::0;;;:::o;9224:122::-;9279:4;9303:35;9311:7;-1:-1:-1;;9303:7:0;:35::i;9896:399::-;10024:4;10009:12;;:19;;;;:::i;:::-;9993:12;;:35;;9985:44;;;;;;10121:4;10104:12;10089;;:27;;;;:::i;:::-;10088:37;;;;:::i;:::-;10073:12;:52;10163:12;;:19;;10178:4;;10163:19;:::i;:::-;10144:15;;:38;;10136:47;;;;;;10266:3;10247:14;10232:12;;:29;;;;:::i;:::-;10231:38;;;;:::i;:::-;10213:15;:56;-1:-1:-1;;9896:399:0:o;16529:91::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;16592:8:::1;:18:::0;;-1:-1:-1;;16592:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16529:91::o;17052:119::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17135:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;17135:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17052:119::o;3237:148::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;3344:1:::1;3328:6:::0;;3307:40:::1;::::0;-1:-1:-1;;;;;3328:6:0;;::::1;::::0;3307:40:::1;::::0;3344:1;;3307:40:::1;3375:1;3358:19:::0;;-1:-1:-1;;;;;;3358:19:0::1;::::0;;3237:148::o;14053:301::-;14166:10;14132:4;14157:20;;;:8;:20;;;;;;;;14149:29;;;;;;14189:6;14199:1;14189:11;14186:95;;14225:44;;-1:-1:-1;;;14225:44:0;;14263:4;14225:44;;;6014:51:1;-1:-1:-1;;;;;14225:29:0;;;;;5987:18:1;;14225:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14216:53;;14186:95;14298:48;;-1:-1:-1;;;14298:48:0;;14327:10;14298:48;;;8365:51:1;8432:18;;;8425:34;;;-1:-1:-1;;;;;14298:28:0;;;;;8338:18:1;;14298:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14362:205::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;14464:14:::1;:22:::0;;;;14497:13:::1;:20:::0;;;;14528:18:::1;:27:::0;14362:205::o;10558:158::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;10671:4:::1;10656:12;;:19;;;;:::i;:::-;10640:12;;:35;;10632:44;;;::::0;::::1;;10687:12;:21:::0;10558:158::o;17314:563::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;17485:12:::1;:28:::0;;;17524:7:::1;:18:::0;;;17553:12:::1;:28:::0;;;17592:6:::1;:16:::0;;;17619:7:::1;:18:::0;;;17659:73:::1;17629:8:::0;17659:59:::1;17601:7:::0;17659:59;17568:13;17659:59;17500:13;17534:8;17659:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:73::-;17648:8;:84:::0;17743:14:::1;:32:::0;;;17805:16:::1;17820:1;17760:15:::0;17805:16:::1;:::i;:::-;17794:8;;:27;17786:68;;;::::0;-1:-1:-1;;;17786:68:0;;8922:2:1;17786:68:0::1;::::0;::::1;8904:21:1::0;8961:2;8941:18;;;8934:30;9000;8980:18;;;8973:58;9048:18;;17786:68:0::1;8720:352:1::0;17786:68:0::1;17314:563:::0;;;;;;:::o;9354:156::-;9434:4;9458:44;9472:10;9484:9;9495:6;9458:13;:44::i;14575:77::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;14626:11:::1;:18:::0;;-1:-1:-1;;14626:18:0::1;14640:4;14626:18;::::0;;14575:77::o;18837:167::-;18905:7;18932:64;18973:22;:20;:22::i;:::-;18955:4;;-1:-1:-1;;;;;18955:4:0;8814:7;8832:18;;;:9;:18;;;;;;18932:36;;18945:22;;18965:1;;18945:15;:19;;:22::i;:::-;18932:8;;:12;:36::i;:::-;:40;;:64::i;13816:229::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;13971:20:::1;::::0;13931:21:::1;::::0;-1:-1:-1;;;;;13971:20:0::1;13963:74;14033:3;14002:28;14014:16:::0;13931:21;14002:28:::1;:::i;:::-;:34;;;;:::i;:::-;13963:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13884:161;13816:229:::0;:::o;16628:208::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;16729:9:::1;16724:105;16740:20:::0;;::::1;16724:105;;;16811:6;16782:12;:26;16795:9;;16805:1;16795:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16782:26:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;16782:26:0;:35;;-1:-1:-1;;16782:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;16762:3:0::1;16724:105;;18330:155:::0;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;18421:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;18421:22:0;;::::1;::::0;;;::::1;::::0;;;18454:13:::1;:23:::0;18330:155::o;3393:244::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3482:22:0;::::1;3474:73;;;::::0;-1:-1:-1;;;3474:73:0;;9279:2:1;3474:73:0::1;::::0;::::1;9261:21:1::0;9318:2;9298:18;;;9291:30;9357:34;9337:18;;;9330:62;-1:-1:-1;;;9408:18:1;;;9401:36;9454:19;;3474:73:0::1;9077:402:1::0;3474:73:0::1;3584:6;::::0;;3563:38:::1;::::0;-1:-1:-1;;;;;3563:38:0;;::::1;::::0;3584:6;::::1;::::0;3563:38:::1;::::0;::::1;3612:6;:17:::0;;-1:-1:-1;;;;;;3612:17:0::1;-1:-1:-1::0;;;;;3612:17:0;;;::::1;::::0;;;::::1;::::0;;3393:244::o;17179:127::-;3150:6;;-1:-1:-1;;;;;3150:6:0;656:10;3150:22;3142:67;;;;-1:-1:-1;;;3142:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17266:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17266:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17179:127::o;10303:247::-;10379:10;10370:20;;;;:8;:20;;;;;;;;10362:29;;;;;;10441:4;10426:12;;:19;;;;:::i;:::-;10410:12;;:35;;10402:44;;;;;;10538:4;10521:12;10506;;:27;;;;:::i;:::-;10505:37;;;;:::i;:::-;10490:12;:52;-1:-1:-1;10303:247:0:o;1072:154::-;1158:7;1184:12;1176:6;;;;1168:29;;;;-1:-1:-1;;;1168:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1198:9:0;1210:5;1214:1;1210;:5;:::i;:::-;1198:17;1072:154;-1:-1:-1;;;;;1072:154:0:o;10724:1291::-;10836:6;;10816:4;;10836:6;;10833:63;;;10852:41;10867:6;10875:9;10886:6;10852:14;:41::i;:::-;10845:48;;;;10833:63;-1:-1:-1;;;;;10912:22:0;;;;;;:14;:22;;;;;;;;10911:23;:53;;;;-1:-1:-1;;;;;;10939:25:0;;;;;;:14;:25;;;;;;;;10938:26;10911:53;10908:232;;;10988:11;;;;10980:43;;;;-1:-1:-1;;;10980:43:0;;9819:2:1;10980:43:0;;;9801:21:1;9858:2;9838:18;;;9831:30;-1:-1:-1;;;9877:18:1;;;9870:50;9937:18;;10980:43:0;9617:344:1;10980:43:0;11039:8;;;;11036:93;;;-1:-1:-1;;;;;11075:19:0;;;;;;:8;:19;;;;;;;;11067:46;;;;-1:-1:-1;;;11067:46:0;;10168:2:1;11067:46:0;;;10150:21:1;10207:2;10187:18;;;10180:30;-1:-1:-1;;;10226:18:1;;;10219:45;10281:18;;11067:46:0;9966:339:1;11067:46:0;-1:-1:-1;;;;;11157:22:0;;;;;;:14;:22;;;;;;;;11156:23;:53;;;;-1:-1:-1;;;;;;11183:26:0;;11204:4;11183:26;;11156:53;:84;;;;-1:-1:-1;11235:4:0;;-1:-1:-1;;;;;11214:26:0;;;11235:4;;11214:26;;11156:84;:105;;;;-1:-1:-1;11257:4:0;;-1:-1:-1;;;;;11244:17:0;;;11257:4;;11244:17;;11156:105;:137;;;;-1:-1:-1;11278:15:0;;-1:-1:-1;;;;;11265:28:0;;;11278:15;;11265:28;;11156:137;:174;;;;-1:-1:-1;11310:20:0;;-1:-1:-1;;;;;11297:33:0;;;11310:20;;11297:33;;11156:174;:205;;;;-1:-1:-1;;;;;;11335:26:0;;;;;;:15;:26;;;;;;;;11334:27;11156:205;11152:397;;;-1:-1:-1;;;;;8832:18:0;;11377;8832;;;:9;:18;;;;;;11466:15;;11442:19;11455:6;8832:18;11442:19;:::i;:::-;11441:40;;11433:114;;;;-1:-1:-1;;;11433:114:0;;10642:2:1;11433:114:0;;;10624:21:1;10681:2;10661:18;;;10654:30;10720:34;10700:18;;;10693:62;10791:32;10771:18;;;10764:60;10841:19;;11433:114:0;10440:426:1;11433:114:0;11362:187;11152:397;11561:28;11574:6;11582;11561:12;:28::i;:::-;11604:16;:14;:16::i;:::-;11601:35;;;11623:10;:8;:10::i;:::-;11666:53;;;;;;;;;;;-1:-1:-1;;;11666:53:0;;;;;;;;-1:-1:-1;;;;;11666:17:0;;-1:-1:-1;11666:17:0;;;:9;:17;;;;;;;;:53;;11688:6;;11666:21;:53::i;:::-;-1:-1:-1;;;;;11646:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11758:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11781:22:0;;;;;;:11;:22;;;;;;;;11758:45;11757:93;;11816:34;11824:6;11832;11840:9;11816:7;:34::i;:::-;11757:93;;;11807:6;11757:93;-1:-1:-1;;;;;11884:20:0;;;;;;:9;:20;;;;;;11732:118;;-1:-1:-1;11884:40:0;;11732:118;11884:24;:40::i;:::-;-1:-1:-1;;;;;11861:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11942:43;;;;;;-1:-1:-1;;;;;;;;;;;11942:43:0;;;11970:14;160:25:1;;148:2;133:18;;14:177;11942:43:0;;;;;;;;-1:-1:-1;12003:4:0;;10724:1291;-1:-1:-1;;;;10724:1291:0:o;946:120::-;1004:7;1021:43;1025:1;1028;1021:43;;;;;;;;;;;;;;;;;:3;:43::i;795:145::-;853:7;;875:5;879:1;875;:5;:::i;:::-;863:17;;895:1;890;:6;;882:46;;;;-1:-1:-1;;;882:46:0;;11073:2:1;882:46:0;;;11055:21:1;11112:2;11092:18;;;11085:30;11151:29;11131:18;;;11124:57;11198:18;;882:46:0;10871:351:1;1232:177:0;1290:7;1304:1;1309;1304:6;1300:23;;-1:-1:-1;1320:1:0;1313:8;;1300:23;1323:9;1335:5;1339:1;1335;:5;:::i;:::-;1323:17;-1:-1:-1;1359:1:0;1350:5;1354:1;1323:17;1350:5;:::i;:::-;:10;1342:56;;;;-1:-1:-1;;;1342:56:0;;11429:2:1;1342:56:0;;;11411:21:1;11468:2;11448:18;;;11441:30;11507:34;11487:18;;;11480:62;-1:-1:-1;;;11558:18:1;;;11551:31;11599:19;;1342:56:0;11227:397:1;1415:116:0;1473:7;1490:39;1494:1;1497;1490:39;;;;;;;;;;;;;;;;;:3;:39::i;12027:330::-;12157:53;;;;;;;;;;;-1:-1:-1;;;12157:53:0;;;;;;;;-1:-1:-1;;;;;12157:17:0;;12120:4;12157:17;;;:9;:17;;;;;;;:53;;12179:6;;12157:21;:53::i;:::-;-1:-1:-1;;;;;12137:17:0;;;;;;;:9;:17;;;;;;:73;;;;12244:20;;;;;;;:32;;12269:6;12244:24;:32::i;:::-;-1:-1:-1;;;;;12221:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12292:35;;;;;;-1:-1:-1;;;;;;;;;;;12292:35:0;;;12320:6;160:25:1;;148:2;133:18;;14:177;12292:35:0;;;;;;;;-1:-1:-1;12345:4:0;12027:330;;;;;:::o;12365:166::-;12462:12;;12452:6;:22;;:49;;;-1:-1:-1;;;;;;12478:23:0;;;;;;:15;:23;;;;;;;;12452:49;12444:79;;;;-1:-1:-1;;;12444:79:0;;11831:2:1;12444:79:0;;;11813:21:1;11870:2;11850:18;;;11843:30;-1:-1:-1;;;11889:18:1;;;11882:47;11946:18;;12444:79:0;11629:341:1;12444:79:0;12365:166;;:::o;13611:197::-;13698:4;;13660;;-1:-1:-1;;;;;13698:4:0;13684:10;:18;;;;:38;;-1:-1:-1;13716:6:0;;;;13715:7;13684:38;:62;;;;-1:-1:-1;13735:11:0;;;;;;;13684:62;:116;;;;-1:-1:-1;;13787:13:0;;13777:4;13759:24;;;;:9;:24;;;;;;:41;;;13611:197::o;14660:1861::-;7115:6;:13;;-1:-1:-1;;7115:13:0;7124:4;7115:13;;;14755:15:::1;::::0;14772:26:::1;::::0;7115:6;;14739:60:::1;::::0;:15:::1;:60::i;:::-;:79;;14806:12;;14739:79;;;14802:1;14739:79;14709:109;;14829:23;14855:59;14912:1;14855:52;14898:8;;14855:38;14873:19;14855:13;;:17;;:38;;;;:::i;:59::-;14829:85;;14925:20;14948:34;14966:15;14948:13;;:17;;:34;;;;:::i;:::-;15019:16;::::0;;15033:1:::1;15019:16:::0;;;;;::::1;::::0;;14925:57;;-1:-1:-1;14995:21:0::1;::::0;15019:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15019:16:0::1;14995:40;;15064:4;15046;15051:1;15046:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15046:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15090:4:::1;::::0;15080:7;;15090:4;::::1;::::0;15080;;15090;;15080:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15080:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15165:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;15165:188:0;;15131:21:::1;::::0;15165:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15237:12;;15107:21:::1;::::0;15280:4;;15307::::1;::::0;15327:15:::1;::::0;15165:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15366:17;15386:40;15412:13;15386:21;:25;;:40;;;;:::i;:::-;15366:60:::0;-1:-1:-1;15439:19:0::1;15461:40;15474:26;:19:::0;15498:1:::1;15474:23;:26::i;:::-;15461:8;::::0;;:12:::1;:40::i;:::-;15439:62:::0;-1:-1:-1;15522:26:0::1;15551:58;15607:1;15551:51;15439:62:::0;15551:51;:9;15565:19;15551:13:::1;:34::i;:58::-;15522:87;;15620:26;15649:44;15681:11;15649:27;15663:12;;15649:9;:13;;:27;;;;:::i;:44::-;15620:73;;15704:21;15728:39;15755:11;15728:22;15742:7;;15728:9;:13;;:22;;;;:::i;:39::-;15704:63;;15778:20;15801:38;15827:11;15801:21;15815:6;;15801:9;:13;;:21;;;;:::i;:38::-;15881:20;::::0;15873:65:::1;::::0;15778:61;;-1:-1:-1;15853:15:0::1;::::0;-1:-1:-1;;;;;15881:20:0;;::::1;::::0;15915:18;;15853:15;15873:65;15853:15;15873:65;15915:18;15881:20;15873:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15973:14:0::1;::::0;15965:53:::1;::::0;15852:86;;-1:-1:-1;;;;;;15973:14:0::1;::::0;16001:12;;15965:53:::1;::::0;;;16001:12;15973:14;15965:53:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;16053:15:0::1;::::0;16045:55:::1;::::0;15949:69;;-1:-1:-1;;;;;;16053:15:0::1;::::0;16082:13;;16045:55:::1;::::0;;;16082:13;16053:15;16045:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16134:5:0::1;::::0;-1:-1:-1;;16155:19:0;;;-1:-1:-1;16152:362:0::1;;16190:6;::::0;16364:21:::1;::::0;16190:244:::1;::::0;-1:-1:-1;;;16190:244:0;;16266:4:::1;16190:244;::::0;::::1;13584:51:1::0;13651:18;;;13644:34;;;16190:6:0::1;13694:18:1::0;;;13687:34;;;13737:18;;;13730:34;-1:-1:-1;;;;;16364:21:0;;::::1;13780:19:1::0;;;13773:61;16404:15:0::1;13850:19:1::0;;;13843:35;16190:6:0;::::1;::::0;:22:::1;::::0;16220:18;;13556:19:1;;16190:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;16454:48:0::1;::::0;;14524:25:1;;;14580:2;14565:18;;14558:34;;;16454:48:0::1;::::0;-1:-1:-1;14497:18:1;16454:48:0::1;;;;;;;16152:362;-1:-1:-1::0;;7133:6:0;:14;;-1:-1:-1;;7133:14:0;;;-1:-1:-1;;;;;;;;;;14660:1861:0:o;12661:942::-;12798:18;;12845:4;;12747:7;;12798:18;-1:-1:-1;;;;;12845:4:0;;;12832:17;;;;12829:154;;-1:-1:-1;12879:14:0;;12829:154;;;12924:4;;-1:-1:-1;;;;;12924:4:0;;;12914:14;;;;12911:72;;-1:-1:-1;12958:13:0;;12911:72;12995:17;13015:62;13056:14;;13073:3;13056:20;;;;:::i;:::-;13015:36;13040:10;13015:20;13026:8;;13015:6;:10;;:20;;;;:::i;:62::-;12995:82;;13088:18;13109:36;13136:8;;13109:22;13123:7;;13109:9;:13;;:22;;;;:::i;:36::-;13088:57;-1:-1:-1;13156:22:0;13181:25;:9;13088:57;13181:13;:25::i;:::-;13264:4;13246:24;;;;:9;:24;;;;;;13156:50;;-1:-1:-1;13246:44:0;;13156:50;13246:28;:44::i;:::-;13237:4;13219:24;;;;:9;:24;;;;;;;;:71;;;;13340:15;-1:-1:-1;;;;;13340:15:0;13330:26;;;;:42;;13361:10;13330:30;:42::i;:::-;13311:15;;;-1:-1:-1;;;;;13311:15:0;;;13301:26;;;;:9;:26;;;;;;;:71;;;;13388:47;;160:25:1;;;13413:4:0;;13388:47;;;-1:-1:-1;;;;;;;;;;;13388:47:0;133:18:1;13388:47:0;;;;;;;13459:14;;13456:99;;13511:15;;;13494:45;;160:25:1;;;-1:-1:-1;;;;;13511:15:0;;;;13494:45;;;;-1:-1:-1;;;;;;;;;;;13494:45:0;133:18:1;13494:45:0;;;;;;;13456:99;13574:21;:6;13585:9;13574:10;:21::i;:::-;13567:28;12661:942;-1:-1:-1;;;;;;;;12661:942:0:o;1537:153::-;1623:7;1648:12;1641:5;1633:28;;;;-1:-1:-1;;;1633:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1662:9:0;1674:5;1678:1;1674;:5;:::i;196:418:1:-;345:2;334:9;327:21;308:4;377:6;371:13;420:6;415:2;404:9;400:18;393:34;479:6;474:2;466:6;462:15;457:2;446:9;442:18;436:50;535:1;530:2;521:6;510:9;506:22;502:31;495:42;605:2;598;594:7;589:2;581:6;577:15;573:29;562:9;558:45;554:54;546:62;;;196:418;;;;:::o;811:173::-;879:20;;-1:-1:-1;;;;;928:31:1;;918:42;;908:70;;974:1;971;964:12;908:70;811:173;;;:::o;989:300::-;1057:6;1065;1118:2;1106:9;1097:7;1093:23;1089:32;1086:52;;;1134:1;1131;1124:12;1086:52;1157:29;1176:9;1157:29;:::i;:::-;1147:39;1255:2;1240:18;;;;1227:32;;-1:-1:-1;;;989:300:1:o;1294:346::-;1362:6;1370;1423:2;1411:9;1402:7;1398:23;1394:32;1391:52;;;1439:1;1436;1429:12;1391:52;-1:-1:-1;;1484:23:1;;;1604:2;1589:18;;;1576:32;;-1:-1:-1;1294:346:1:o;1645:484::-;1740:6;1748;1756;1764;1772;1825:3;1813:9;1804:7;1800:23;1796:33;1793:53;;;1842:1;1839;1832:12;1793:53;1865:29;1884:9;1865:29;:::i;:::-;1855:39;;1913:38;1947:2;1936:9;1932:18;1913:38;:::i;:::-;1903:48;;1970:38;2004:2;1993:9;1989:18;1970:38;:::i;:::-;1960:48;;2027:38;2061:2;2050:9;2046:18;2027:38;:::i;:::-;2017:48;;2084:39;2118:3;2107:9;2103:19;2084:39;:::i;:::-;2074:49;;1645:484;;;;;;;;:::o;2134:374::-;2211:6;2219;2227;2280:2;2268:9;2259:7;2255:23;2251:32;2248:52;;;2296:1;2293;2286:12;2248:52;2319:29;2338:9;2319:29;:::i;:::-;2309:39;;2367:38;2401:2;2390:9;2386:18;2367:38;:::i;:::-;2134:374;;2357:48;;-1:-1:-1;;;2474:2:1;2459:18;;;;2446:32;;2134:374::o;2702:118::-;2788:5;2781:13;2774:21;2767:5;2764:32;2754:60;;2810:1;2807;2800:12;2754:60;2702:118;:::o;2825:745::-;2917:6;2925;2933;2986:2;2974:9;2965:7;2961:23;2957:32;2954:52;;;3002:1;2999;2992:12;2954:52;3042:9;3029:23;3075:18;3067:6;3064:30;3061:50;;;3107:1;3104;3097:12;3061:50;3130:22;;3183:4;3175:13;;3171:27;-1:-1:-1;3161:55:1;;3212:1;3209;3202:12;3161:55;3252:2;3239:16;3278:18;3270:6;3267:30;3264:50;;;3310:1;3307;3300:12;3264:50;3365:7;3358:4;3348:6;3345:1;3341:14;3337:2;3333:23;3329:34;3326:47;3323:67;;;3386:1;3383;3376:12;3323:67;3417:4;3409:13;;;;-1:-1:-1;3441:6:1;-1:-1:-1;3482:20:1;;3469:34;3512:28;3469:34;3512:28;:::i;:::-;3559:5;3549:15;;;2825:745;;;;;:::o;3575:186::-;3634:6;3687:2;3675:9;3666:7;3662:23;3658:32;3655:52;;;3703:1;3700;3693:12;3655:52;3726:29;3745:9;3726:29;:::i;3766:241::-;3822:6;3875:2;3863:9;3854:7;3850:23;3846:32;3843:52;;;3891:1;3888;3881:12;3843:52;3930:9;3917:23;3949:28;3971:5;3949:28;:::i;4012:315::-;4077:6;4085;4138:2;4126:9;4117:7;4113:23;4109:32;4106:52;;;4154:1;4151;4144:12;4106:52;4177:29;4196:9;4177:29;:::i;:::-;4167:39;;4256:2;4245:9;4241:18;4228:32;4269:28;4291:5;4269:28;:::i;:::-;4316:5;4306:15;;;4012:315;;;;;:::o;4332:466::-;4409:6;4417;4425;4478:2;4466:9;4457:7;4453:23;4449:32;4446:52;;;4494:1;4491;4484:12;4446:52;-1:-1:-1;;4539:23:1;;;4659:2;4644:18;;4631:32;;-1:-1:-1;4762:2:1;4747:18;;;4734:32;;4332:466;-1:-1:-1;4332:466:1:o;4803:226::-;4862:6;4915:2;4903:9;4894:7;4890:23;4886:32;4883:52;;;4931:1;4928;4921:12;4883:52;-1:-1:-1;4976:23:1;;4803:226;-1:-1:-1;4803:226:1:o;5034:829::-;5138:6;5146;5154;5162;5170;5178;5231:3;5219:9;5210:7;5206:23;5202:33;5199:53;;;5248:1;5245;5238:12;5199:53;-1:-1:-1;;5293:23:1;;;5413:2;5398:18;;5385:32;;-1:-1:-1;5516:2:1;5501:18;;5488:32;;5619:2;5604:18;;5591:32;;-1:-1:-1;5722:3:1;5707:19;;5694:33;;-1:-1:-1;5826:3:1;5811:19;5798:33;;-1:-1:-1;5034:829:1;-1:-1:-1;5034:829:1:o;6076:260::-;6144:6;6152;6205:2;6193:9;6184:7;6180:23;6176:32;6173:52;;;6221:1;6218;6211:12;6173:52;6244:29;6263:9;6244:29;:::i;:::-;6234:39;;6292:38;6326:2;6315:9;6311:18;6292:38;:::i;:::-;6282:48;;6076:260;;;;;:::o;6341:361::-;6406:6;6414;6467:2;6455:9;6446:7;6442:23;6438:32;6435:52;;;6483:1;6480;6473:12;6435:52;6522:9;6509:23;6541:28;6563:5;6541:28;:::i;6936:356::-;7138:2;7120:21;;;7157:18;;;7150:30;7216:34;7211:2;7196:18;;7189:62;7283:2;7268:18;;6936:356::o;7297:127::-;7358:10;7353:3;7349:20;7346:1;7339:31;7389:4;7386:1;7379:15;7413:4;7410:1;7403:15;7429:127;7490:10;7485:3;7481:20;7478:1;7471:31;7521:4;7518:1;7511:15;7545:4;7542:1;7535:15;7561:217;7601:1;7627;7617:132;;7671:10;7666:3;7662:20;7659:1;7652:31;7706:4;7703:1;7696:15;7734:4;7731:1;7724:15;7617:132;-1:-1:-1;7763:9:1;;7561:217::o;7783:168::-;7856:9;;;7887;;7904:15;;;7898:22;;7884:37;7874:71;;7925:18;;:::i;7956:230::-;8026:6;8079:2;8067:9;8058:7;8054:23;8050:32;8047:52;;;8095:1;8092;8085:12;8047:52;-1:-1:-1;8140:16:1;;7956:230;-1:-1:-1;7956:230:1:o;8470:245::-;8537:6;8590:2;8578:9;8569:7;8565:23;8561:32;8558:52;;;8606:1;8603;8596:12;8558:52;8638:9;8632:16;8657:28;8679:5;8657:28;:::i;9484:128::-;9551:9;;;9572:11;;;9569:37;;;9586:18;;:::i;10310:125::-;10375:9;;;10396:10;;;10393:36;;;10409:18;;:::i;12107:959::-;12369:4;12417:3;12406:9;12402:19;12448:6;12437:9;12430:25;12491:6;12486:2;12475:9;12471:18;12464:34;12534:3;12529:2;12518:9;12514:18;12507:31;12558:6;12593;12587:13;12624:6;12616;12609:22;12662:3;12651:9;12647:19;12640:26;;12701:2;12693:6;12689:15;12675:29;;12722:1;12732:195;12746:6;12743:1;12740:13;12732:195;;;12811:13;;-1:-1:-1;;;;;12807:39:1;12795:52;;12876:2;12902:15;;;;12867:12;;;;12843:1;12761:9;12732:195;;;-1:-1:-1;;;;;;;12983:32:1;;;;12978:2;12963:18;;12956:60;-1:-1:-1;;13047:3:1;13032:19;13025:35;12944:3;12107:959;-1:-1:-1;;;12107:959:1:o;13889:456::-;13977:6;13985;13993;14046:2;14034:9;14025:7;14021:23;14017:32;14014:52;;;14062:1;14059;14052:12;14014:52;-1:-1:-1;;14107:16:1;;14213:2;14198:18;;14192:25;14309:2;14294:18;;;14288:25;14107:16;;14192:25;;-1:-1:-1;14288:25:1;13889:456;-1:-1:-1;13889:456:1:o

Swarm Source

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