ETH Price: $2,963.01 (+1.08%)
Gas: 2 Gwei

Token

Guan Shi Yin (GUSHI)
 

Overview

Max Total Supply

10,000,000 GUSHI

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
777.8 GUSHI

Value
$0.00
0x92665e8970b4bbdd3f10a2253d54eab647ad62dd
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:
GUSHI

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity >=0.7.0 <0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    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);
}

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

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    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 IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

contract GUSHI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Guan Shi Yin";
    string private constant _symbol = "GUSHI";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _balances;
    mapping(address => uint256) private cooldown;
    mapping(address => bool) private bots;
    mapping (address => uint256) private _lastTX;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    
    uint256 private constant _tTotal = 100 * 1e5 * 1e9;
    uint256 public _maxWalletAmount = 3 * 1e5 * 1e9;

    // fees
    uint256 public _liquidityFeeOnBuy = 0; 
    uint256 public _marketingFeeOnBuy = 10; 

    uint256 public _liquidityFeeOnSell = 0; 
    uint256 public _marketingFeeOnSell = 10; 
    
    uint256 private _previousLiquidityFee = _liquidityFee;
    uint256 private _previousMarketingFee = _marketingFee;
    uint256 private _liquidityFee;
    uint256 private _marketingFee;
    
    struct FeeBreakdown {
        uint256 tLiquidity;
        uint256 tMarketing;
        uint256 tAmount;
    }

    address payable private dev = payable(0x2AdD16cc83c2BaC513fF596e16D6BD0F8D0357D8);
    address payable private mktg = payable(0x0a8E4fe8c1d2dc6C75de921deBFeDec9041Cb857);

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;

    uint256 public swapAmount;
    uint256 private _firstBlock;

    bool public botProtection = true;
    bool private inSwap = false;
    bool public cooldownEnabled = false;
    bool public swapEnabled = false;

    event FeesUpdated(uint256 _marketingFee, uint256 _liquidityFee);

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

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
        swapAmount = 3 * 1e4 * 1e9;
        
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[dev] = true;
        _isExcludedFromFee[mktg] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() external pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function removeAllFee() private {
        if (_marketingFee == 0 && _liquidityFee == 0) return;
        _previousMarketingFee = _marketingFee;
        _previousLiquidityFee = _liquidityFee;

        _liquidityFee = 0;
        _marketingFee = 0;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
    
    function restoreAllFee() private {
        
        _liquidityFee = _previousLiquidityFee;
        _marketingFee = _previousMarketingFee;
    }

    function toggleBotProtection(bool onoff) external onlyOwner() {
        botProtection = onoff;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(!swapEnabled){
            require(from == dev); // only owner allowed to trade or add liquidity
        } 

        if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
            if (block.number <= (_firstBlock.add(4))) {
                bots[to] = true;
            } 
        }
        bool takeFee = true;
        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                    require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair, "ERR: Uniswap only");
                }
            
                if( to != owner() && to != address(this) && to != address(uniswapV2Router) && to != uniswapV2Pair) {
                    require(_lastTX[tx.origin] <= (block.timestamp + 5 minutes), "Cooldown in effect");
                    _lastTX[tx.origin] = block.timestamp;
                }
            }
                    
        }

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "wallet balance after transfer must be less than max wallet amount");
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _liquidityFee = _liquidityFeeOnBuy;
                _marketingFee = _marketingFeeOnBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                if (botProtection) {
                require(!bots[to] && !bots[from]);
                }
                _liquidityFee = _liquidityFeeOnSell;
                _marketingFee = _marketingFeeOnSell;
            }
            
            if (!inSwap && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > swapAmount) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee();
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }
    
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
              address(this),
              tokenAmount,
              0, // slippage is unavoidable
              0, // slippage is unavoidable
              dev,
              block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 autoLPamount = _liquidityFee.mul(contractTokenBalance).div(_marketingFee.add(_liquidityFee));

        // split the contract balance into halves
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(otherHalf); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);

        addLiquidity(half, newBalance);
    }

    function sendETHToFee(uint256 amount) private {
        uint256 tfrAmt = amount.div(3);
        mktg.transfer(tfrAmt);
        dev.transfer(amount.sub(tfrAmt));

    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function manualSwap() external {
        require(_msgSender() == dev);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSwapandLiquify() public onlyOwner() {
        uint contractBalance = balanceOf(address(this));
        swapAndLiquify(contractBalance);
    }

    function setTaxRate(uint256 liqFee, uint256 mktgFee, uint256 buyliqFee, uint256 buymktgFee) public onlyOwner() {
        _liquidityFeeOnSell = liqFee;
        _marketingFeeOnSell = mktgFee;
        _liquidityFeeOnBuy = buyliqFee;
        _marketingFeeOnBuy = buymktgFee;
    }

    function manualSend() external {
        require(_msgSender() == dev);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        _transferStandard(sender, recipient, amount);
        restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 amount) private {
        FeeBreakdown memory fees;
        fees.tMarketing = amount.mul(_marketingFee).div(100);
        fees.tLiquidity = amount.mul(_liquidityFee).div(100);
        
        fees.tAmount = amount.sub(fees.tMarketing).sub(fees.tLiquidity);
        
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tMarketing.add(fees.tLiquidity));
        
        emit Transfer(sender, recipient, fees.tAmount);
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == dev);
        require(maxWalletAmount > _tTotal.div(200), "Amount must be greater than 0.5% of supply");
        require(maxWalletAmount <= _tTotal, "Amount must be less than or equal to totalSupply");
        _maxWalletAmount = maxWalletAmount;
    }

    function setMktgaddress(address payable walletAddress) external {
        require(_msgSender() == dev);
        mktg = walletAddress;
    }

    function setSwapAmount(uint256 _swapAmount) external {
        require(_msgSender() == dev);
        swapAmount = _swapAmount;
    }

    function blacklistmany(address[] memory bots_) public onlyOwner() {
        for (uint i = 0; i < bots_.length; i++) {
          bots[bots_[i]] = true;
        }
    }

    function removeFromBlacklist (address _address) external {
        require(_msgSender() == dev);
        bots[_address] = false;
    }
    
    function getIsBlacklistedStatus (address _address) external view returns (bool) {
        return bots[_address];
    }

    function openTrading() external onlyOwner() {
        require(!swapEnabled, "trading is already open");
        _firstBlock = block.number;
        cooldownEnabled = true;
        swapEnabled = true;
    }

    function claimETH (address walletaddress) external {
        require(_msgSender() == dev);
        payable(walletaddress).transfer(address(this).balance);
    }

    function claimAltTokens(IERC20 tokenAddress, address walletaddress) external {
        require(_msgSender() == dev);
        tokenAddress.transfer(walletaddress, tokenAddress.balanceOf(address(this)));
    }


}

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":"_marketingFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"FeesUpdated","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":"_liquidityFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blacklistmany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"botProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"address","name":"walletaddress","type":"address"}],"name":"claimAltTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletaddress","type":"address"}],"name":"claimETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getIsBlacklistedStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapandLiquify","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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"walletAddress","type":"address"}],"name":"setMktgaddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"}],"name":"setSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liqFee","type":"uint256"},{"internalType":"uint256","name":"mktgFee","type":"uint256"},{"internalType":"uint256","name":"buyliqFee","type":"uint256"},{"internalType":"uint256","name":"buymktgFee","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleBotProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052660110d9316ec00060085560006009819055600a808055600b91909155600c55600f54600d55601054600e55601180546001600160a01b0319908116732add16cc83c2bac513ff596e16d6bd0f8d0357d81790915560128054909116730a8e4fe8c1d2dc6c75de921debfedec9041cb8571790556017805463ffffff001960ff199091166001171690553480156200009b57600080fd5b506000620000a862000460565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811791829055906200013b9030906001600160a01b0316662386f26fc1000062000464565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017557600080fd5b505afa1580156200018a573d6000803e3d6000fd5b505050506040513d6020811015620001a157600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b158015620001f257600080fd5b505afa15801562000207573d6000803e3d6000fd5b505050506040513d60208110156200021e57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200027157600080fd5b505af115801562000286573d6000803e3d6000fd5b505050506040513d60208110156200029d57600080fd5b5051601480546001600160a01b0319166001600160a01b0392831617908190556013546040805163095ea7b360e01b81529184166004830152600019602483015251919092169163095ea7b39160448083019260209291908290030181600087803b1580156200030c57600080fd5b505af115801562000321573d6000803e3d6000fd5b505050506040513d60208110156200033857600080fd5b5050651b48eb57e000601555662386f26fc10000600260006200035a62000460565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160076000620003946200055460201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560115482168152600790935281832080548516600190811790915560125490911683528183208054851682179055308352912080549092161790556200040762000460565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040518082815260200191505060405180910390a35062000563565b3390565b6001600160a01b038316620004ab5760405162461bcd60e51b8152600401808060200182810382526024815260200180620029f56024913960400191505060405180910390fd5b6001600160a01b038216620004f25760405162461bcd60e51b8152600401808060200182810382526022815260200180620029d36022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000546001600160a01b031690565b61246080620005736000396000f3fe6080604052600436106102295760003560e01c8063715018a611610123578063bdf4f831116100ab578063dd62ed3e1161006f578063dd62ed3e1461080e578063e581dc7114610849578063e632313c1461085e578063f2fde38b14610888578063f4293890146108bb57610230565b8063bdf4f83114610767578063c4066f2f14610793578063c9567bf9146107a8578063d3dc3ffb146107bd578063d52dfc14146107f957610230565b806395d89b41116100f257806395d89b41146106bc578063a0968680146106d1578063a9059cbb14610704578063a985ceef1461073d578063bb58a9731461075257610230565b8063715018a6146105af5780637e66c0b9146105c45780638cf01f6e146105f75780638da5cb5b146106a757610230565b80633c0a73ae116101b15780635932ead1116101755780635932ead11461051157806361bb0a0a1461053d5780636c0a24eb146105525780636ddd17131461056757806370a082311461057c57610230565b80633c0a73ae146104485780633f9b76071461045d57806349bd5a5e1461049857806351bc3c85146104c9578063537df3b6146104de57610230565b806323b872dd116101f857806323b872dd14610366578063273123b7146103a957806327a14fc2146103de5780632e8fa82114610408578063313ce5671461041d57610230565b806306fdde0314610235578063084e4f8a146102bf578063095ea7b31461030657806318160ddd1461033f57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028457818101518382015260200161026c565b50505050905090810190601f1680156102b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cb57600080fd5b506102f2600480360360208110156102e257600080fd5b50356001600160a01b03166108f6565b604080519115158252519081900360200190f35b34801561031257600080fd5b506102f26004803603604081101561032957600080fd5b506001600160a01b038135169060200135610914565b34801561034b57600080fd5b50610354610932565b60408051918252519081900360200190f35b34801561037257600080fd5b506102f26004803603606081101561038957600080fd5b506001600160a01b0381358116916020810135909116906040013561093d565b3480156103b557600080fd5b506103dc600480360360208110156103cc57600080fd5b50356001600160a01b03166109c4565b005b3480156103ea57600080fd5b506103dc6004803603602081101561040157600080fd5b5035610a3d565b34801561041457600080fd5b50610354610afe565b34801561042957600080fd5b50610432610b04565b6040805160ff9092168252519081900360200190f35b34801561045457600080fd5b50610354610b09565b34801561046957600080fd5b506103dc6004803603604081101561048057600080fd5b506001600160a01b0381358116916020013516610b0f565b3480156104a457600080fd5b506104ad610c3e565b604080516001600160a01b039092168252519081900360200190f35b3480156104d557600080fd5b506103dc610c4d565b3480156104ea57600080fd5b506103dc6004803603602081101561050157600080fd5b50356001600160a01b0316610c93565b34801561051d57600080fd5b506103dc6004803603602081101561053457600080fd5b50351515610cba565b34801561054957600080fd5b506103dc610d2e565b34801561055e57600080fd5b50610354610d9c565b34801561057357600080fd5b506102f2610da2565b34801561058857600080fd5b506103546004803603602081101561059f57600080fd5b50356001600160a01b0316610db2565b3480156105bb57600080fd5b506103dc610dcd565b3480156105d057600080fd5b506103dc600480360360208110156105e757600080fd5b50356001600160a01b0316610e6f565b34801561060357600080fd5b506103dc6004803603602081101561061a57600080fd5b81019060208101813564010000000081111561063557600080fd5b82018360208201111561064757600080fd5b8035906020019184602083028401116401000000008311171561066957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ecf945050505050565b3480156106b357600080fd5b506104ad610f7f565b3480156106c857600080fd5b5061024a610f8e565b3480156106dd57600080fd5b506103dc600480360360208110156106f457600080fd5b50356001600160a01b0316610fad565b34801561071057600080fd5b506102f26004803603604081101561072757600080fd5b506001600160a01b038135169060200135610ff6565b34801561074957600080fd5b506102f261100a565b34801561075e57600080fd5b506102f2611019565b34801561077357600080fd5b506103dc6004803603602081101561078a57600080fd5b50351515611022565b34801561079f57600080fd5b5061035461108d565b3480156107b457600080fd5b506103dc611093565b3480156107c957600080fd5b506103dc600480360360808110156107e057600080fd5b5080359060208101359060408101359060600135611170565b34801561080557600080fd5b506103546111dc565b34801561081a57600080fd5b506103546004803603604081101561083157600080fd5b506001600160a01b03813581169160200135166111e2565b34801561085557600080fd5b5061035461120d565b34801561086a57600080fd5b506103dc6004803603602081101561088157600080fd5b5035611213565b34801561089457600080fd5b506103dc600480360360208110156108ab57600080fd5b50356001600160a01b031661123f565b3480156108c757600080fd5b506103dc611337565b60408051808201909152600c81526b23bab0b71029b434902cb4b760a11b602082015290565b6001600160a01b031660009081526004602052604090205460ff1690565b600061092861092161136e565b8484611372565b5060015b92915050565b662386f26fc1000090565b600061094a84848461145e565b6109ba8461095661136e565b6109b585604051806060016040528060288152602001612341602891396001600160a01b038a1660009081526006602052604081209061099461136e565b6001600160a01b031681526020810191909152604001600020549190611a9a565b611372565b5060019392505050565b6109cc61136e565b6000546001600160a01b03908116911614610a1c576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6011546001600160a01b0316610a5161136e565b6001600160a01b031614610a6457600080fd5b610a76662386f26fc1000060c8611b31565b8111610ab35760405162461bcd60e51b815260040180806020018281038252602a8152602001806122f6602a913960400191505060405180910390fd5b662386f26fc10000811115610af95760405162461bcd60e51b81526004018080602001828103825260308152602001806123b26030913960400191505060405180910390fd5b600855565b60155481565b600990565b60095481565b6011546001600160a01b0316610b2361136e565b6001600160a01b031614610b3657600080fd5b816001600160a01b031663a9059cbb82846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b9357600080fd5b505afa158015610ba7573d6000803e3d6000fd5b505050506040513d6020811015610bbd57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b50505050565b6014546001600160a01b031681565b6011546001600160a01b0316610c6161136e565b6001600160a01b031614610c7457600080fd5b6000610c7f30610db2565b90508015610c9057610c9081611b7a565b50565b6011546001600160a01b0316610ca761136e565b6001600160a01b031614610a1c57600080fd5b610cc261136e565b6000546001600160a01b03908116911614610d12576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b60178054911515620100000262ff000019909216919091179055565b610d3661136e565b6000546001600160a01b03908116911614610d86576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6000610d9130610db2565b9050610c9081611d43565b60085481565b6017546301000000900460ff1681565b6001600160a01b031660009081526002602052604090205490565b610dd561136e565b6000546001600160a01b03908116911614610e25576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6011546001600160a01b0316610e8361136e565b6001600160a01b031614610e9657600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ecb573d6000803e3d6000fd5b5050565b610ed761136e565b6000546001600160a01b03908116911614610f27576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b60005b8151811015610ecb57600160046000848481518110610f4557fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610f2a565b6000546001600160a01b031690565b604080518082019091526005815264475553484960d81b602082015290565b6011546001600160a01b0316610fc161136e565b6001600160a01b031614610fd457600080fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600061092861100361136e565b848461145e565b60175462010000900460ff1681565b60175460ff1681565b61102a61136e565b6000546001600160a01b0390811691161461107a576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6017805460ff1916911515919091179055565b600c5481565b61109b61136e565b6000546001600160a01b039081169116146110eb576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6017546301000000900460ff161561114a576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b436016556017805463ff0000001962ff0000199091166201000017166301000000179055565b61117861136e565b6000546001600160a01b039081169116146111c8576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b600b93909355600c91909155600955600a55565b600b5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600a5481565b6011546001600160a01b031661122761136e565b6001600160a01b03161461123a57600080fd5b601555565b61124761136e565b6000546001600160a01b03908116911614611297576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6001600160a01b0381166112dc5760405162461bcd60e51b815260040180806020018281038252602681526020018061226d6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031661134b61136e565b6001600160a01b03161461135e57600080fd5b478015610c9057610c9081611dca565b3390565b6001600160a01b0383166113b75760405162461bcd60e51b81526004018080602001828103825260248152602001806124076024913960400191505060405180910390fd5b6001600160a01b0382166113fc5760405162461bcd60e51b81526004018080602001828103825260228152602001806122936022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166114a35760405162461bcd60e51b81526004018080602001828103825260258152602001806123e26025913960400191505060405180910390fd5b6001600160a01b0382166114e85760405162461bcd60e51b815260040180806020018281038252602381526020018061224a6023913960400191505060405180910390fd5b600081116115275760405162461bcd60e51b81526004018080602001828103825260298152602001806123896029913960400191505060405180910390fd5b6017546301000000900460ff16611552576011546001600160a01b0384811691161461155257600080fd5b6014546001600160a01b03848116911614801561157d57506013546001600160a01b03838116911614155b156115ba57601654611590906004611e59565b43116115ba576001600160a01b0382166000908152600460205260409020805460ff191660011790555b60016115c4610f7f565b6001600160a01b0316846001600160a01b0316141580156115fe57506115e8610f7f565b6001600160a01b0316836001600160a01b031614155b156117d25760175462010000900460ff16156117d2576001600160a01b038416301480159061163657506001600160a01b0383163014155b801561165057506013546001600160a01b03858116911614155b801561166a57506013546001600160a01b03848116911614155b156116f7576013546001600160a01b031661168361136e565b6001600160a01b031614806116b257506014546001600160a01b03166116a761136e565b6001600160a01b0316145b6116f7576040805162461bcd60e51b81526020600482015260116024820152704552523a20556e6973776170206f6e6c7960781b604482015290519081900360640190fd5b6116ff610f7f565b6001600160a01b0316836001600160a01b03161415801561172957506001600160a01b0383163014155b801561174357506013546001600160a01b03848116911614155b801561175d57506014546001600160a01b03848116911614155b156117d2573260009081526005602052604090205461012c420110156117bf576040805162461bcd60e51b815260206004820152601260248201527110dbdbdb191bdddb881a5b881959999958dd60721b604482015290519081900360640190fd5b3260009081526005602052604090204290555b6117da610f7f565b6001600160a01b0316846001600160a01b03161415801561181457506117fe610f7f565b6001600160a01b0316836001600160a01b031614155b801561182957506001600160a01b0384163014155b801561183e57506001600160a01b0383163014155b15611a3e576014546001600160a01b03858116911614801561186e57506013546001600160a01b03848116911614155b801561189357506001600160a01b03841660009081526007602052604090205460ff16155b80156118b857506001600160a01b03831660009081526007602052604090205460ff16155b15611910576008546118d3836118cd86610db2565b90611e59565b11156119105760405162461bcd60e51b81526004018080602001828103825260418152602001806122b56041913960600191505060405180910390fd5b6014546001600160a01b03858116911614801561193b57506013546001600160a01b03848116911614155b1561194d57600954600f55600a546010555b6014546001600160a01b03848116911614801561197857506013546001600160a01b03858116911614155b156119e05760175460ff16156119d3576001600160a01b03831660009081526004602052604090205460ff161580156119ca57506001600160a01b03841660009081526004602052604090205460ff16155b6119d357600080fd5b600b54600f55600c546010555b601754610100900460ff16158015611a0657506014546001600160a01b03858116911614155b15611a3e576000611a1630610db2565b9050601554811115611a2b57611a2b81611d43565b478015611a3b57611a3b47611dca565b50505b6001600160a01b03841660009081526007602052604090205460ff1680611a7d57506001600160a01b03831660009081526007602052604090205460ff165b15611a86575060005b611a9284848484611eb3565b610c38611ecb565b60008184841115611b295760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611aee578181015183820152602001611ad6565b50505050905090810190601f168015611b1b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000611b7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed9565b9392505050565b6017805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611bb857fe5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c0c57600080fd5b505afa158015611c20573d6000803e3d6000fd5b505050506040513d6020811015611c3657600080fd5b5051815182906001908110611c4757fe5b6001600160a01b039283166020918202929092010152601354611c6d9130911684611372565b60135460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611cf3578181015183820152602001611cdb565b505050509050019650505050505050600060405180830381600087803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50506017805461ff001916905550505050565b6017805461ff001916610100179055600f54601054600091611d7b91611d6891611e59565b600f54611d759085611f3e565b90611b31565b90506000611d8a826002611b31565b90506000611d988483611f97565b905047611da482611b7a565b6000611dbe83611d7586611db84787611f97565b90611f3e565b9050611d308482611fd9565b6000611dd7826003611b31565b6012546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611e12573d6000803e3d6000fd5b506011546001600160a01b03166108fc611e2c8484611f97565b6040518115909202916000818181858888f19350505050158015611e54573d6000803e3d6000fd5b505050565b600082820183811015611b73576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80611ec057611ec0612091565b611a928484846120c4565b600d54600f55600e54601055565b60008183611f285760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611aee578181015183820152602001611ad6565b506000838581611f3457fe5b0495945050505050565b600082611f4d5750600061092c565b82820282848281611f5a57fe5b0414611b735760405162461bcd60e51b81526004018080602001828103825260218152602001806123206021913960400191505060405180910390fd5b6000611b7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a9a565b601354611ff19030906001600160a01b031684611372565b6013546011546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561206657600080fd5b505af115801561207a573d6000803e3d6000fd5b50505050506040513d6060811015610c3857600080fd5b6010541580156120a15750600f54155b156120ab576120c2565b60108054600e55600f8054600d5560009081905590555b565b6120cc612228565b6120e66064611d7560105485611f3e90919063ffffffff16565b6020820152600f5461210090606490611d75908590611f3e565b808252602082015161211e9190612118908590611f97565b90611f97565b6040808301919091526001600160a01b0385166000908152600260205220546121479083611f97565b6001600160a01b0380861660009081526002602052604080822093909355838301519186168152919091205461217c91611e59565b6001600160a01b0384166000908152600260209081526040909120919091558151908201516121c5916121af9190611e59565b3060009081526002602052604090205490611e59565b306000908152600260209081526040918290209290925582810151815190815290516001600160a01b0386811693908816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b6040518060600160405280600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737377616c6c65742062616c616e6365206166746572207472616e73666572206d757374206265206c657373207468616e206d61782077616c6c657420616d6f756e74416d6f756e74206d7573742062652067726561746572207468616e20302e3525206f6620737570706c79536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f416d6f756e74206d757374206265206c657373207468616e206f7220657175616c20746f20746f74616c537570706c7945524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212207e845bf52149e954ea5538ef2515fc3c9110fe5baf4b78d6e33b3fa9a95498f964736f6c6343000706003345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063715018a611610123578063bdf4f831116100ab578063dd62ed3e1161006f578063dd62ed3e1461080e578063e581dc7114610849578063e632313c1461085e578063f2fde38b14610888578063f4293890146108bb57610230565b8063bdf4f83114610767578063c4066f2f14610793578063c9567bf9146107a8578063d3dc3ffb146107bd578063d52dfc14146107f957610230565b806395d89b41116100f257806395d89b41146106bc578063a0968680146106d1578063a9059cbb14610704578063a985ceef1461073d578063bb58a9731461075257610230565b8063715018a6146105af5780637e66c0b9146105c45780638cf01f6e146105f75780638da5cb5b146106a757610230565b80633c0a73ae116101b15780635932ead1116101755780635932ead11461051157806361bb0a0a1461053d5780636c0a24eb146105525780636ddd17131461056757806370a082311461057c57610230565b80633c0a73ae146104485780633f9b76071461045d57806349bd5a5e1461049857806351bc3c85146104c9578063537df3b6146104de57610230565b806323b872dd116101f857806323b872dd14610366578063273123b7146103a957806327a14fc2146103de5780632e8fa82114610408578063313ce5671461041d57610230565b806306fdde0314610235578063084e4f8a146102bf578063095ea7b31461030657806318160ddd1461033f57610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108d0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028457818101518382015260200161026c565b50505050905090810190601f1680156102b15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cb57600080fd5b506102f2600480360360208110156102e257600080fd5b50356001600160a01b03166108f6565b604080519115158252519081900360200190f35b34801561031257600080fd5b506102f26004803603604081101561032957600080fd5b506001600160a01b038135169060200135610914565b34801561034b57600080fd5b50610354610932565b60408051918252519081900360200190f35b34801561037257600080fd5b506102f26004803603606081101561038957600080fd5b506001600160a01b0381358116916020810135909116906040013561093d565b3480156103b557600080fd5b506103dc600480360360208110156103cc57600080fd5b50356001600160a01b03166109c4565b005b3480156103ea57600080fd5b506103dc6004803603602081101561040157600080fd5b5035610a3d565b34801561041457600080fd5b50610354610afe565b34801561042957600080fd5b50610432610b04565b6040805160ff9092168252519081900360200190f35b34801561045457600080fd5b50610354610b09565b34801561046957600080fd5b506103dc6004803603604081101561048057600080fd5b506001600160a01b0381358116916020013516610b0f565b3480156104a457600080fd5b506104ad610c3e565b604080516001600160a01b039092168252519081900360200190f35b3480156104d557600080fd5b506103dc610c4d565b3480156104ea57600080fd5b506103dc6004803603602081101561050157600080fd5b50356001600160a01b0316610c93565b34801561051d57600080fd5b506103dc6004803603602081101561053457600080fd5b50351515610cba565b34801561054957600080fd5b506103dc610d2e565b34801561055e57600080fd5b50610354610d9c565b34801561057357600080fd5b506102f2610da2565b34801561058857600080fd5b506103546004803603602081101561059f57600080fd5b50356001600160a01b0316610db2565b3480156105bb57600080fd5b506103dc610dcd565b3480156105d057600080fd5b506103dc600480360360208110156105e757600080fd5b50356001600160a01b0316610e6f565b34801561060357600080fd5b506103dc6004803603602081101561061a57600080fd5b81019060208101813564010000000081111561063557600080fd5b82018360208201111561064757600080fd5b8035906020019184602083028401116401000000008311171561066957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ecf945050505050565b3480156106b357600080fd5b506104ad610f7f565b3480156106c857600080fd5b5061024a610f8e565b3480156106dd57600080fd5b506103dc600480360360208110156106f457600080fd5b50356001600160a01b0316610fad565b34801561071057600080fd5b506102f26004803603604081101561072757600080fd5b506001600160a01b038135169060200135610ff6565b34801561074957600080fd5b506102f261100a565b34801561075e57600080fd5b506102f2611019565b34801561077357600080fd5b506103dc6004803603602081101561078a57600080fd5b50351515611022565b34801561079f57600080fd5b5061035461108d565b3480156107b457600080fd5b506103dc611093565b3480156107c957600080fd5b506103dc600480360360808110156107e057600080fd5b5080359060208101359060408101359060600135611170565b34801561080557600080fd5b506103546111dc565b34801561081a57600080fd5b506103546004803603604081101561083157600080fd5b506001600160a01b03813581169160200135166111e2565b34801561085557600080fd5b5061035461120d565b34801561086a57600080fd5b506103dc6004803603602081101561088157600080fd5b5035611213565b34801561089457600080fd5b506103dc600480360360208110156108ab57600080fd5b50356001600160a01b031661123f565b3480156108c757600080fd5b506103dc611337565b60408051808201909152600c81526b23bab0b71029b434902cb4b760a11b602082015290565b6001600160a01b031660009081526004602052604090205460ff1690565b600061092861092161136e565b8484611372565b5060015b92915050565b662386f26fc1000090565b600061094a84848461145e565b6109ba8461095661136e565b6109b585604051806060016040528060288152602001612341602891396001600160a01b038a1660009081526006602052604081209061099461136e565b6001600160a01b031681526020810191909152604001600020549190611a9a565b611372565b5060019392505050565b6109cc61136e565b6000546001600160a01b03908116911614610a1c576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6011546001600160a01b0316610a5161136e565b6001600160a01b031614610a6457600080fd5b610a76662386f26fc1000060c8611b31565b8111610ab35760405162461bcd60e51b815260040180806020018281038252602a8152602001806122f6602a913960400191505060405180910390fd5b662386f26fc10000811115610af95760405162461bcd60e51b81526004018080602001828103825260308152602001806123b26030913960400191505060405180910390fd5b600855565b60155481565b600990565b60095481565b6011546001600160a01b0316610b2361136e565b6001600160a01b031614610b3657600080fd5b816001600160a01b031663a9059cbb82846001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015610b9357600080fd5b505afa158015610ba7573d6000803e3d6000fd5b505050506040513d6020811015610bbd57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b505050506040513d6020811015610c3857600080fd5b50505050565b6014546001600160a01b031681565b6011546001600160a01b0316610c6161136e565b6001600160a01b031614610c7457600080fd5b6000610c7f30610db2565b90508015610c9057610c9081611b7a565b50565b6011546001600160a01b0316610ca761136e565b6001600160a01b031614610a1c57600080fd5b610cc261136e565b6000546001600160a01b03908116911614610d12576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b60178054911515620100000262ff000019909216919091179055565b610d3661136e565b6000546001600160a01b03908116911614610d86576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6000610d9130610db2565b9050610c9081611d43565b60085481565b6017546301000000900460ff1681565b6001600160a01b031660009081526002602052604090205490565b610dd561136e565b6000546001600160a01b03908116911614610e25576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6011546001600160a01b0316610e8361136e565b6001600160a01b031614610e9657600080fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610ecb573d6000803e3d6000fd5b5050565b610ed761136e565b6000546001600160a01b03908116911614610f27576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b60005b8151811015610ecb57600160046000848481518110610f4557fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610f2a565b6000546001600160a01b031690565b604080518082019091526005815264475553484960d81b602082015290565b6011546001600160a01b0316610fc161136e565b6001600160a01b031614610fd457600080fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600061092861100361136e565b848461145e565b60175462010000900460ff1681565b60175460ff1681565b61102a61136e565b6000546001600160a01b0390811691161461107a576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6017805460ff1916911515919091179055565b600c5481565b61109b61136e565b6000546001600160a01b039081169116146110eb576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6017546301000000900460ff161561114a576040805162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015290519081900360640190fd5b436016556017805463ff0000001962ff0000199091166201000017166301000000179055565b61117861136e565b6000546001600160a01b039081169116146111c8576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b600b93909355600c91909155600955600a55565b600b5481565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600a5481565b6011546001600160a01b031661122761136e565b6001600160a01b03161461123a57600080fd5b601555565b61124761136e565b6000546001600160a01b03908116911614611297576040805162461bcd60e51b81526020600482018190526024820152600080516020612369833981519152604482015290519081900360640190fd5b6001600160a01b0381166112dc5760405162461bcd60e51b815260040180806020018281038252602681526020018061226d6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031661134b61136e565b6001600160a01b03161461135e57600080fd5b478015610c9057610c9081611dca565b3390565b6001600160a01b0383166113b75760405162461bcd60e51b81526004018080602001828103825260248152602001806124076024913960400191505060405180910390fd5b6001600160a01b0382166113fc5760405162461bcd60e51b81526004018080602001828103825260228152602001806122936022913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166114a35760405162461bcd60e51b81526004018080602001828103825260258152602001806123e26025913960400191505060405180910390fd5b6001600160a01b0382166114e85760405162461bcd60e51b815260040180806020018281038252602381526020018061224a6023913960400191505060405180910390fd5b600081116115275760405162461bcd60e51b81526004018080602001828103825260298152602001806123896029913960400191505060405180910390fd5b6017546301000000900460ff16611552576011546001600160a01b0384811691161461155257600080fd5b6014546001600160a01b03848116911614801561157d57506013546001600160a01b03838116911614155b156115ba57601654611590906004611e59565b43116115ba576001600160a01b0382166000908152600460205260409020805460ff191660011790555b60016115c4610f7f565b6001600160a01b0316846001600160a01b0316141580156115fe57506115e8610f7f565b6001600160a01b0316836001600160a01b031614155b156117d25760175462010000900460ff16156117d2576001600160a01b038416301480159061163657506001600160a01b0383163014155b801561165057506013546001600160a01b03858116911614155b801561166a57506013546001600160a01b03848116911614155b156116f7576013546001600160a01b031661168361136e565b6001600160a01b031614806116b257506014546001600160a01b03166116a761136e565b6001600160a01b0316145b6116f7576040805162461bcd60e51b81526020600482015260116024820152704552523a20556e6973776170206f6e6c7960781b604482015290519081900360640190fd5b6116ff610f7f565b6001600160a01b0316836001600160a01b03161415801561172957506001600160a01b0383163014155b801561174357506013546001600160a01b03848116911614155b801561175d57506014546001600160a01b03848116911614155b156117d2573260009081526005602052604090205461012c420110156117bf576040805162461bcd60e51b815260206004820152601260248201527110dbdbdb191bdddb881a5b881959999958dd60721b604482015290519081900360640190fd5b3260009081526005602052604090204290555b6117da610f7f565b6001600160a01b0316846001600160a01b03161415801561181457506117fe610f7f565b6001600160a01b0316836001600160a01b031614155b801561182957506001600160a01b0384163014155b801561183e57506001600160a01b0383163014155b15611a3e576014546001600160a01b03858116911614801561186e57506013546001600160a01b03848116911614155b801561189357506001600160a01b03841660009081526007602052604090205460ff16155b80156118b857506001600160a01b03831660009081526007602052604090205460ff16155b15611910576008546118d3836118cd86610db2565b90611e59565b11156119105760405162461bcd60e51b81526004018080602001828103825260418152602001806122b56041913960600191505060405180910390fd5b6014546001600160a01b03858116911614801561193b57506013546001600160a01b03848116911614155b1561194d57600954600f55600a546010555b6014546001600160a01b03848116911614801561197857506013546001600160a01b03858116911614155b156119e05760175460ff16156119d3576001600160a01b03831660009081526004602052604090205460ff161580156119ca57506001600160a01b03841660009081526004602052604090205460ff16155b6119d357600080fd5b600b54600f55600c546010555b601754610100900460ff16158015611a0657506014546001600160a01b03858116911614155b15611a3e576000611a1630610db2565b9050601554811115611a2b57611a2b81611d43565b478015611a3b57611a3b47611dca565b50505b6001600160a01b03841660009081526007602052604090205460ff1680611a7d57506001600160a01b03831660009081526007602052604090205460ff165b15611a86575060005b611a9284848484611eb3565b610c38611ecb565b60008184841115611b295760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611aee578181015183820152602001611ad6565b50505050905090810190601f168015611b1b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000611b7383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ed9565b9392505050565b6017805461ff0019166101001790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611bb857fe5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611c0c57600080fd5b505afa158015611c20573d6000803e3d6000fd5b505050506040513d6020811015611c3657600080fd5b5051815182906001908110611c4757fe5b6001600160a01b039283166020918202929092010152601354611c6d9130911684611372565b60135460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b83811015611cf3578181015183820152602001611cdb565b505050509050019650505050505050600060405180830381600087803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50506017805461ff001916905550505050565b6017805461ff001916610100179055600f54601054600091611d7b91611d6891611e59565b600f54611d759085611f3e565b90611b31565b90506000611d8a826002611b31565b90506000611d988483611f97565b905047611da482611b7a565b6000611dbe83611d7586611db84787611f97565b90611f3e565b9050611d308482611fd9565b6000611dd7826003611b31565b6012546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611e12573d6000803e3d6000fd5b506011546001600160a01b03166108fc611e2c8484611f97565b6040518115909202916000818181858888f19350505050158015611e54573d6000803e3d6000fd5b505050565b600082820183811015611b73576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80611ec057611ec0612091565b611a928484846120c4565b600d54600f55600e54601055565b60008183611f285760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611aee578181015183820152602001611ad6565b506000838581611f3457fe5b0495945050505050565b600082611f4d5750600061092c565b82820282848281611f5a57fe5b0414611b735760405162461bcd60e51b81526004018080602001828103825260218152602001806123206021913960400191505060405180910390fd5b6000611b7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a9a565b601354611ff19030906001600160a01b031684611372565b6013546011546040805163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561206657600080fd5b505af115801561207a573d6000803e3d6000fd5b50505050506040513d6060811015610c3857600080fd5b6010541580156120a15750600f54155b156120ab576120c2565b60108054600e55600f8054600d5560009081905590555b565b6120cc612228565b6120e66064611d7560105485611f3e90919063ffffffff16565b6020820152600f5461210090606490611d75908590611f3e565b808252602082015161211e9190612118908590611f97565b90611f97565b6040808301919091526001600160a01b0385166000908152600260205220546121479083611f97565b6001600160a01b0380861660009081526002602052604080822093909355838301519186168152919091205461217c91611e59565b6001600160a01b0384166000908152600260209081526040909120919091558151908201516121c5916121af9190611e59565b3060009081526002602052604090205490611e59565b306000908152600260209081526040918290209290925582810151815190815290516001600160a01b0386811693908816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350505050565b6040518060600160405280600081526020016000815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737377616c6c65742062616c616e6365206166746572207472616e73666572206d757374206265206c657373207468616e206d61782077616c6c657420616d6f756e74416d6f756e74206d7573742062652067726561746572207468616e20302e3525206f6620737570706c79536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f416d6f756e74206d757374206265206c657373207468616e206f7220657175616c20746f20746f74616c537570706c7945524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a26469706673582212207e845bf52149e954ea5538ef2515fc3c9110fe5baf4b78d6e33b3fa9a95498f964736f6c63430007060033

Deployed Bytecode Sourcemap

7049:13811:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9699:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20126:120;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20126:120:0;-1:-1:-1;;;;;20126:120:0;;:::i;:::-;;;;;;;;;;;;;;;;;;10542:163;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10542:163:0;;;;;;;;:::i;9976:97::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10713:312;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10713:312:0;;;;;;;;;;;;;;;;;:::i;17143:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17143:88:0;-1:-1:-1;;;;;17143:88:0;;:::i;:::-;;19146:352;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19146:352:0;;:::i;8515:25::-;;;;;;;;;;;;;:::i;9885:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7740:37;;;;;;;;;;;;;:::i;20643:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20643:210:0;;;;;;;;;;:::i;8478:28::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;8478:28:0;;;;;;;;;;;;;;17239:234;;;;;;;;;;;;;:::i;19977:137::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19977:137:0;-1:-1:-1;;;;;19977:137:0;;:::i;11298:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11298:103:0;;;;:::i;17481:159::-;;;;;;;;;;;;;:::i;7671:47::-;;;;;;;;;;;;;:::i;8698:31::-;;;;;;;;;;;;;:::i;10081:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10081:119:0;-1:-1:-1;;;;;10081:119:0;;:::i;2621:148::-;;;;;;;;;;;;;:::i;20472:163::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20472:163:0;-1:-1:-1;;;;;20472:163:0;;:::i;19799:170::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19799:170:0;;-1:-1:-1;19799:170:0;;-1:-1:-1;;;;;19799:170:0:i;2407:79::-;;;;;;;;;;;;;:::i;9790:87::-;;;;;;;;;;;;;:::i;19506:142::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19506:142:0;-1:-1:-1;;;;;19506:142:0;;:::i;10212:169::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10212:169:0;;;;;;;;:::i;8656:35::-;;;;;;;;;;;;;:::i;8583:32::-;;;;;;;;;;;;;:::i;11568:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11568:102:0;;;;:::i;7879:39::-;;;;;;;;;;;;;:::i;20254:210::-;;;;;;;;;;;;;:::i;17648:281::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17648:281:0;;;;;;;;;;;;;;;;;:::i;7833:38::-;;;;;;;;;;;;;:::i;10389:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10389:145:0;;;;;;;;;;:::i;7785:38::-;;;;;;;;;;;;;:::i;19656:135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19656:135:0;;:::i;2777:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2777:244:0;-1:-1:-1;;;;;2777:244:0;;:::i;17937:236::-;;;;;;;;;;;;;:::i;9699:83::-;9769:5;;;;;;;;;;;;-1:-1:-1;;;9769:5:0;;;;9699:83;:::o;20126:120::-;-1:-1:-1;;;;;20224:14:0;20200:4;20224:14;;;:4;:14;;;;;;;;;20126:120::o;10542:163::-;10619:4;10636:39;10645:12;:10;:12::i;:::-;10659:7;10668:6;10636:8;:39::i;:::-;-1:-1:-1;10693:4:0;10542:163;;;;;:::o;9976:97::-;7649:15;9976:97;:::o;10713:312::-;10813:4;10830:36;10840:6;10848:9;10859:6;10830:9;:36::i;:::-;10877:118;10886:6;10893:12;:10;:12::i;:::-;10906:88;10944:6;10906:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10906:19:0;;;;;;:11;:19;;;;;;10926:12;:10;:12::i;:::-;-1:-1:-1;;;;;10906:33:0;;;;;;;;;;;;-1:-1:-1;10906:33:0;;;:88;:37;:88::i;:::-;10877:8;:118::i;:::-;-1:-1:-1;11013:4:0;10713:312;;;;;:::o;17143:88::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;17203:12:0::1;17218:5;17203:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;17203:20:0::1;::::0;;17143:88::o;19146:352::-;19243:3;;-1:-1:-1;;;;;19243:3:0;19227:12;:10;:12::i;:::-;-1:-1:-1;;;;;19227:19:0;;19219:28;;;;;;19284:16;7649:15;19296:3;19284:11;:16::i;:::-;19266:15;:34;19258:89;;;;-1:-1:-1;;;19258:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7649:15;19366;:26;;19358:87;;;;-1:-1:-1;;;19358:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19456:16;:34;19146:352::o;8515:25::-;;;;:::o;9885:83::-;7268:1;9885:83;:::o;7740:37::-;;;;:::o;20643:210::-;20755:3;;-1:-1:-1;;;;;20755:3:0;20739:12;:10;:12::i;:::-;-1:-1:-1;;;;;20739:19:0;;20731:28;;;;;;20770:12;-1:-1:-1;;;;;20770:21:0;;20792:13;20807:12;-1:-1:-1;;;;;20807:22:0;;20838:4;20807:37;;;;;;;;;;;;;-1:-1:-1;;;;;20807:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20807:37:0;20770:75;;;-1:-1:-1;;;;;;20770:75:0;;;;;;;-1:-1:-1;;;;;20770:75:0;;;;;;;;;;;;;;;;;;;;20807:37;;20770:75;;;;;;;-1:-1:-1;20770:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20643:210:0:o;8478:28::-;;;-1:-1:-1;;;;;8478:28:0;;:::o;17239:234::-;17305:3;;-1:-1:-1;;;;;17305:3:0;17289:12;:10;:12::i;:::-;-1:-1:-1;;;;;17289:19:0;;17281:28;;;;;;17320:23;17346:24;17364:4;17346:9;:24::i;:::-;17320:50;-1:-1:-1;17385:19:0;;17381:85;;17421:33;17438:15;17421:16;:33::i;:::-;17239:234;:::o;19977:137::-;20069:3;;-1:-1:-1;;;;;20069:3:0;20053:12;:10;:12::i;:::-;-1:-1:-1;;;;;20053:19:0;;20045:28;;;;;11298:103;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;11370:15:::1;:23:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;11370:23:0;;::::1;::::0;;;::::1;::::0;;11298:103::o;17481:159::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;17543:20:::1;17566:24;17584:4;17566:9;:24::i;:::-;17543:47;;17601:31;17616:15;17601:14;:31::i;7671:47::-:0;;;;:::o;8698:31::-;;;;;;;;;:::o;10081:119::-;-1:-1:-1;;;;;10174:18:0;10147:7;10174:18;;;:9;:18;;;;;;;10081:119::o;2621:148::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;2728:1:::1;2712:6:::0;;2691:40:::1;::::0;-1:-1:-1;;;;;2712:6:0;;::::1;::::0;2691:40:::1;::::0;2728:1;;2691:40:::1;2759:1;2742:19:::0;;-1:-1:-1;;;;;;2742:19:0::1;::::0;;2621:148::o;20472:163::-;20558:3;;-1:-1:-1;;;;;20558:3:0;20542:12;:10;:12::i;:::-;-1:-1:-1;;;;;20542:19:0;;20534:28;;;;;;20573:54;;-1:-1:-1;;;;;20573:31:0;;;20605:21;20573:54;;;;;;;;;20605:21;20573:31;:54;;;;;;;;;;;;;;;;;;;;;20472:163;:::o;19799:170::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;19881:6:::1;19876:86;19897:5;:12;19893:1;:16;19876:86;;;19946:4;19929;:14;19934:5;19940:1;19934:8;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19929:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19929:14:0;:21;;-1:-1:-1;;19929:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;19911:3:0::1;19876:86;;2407:79:::0;2445:7;2472:6;-1:-1:-1;;;;;2472:6:0;2407:79;:::o;9790:87::-;9862:7;;;;;;;;;;;;-1:-1:-1;;;9862:7:0;;;;9790:87;:::o;19506:142::-;19605:3;;-1:-1:-1;;;;;19605:3:0;19589:12;:10;:12::i;:::-;-1:-1:-1;;;;;19589:19:0;;19581:28;;;;;;19620:4;:20;;-1:-1:-1;;;;;;19620:20:0;-1:-1:-1;;;;;19620:20:0;;;;;;;;;;19506:142::o;10212:169::-;10292:4;10309:42;10319:12;:10;:12::i;:::-;10333:9;10344:6;10309:9;:42::i;8656:35::-;;;;;;;;;:::o;8583:32::-;;;;;;:::o;11568:102::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;11641:13:::1;:21:::0;;-1:-1:-1;;11641:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11568:102::o;7879:39::-;;;;:::o;20254:210::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;20318:11:::1;::::0;;;::::1;;;20317:12;20309:48;;;::::0;;-1:-1:-1;;;20309:48:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20382:12;20368:11;:26:::0;20405:15:::1;:22:::0;;-1:-1:-1;;;;20405:22:0;;::::1;::::0;::::1;20438:18;::::0;::::1;::::0;;20254:210::o;17648:281::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;17770:19:::1;:28:::0;;;;17809:19:::1;:29:::0;;;;17849:18:::1;:30:::0;17890:18:::1;:31:::0;17648:281::o;7833:38::-;;;;:::o;10389:145::-;-1:-1:-1;;;;;10499:18:0;;;10472:7;10499:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10389:145::o;7785:38::-;;;;:::o;19656:135::-;19744:3;;-1:-1:-1;;;;;19744:3:0;19728:12;:10;:12::i;:::-;-1:-1:-1;;;;;19728:19:0;;19720:28;;;;;;19759:10;:24;19656:135::o;2777:244::-;2544:12;:10;:12::i;:::-;2534:6;;-1:-1:-1;;;;;2534:6:0;;;:22;;;2526:67;;;;;-1:-1:-1;;;2526:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2526:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2866:22:0;::::1;2858:73;;;;-1:-1:-1::0;;;2858:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2968:6;::::0;;2947:38:::1;::::0;-1:-1:-1;;;;;2947:38:0;;::::1;::::0;2968:6;::::1;::::0;2947:38:::1;::::0;::::1;2996:6;:17:::0;;-1:-1:-1;;;;;;2996:17:0::1;-1:-1:-1::0;;;;;2996:17:0;;;::::1;::::0;;;::::1;::::0;;2777:244::o;17937:236::-;18003:3;;-1:-1:-1;;;;;18003:3:0;17987:12;:10;:12::i;:::-;-1:-1:-1;;;;;17987:19:0;;17979:28;;;;;;18047:21;18083:22;;18079:87;;18122:32;18135:18;18122:12;:32::i;103:98::-;183:10;103:98;:::o;11678:335::-;-1:-1:-1;;;;;11771:19:0;;11763:68;;;;-1:-1:-1;;;11763:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11850:21:0;;11842:68;;;;-1:-1:-1;;;11842:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11921:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11973:32;;;;;;;;;;;;;;;;;11678:335;;;:::o;12025:3023::-;-1:-1:-1;;;;;12115:18:0;;12107:68;;;;-1:-1:-1;;;12107:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12194:16:0;;12186:64;;;;-1:-1:-1;;;12186:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12278:1;12269:6;:10;12261:64;;;;-1:-1:-1;;;12261:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:11;;;;;;;12338:111;;12385:3;;-1:-1:-1;;;;;12377:11:0;;;12385:3;;12377:11;12369:20;;;;;;12474:13;;-1:-1:-1;;;;;12466:21:0;;;12474:13;;12466:21;:55;;;;-1:-1:-1;12505:15:0;;-1:-1:-1;;;;;12491:30:0;;;12505:15;;12491:30;;12466:55;12462:180;;;12559:11;;:18;;12575:1;12559:15;:18::i;:::-;12542:12;:36;12538:92;;-1:-1:-1;;;;;12599:8:0;;;;;;:4;:8;;;;;:15;;-1:-1:-1;;12599:15:0;12610:4;12599:15;;;12538:92;12667:4;12694:7;:5;:7::i;:::-;-1:-1:-1;;;;;12686:15:0;:4;-1:-1:-1;;;;;12686:15:0;;;:32;;;;;12711:7;:5;:7::i;:::-;-1:-1:-1;;;;;12705:13:0;:2;-1:-1:-1;;;;;12705:13:0;;;12686:32;12682:722;;;12739:15;;;;;;;12735:636;;;-1:-1:-1;;;;;12779:21:0;;12795:4;12779:21;;;;:44;;-1:-1:-1;;;;;;12804:19:0;;12818:4;12804:19;;12779:44;:80;;;;-1:-1:-1;12843:15:0;;-1:-1:-1;;;;;12827:32:0;;;12843:15;;12827:32;;12779:80;:114;;;;-1:-1:-1;12877:15:0;;-1:-1:-1;;;;;12863:30:0;;;12877:15;;12863:30;;12779:114;12775:266;;;12950:15;;-1:-1:-1;;;;;12950:15:0;12926:12;:10;:12::i;:::-;-1:-1:-1;;;;;12926:40:0;;:73;;;-1:-1:-1;12986:13:0;;-1:-1:-1;;;;;12986:13:0;12970:12;:10;:12::i;:::-;-1:-1:-1;;;;;12970:29:0;;12926:73;12918:103;;;;;-1:-1:-1;;;12918:103:0;;;;;;;;;;;;-1:-1:-1;;;12918:103:0;;;;;;;;;;;;;;;13083:7;:5;:7::i;:::-;-1:-1:-1;;;;;13077:13:0;:2;-1:-1:-1;;;;;13077:13:0;;;:36;;;;-1:-1:-1;;;;;;13094:19:0;;13108:4;13094:19;;13077:36;:70;;;;-1:-1:-1;13131:15:0;;-1:-1:-1;;;;;13117:30:0;;;13131:15;;13117:30;;13077:70;:93;;;;-1:-1:-1;13157:13:0;;-1:-1:-1;;;;;13151:19:0;;;13157:13;;13151:19;;13077:93;13073:283;;;13211:9;13203:18;;;;:7;:18;;;;;;13244:9;13226:15;:27;-1:-1:-1;13203:51:0;13195:82;;;;;-1:-1:-1;;;13195:82:0;;;;;;;;;;;;-1:-1:-1;;;13195:82:0;;;;;;;;;;;;;;;13308:9;13300:18;;;;:7;:18;;;;;13321:15;13300:36;;13073:283;13428:7;:5;:7::i;:::-;-1:-1:-1;;;;;13420:15:0;:4;-1:-1:-1;;;;;13420:15:0;;;:32;;;;;13445:7;:5;:7::i;:::-;-1:-1:-1;;;;;13439:13:0;:2;-1:-1:-1;;;;;13439:13:0;;;13420:32;:57;;;;-1:-1:-1;;;;;;13456:21:0;;13472:4;13456:21;;13420:57;:80;;;;-1:-1:-1;;;;;;13481:19:0;;13495:4;13481:19;;13420:80;13416:1427;;;13531:13;;-1:-1:-1;;;;;13523:21:0;;;13531:13;;13523:21;:55;;;;-1:-1:-1;13562:15:0;;-1:-1:-1;;;;;13548:30:0;;;13562:15;;13548:30;;13523:55;:84;;;;-1:-1:-1;;;;;;13583:24:0;;;;;;:18;:24;;;;;;;;13582:25;13523:84;:111;;;;-1:-1:-1;;;;;;13612:22:0;;;;;;:18;:22;;;;;;;;13611:23;13523:111;13519:275;;;13692:16;;13663:25;13681:6;13663:13;13673:2;13663:9;:13::i;:::-;:17;;:25::i;:::-;:45;;13655:123;;;;-1:-1:-1;;;13655:123:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13822:13;;-1:-1:-1;;;;;13814:21:0;;;13822:13;;13814:21;:55;;;;-1:-1:-1;13853:15:0;;-1:-1:-1;;;;;13839:30:0;;;13853:15;;13839:30;;13814:55;13810:183;;;13906:18;;13890:13;:34;13959:18;;13943:13;:34;13810:183;14035:13;;-1:-1:-1;;;;;14029:19:0;;;14035:13;;14029:19;:55;;;;-1:-1:-1;14068:15:0;;-1:-1:-1;;;;;14052:32:0;;;14068:15;;14052:32;;14029:55;14025:294;;;14109:13;;;;14105:91;;;-1:-1:-1;;;;;14152:8:0;;;;;;:4;:8;;;;;;;;14151:9;:24;;;;-1:-1:-1;;;;;;14165:10:0;;;;;;:4;:10;;;;;;;;14164:11;14151:24;14143:33;;;;;;14230:19;;14214:13;:35;14284:19;;14268:13;:35;14025:294;14352:6;;;;;;;14351:7;:32;;;;-1:-1:-1;14370:13:0;;-1:-1:-1;;;;;14362:21:0;;;14370:13;;14362:21;;14351:32;14347:485;;;14406:28;14437:24;14455:4;14437:9;:24::i;:::-;14406:55;;14509:10;;14486:20;:33;14482:118;;;14544:36;14559:20;14544:14;:36::i;:::-;14649:21;14693:22;;14689:106;;14740:35;14753:21;14740:12;:35::i;:::-;14347:485;;;-1:-1:-1;;;;;14859:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;14887:22:0;;;;;;:18;:22;;;;;;;;14859:50;14855:98;;;-1:-1:-1;14936:5:0;14855:98;14973:41;14988:4;14994:2;14998:6;15006:7;14973:14;:41::i;:::-;15025:15;:13;:15::i;1240:190::-;1326:7;1362:12;1354:6;;;;1346:29;;;;-1:-1:-1;;;1346:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1398:5:0;;;1240:190::o;1692:132::-;1750:7;1777:39;1781:1;1784;1777:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1770:46;1692:132;-1:-1:-1;;;1692:132:0:o;15056:407::-;8842:6;:13;;-1:-1:-1;;8842:13:0;;;;;15158:16:::1;::::0;;15172:1:::1;15158:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15158:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15158:16:0::1;15134:40;;15203:4;15185;15190:1;15185:7;;;;;;;;-1:-1:-1::0;;;;;15185:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15229:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15229:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15185:7;;15229:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15229:22:0;15219:7;;:4;;15224:1:::1;::::0;15219:7;::::1;;;;;-1:-1:-1::0;;;;;15219:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15294:15:::1;::::0;15262:62:::1;::::0;15279:4:::1;::::0;15294:15:::1;15312:11:::0;15262:8:::1;:62::i;:::-;15335:15;::::0;:120:::1;::::0;-1:-1:-1;;;15335:120:0;;::::1;::::0;::::1;::::0;;;:15:::1;:120:::0;;;;;;15432:4:::1;15335:120:::0;;;;;;15439:15:::1;15335:120:::0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15335:15:0;;::::1;::::0;:66:::1;::::0;15402:11;;15418:4;;15432;15439:15;15335:120;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:15;:120:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8878:6:0;:14;;-1:-1:-1;;8878:14:0;;;-1:-1:-1;;;;15056:407:0:o;15941:1014::-;8842:6;:13;;-1:-1:-1;;8842:13:0;;;;;16111::::1;::::0;16093::::1;::::0;8842;;16049:77:::1;::::0;16093:32:::1;::::0;:17:::1;:32::i;:::-;16049:13;::::0;:39:::1;::::0;16067:20;16049:17:::1;:39::i;:::-;:43:::0;::::1;:77::i;:::-;16026:100:::0;-1:-1:-1;16190:12:0::1;16206:19;16026:100:::0;16223:1:::1;16206:16;:19::i;:::-;16190:35:::0;-1:-1:-1;16236:17:0::1;16256:30;:20:::0;16190:35;16256:24:::1;:30::i;:::-;16236:50:::0;-1:-1:-1;16589:21:0::1;16655:27;16236:50:::0;16655:16:::1;:27::i;:::-;16813:18;16834:70;16894:9:::0;16835:53:::1;16883:4:::0;16836:41:::1;:21;16862:14:::0;16836:25:::1;:41::i;:::-;16835:47:::0;::::1;:53::i;16834:70::-;16813:91;;16917:30;16930:4;16936:10;16917:12;:30::i;16963:172::-:0;17020:14;17037:13;:6;17048:1;17037:10;:13::i;:::-;17061:4;;:21;;17020:30;;-1:-1:-1;;;;;;17061:4:0;;:21;;;;;17020:30;;17061:4;:21;:4;:21;17020:30;17061:4;:21;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17093:3:0;;-1:-1:-1;;;;;17093:3:0;:32;17106:18;:6;17117;17106:10;:18::i;:::-;17093:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16963:172;;:::o;909:179::-;967:7;999:5;;;1023:6;;;;1015:46;;;;;-1:-1:-1;;;1015:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;18181:256;18294:7;18289:60;;18323:14;:12;:14::i;:::-;18359:44;18377:6;18385:9;18396:6;18359:17;:44::i;11413:147::-;11483:21;;11467:13;:37;11531:21;;11515:13;:37;11413:147::o;1832:189::-;1918:7;1953:12;1946:5;1938:28;;;;-1:-1:-1;;;1938:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1977:9;1993:1;1989;:5;;;;;;;1832:189;-1:-1:-1;;;;;1832:189:0:o;1438:246::-;1496:7;1520:6;1516:47;;-1:-1:-1;1550:1:0;1543:8;;1516:47;1585:5;;;1589:1;1585;:5;:1;1609:5;;;;;:10;1601:56;;;;-1:-1:-1;;;1601:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1096:136;1154:7;1181:43;1185:1;1188;1181:43;;;;;;;;;;;;;;;;;:3;:43::i;15475:456::-;15588:15;;15556:62;;15573:4;;-1:-1:-1;;;;;15588:15:0;15606:11;15556:8;:62::i;:::-;15661:15;;15875:3;;15661:262;;;-1:-1:-1;;;15661:262:0;;15735:4;15661:262;;;;;;;;;;:15;:262;;;;;;;;;;-1:-1:-1;;;;;15875:3:0;;;15661:262;;;;15895:15;15661:262;;;;;;:15;;;;;:31;;15700:9;;15661:262;;;;;;;;;;;;;;;15700:9;15661:15;:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11033:257;11080:13;;:18;:40;;;;-1:-1:-1;11102:13:0;;:18;11080:40;11076:53;;;11122:7;;11076:53;11163:13;;;11139:21;:37;11211:13;;;11187:21;:37;-1:-1:-1;11237:17:0;;;;11265;;11033:257;:::o;18445:652::-;18542:24;;:::i;:::-;18595:34;18625:3;18595:25;18606:13;;18595:6;:10;;:25;;;;:::i;:34::-;18577:15;;;:52;18669:13;;18658:34;;18688:3;;18658:25;;:6;;:10;:25::i;:34::-;18640:52;;;18739:15;;;;18728:48;;18640:52;18728:27;;:6;;:10;:27::i;:::-;:31;;:48::i;:::-;18713:12;;;;:63;;;;-1:-1:-1;;;;;18817:17:0;;;;;;:9;:17;;;;:29;;18839:6;18817:21;:29::i;:::-;-1:-1:-1;;;;;18797:17:0;;;;;;;:9;:17;;;;;;:49;;;;18905:12;;;;18880:20;;;;;;;;;;:38;;:24;:38::i;:::-;-1:-1:-1;;;;;18857:20:0;;;;;;:9;:20;;;;;;;;:61;;;;19005:15;;18985;;;;18956:66;;18985:36;;:15;:19;:36::i;:::-;18974:4;18956:24;;;;:9;:24;;;;;;;:28;:66::i;:::-;18947:4;18929:24;;;;:9;:24;;;;;;;;;:93;;;;19076:12;;;;19048:41;;;;;;;-1:-1:-1;;;;;19048:41:0;;;;;;;;;;;;;;;;;;;18445:652;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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