ETH Price: $3,340.26 (-1.29%)
Gas: 15 Gwei

Token

EMOJI GANGS (EMOJI)
 

Overview

Max Total Supply

100,000,000,000 EMOJI

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
39,923,109.641833753730557817 EMOJI

Value
$0.00
0xd38182442b0Dfb93278e8c74c62F3f11bbdEEb33
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:
EMOJI_GANGS

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.16;
pragma experimental ABIEncoderV2;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

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

    modifier onlyOwner() {
        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);
    }
}

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    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);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _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_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

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

    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 recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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) {
        _approve(_msgSender(), spender, 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 _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] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

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


interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

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

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

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

    function WETH() external pure returns (address);
}

contract EMOJI_GANGS is ERC20, Ownable {

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    address public WETH;

    bool private swapping;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

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

    uint256 public buyTotalFees;
    uint256 public buyDevFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellDevFee;
    uint256 public sellLiquidityFee;

    bool public maxTxOn = true;
    bool public maxWalletOn = true;

    /******************/

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;


    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor() ERC20("EMOJI GANGS", "EMOJI") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        WETH = uniswapV2Router.WETH();

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), WETH);
        excludeFromMaxTransaction(address(uniswapV2Pair), true);


        uint256 _buyDevFee = 4;
        uint256 _buyLiquidityFee = 1;

        uint256 _sellDevFee = 8;
        uint256 _sellLiquidityFee = 1;

        uint256 _totalSupply = 100_000_000_000 * 1e18;

        maxTransactionAmount =  _totalSupply * 1 / 100; // 1% from total supply maxTransactionAmountTxn
        maxWallet = _totalSupply * 2 / 100; // 2% from total supply maxWallet
        swapTokensAtAmount = (_totalSupply * 5) / 10000; // 0.05% swap wallet

        buyDevFee = _buyDevFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyTotalFees = buyDevFee + buyLiquidityFee;

        sellDevFee = _sellDevFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellTotalFees = sellDevFee + sellLiquidityFee;

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, _totalSupply);
    }

    receive() external payable {}
    fallback() external {}

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(
        uint256 _devFee,
        uint256 _liquidityFee
    ) external onlyOwner {
        buyDevFee = _devFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyDevFee + buyLiquidityFee;
        require(buyTotalFees <= 10, "Must keep fees at 10% or less");
    }

    function updateSellFees(
        uint256 _devFee,
        uint256 _liquidityFee
    ) external onlyOwner {
        sellDevFee = _devFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellDevFee + sellLiquidityFee;
        require(sellTotalFees <= 10, "Must keep fees at 10% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

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

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

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                //when buy
                if (
                    from == uniswapV2Pair &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    if(maxTxOn) {
                        require(
                            amount <= maxTransactionAmount,
                            "Buy transfer amount exceeds the maxTransactionAmount."
                        );
                    }
                    if(maxWalletOn) {
                        require(
                            amount + balanceOf(to) <= maxWallet,
                            "Max wallet exceeded"
                        );
                    }
                }
                else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            to == uniswapV2Pair &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        uint256 tokensForLiquidity = 0;
        uint256 tokensForDev = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (to == uniswapV2Pair && sellTotalFees > 0) {
                fees = (amount*sellTotalFees)/(100);
                tokensForLiquidity = (fees * sellLiquidityFee) / sellTotalFees;
                tokensForDev = (fees * sellDevFee) / sellTotalFees;
            }
            // on buy
            else if (from == uniswapV2Pair && buyTotalFees > 0) {
                fees = (amount*buyTotalFees)/(100);
                tokensForLiquidity = (fees * buyLiquidityFee) / buyTotalFees; 
                tokensForDev = (fees * buyDevFee) / buyTotalFees;
            }

            if (fees> 0) {
                super._transfer(from, address(this), fees);
            }
            if (tokensForLiquidity > 0) {
                super._transfer(address(this), uniswapV2Pair, tokensForLiquidity);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function collect() public onlyOwner {
        uint256 contractBalance = address(this).balance;
        (bool success, ) = msg.sender.call{value: contractBalance}("");
        require(success, "Transfer failed.");
    }

    function safeCollect() public onlyOwner {
        uint256 contractBalance = address(this).balance;
        if (contractBalance > 100000000000000000) { // 0.1 ETH will be in the contract
            uint totalBalance = contractBalance - 100000000000000000;
            (bool success, ) = msg.sender.call{value: totalBalance}("");
            require(success, "Transfer failed.");
        } else {
            revert("Insufficient amount of eth remaining");
        }
    }

    function swapTokensForWETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );    

    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        swapTokensForWETH(contractBalance);
    }

    function setMaxTxOn(bool _maxTxOn) external onlyOwner {
        maxTxOn = _maxTxOn;
    }

    function setMaxWalletOn(bool _maxWalletOn) external onlyOwner {
        maxWalletOn = _maxWalletOn;
    }

    function recover(address tkn) public onlyOwner {

        IERC20 _tkn = IERC20(tkn);
                require(_tkn.balanceOf(address(this)) > 0, "no tokens");
                
        (bool ok)=_tkn.transfer(msg.sender, _tkn.balanceOf(address(this)));
        require(ok, "failed");

    }

}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","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":"collect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"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":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"tkn","type":"address"}],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"safeCollect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_maxTxOn","type":"bool"}],"name":"setMaxTxOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_maxWalletOn","type":"bool"}],"name":"setMaxWalletOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600a8054600162ffffff199091161790556011805461ffff19166101011790553480156200003157600080fd5b506040518060400160405280600b81526020016a454d4f4a492047414e475360a81b81525060405180604001604052806005815260200164454d4f4a4960d81b815250816003908162000085919062000699565b50600462000094828262000699565b505050620000b1620000ab6200039160201b60201c565b62000395565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000d3816001620003e7565b6001600160a01b0381166080819052604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000144919062000765565b600660006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf919062000765565b6006546040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af115801562000221573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000247919062000765565b6001600160a01b031660a081905262000262906001620003e7565b600460016008816c01431e0fae6d7217caa00000006064620002858284620007ad565b620002919190620007cf565b6007556064620002a3826002620007ad565b620002af9190620007cf565b600955612710620002c2826005620007ad565b620002ce9190620007cf565b600855600c859055600d849055620002e78486620007f2565b600b55600f8390556010829055620003008284620007f2565b600e55620003226200031a6005546001600160a01b031690565b600162000461565b6200032f30600162000461565b6200033e61dead600162000461565b6200035d620003556005546001600160a01b031690565b6001620003e7565b6200036a306001620003e7565b6200037961dead6001620003e7565b6200038533826200050b565b5050505050506200080e565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004365760405162461bcd60e51b8152602060048201819052602482015260008051602062002c2283398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314620004ac5760405162461bcd60e51b8152602060048201819052602482015260008051602062002c2283398151915260448201526064016200042d565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005635760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200042d565b8060026000828254620005779190620007f2565b90915550506001600160a01b03821660009081526020819052604081208054839290620005a6908490620007f2565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062057607f821691505b6020821081036200064157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f057600081815260208120601f850160051c81016020861015620006705750805b601f850160051c820191505b8181101562000691578281556001016200067c565b505050505050565b81516001600160401b03811115620006b557620006b5620005f5565b620006cd81620006c684546200060b565b8462000647565b602080601f831160018114620007055760008415620006ec5750858301515b600019600386901b1c1916600185901b17855562000691565b600085815260208120601f198616915b82811015620007365788860151825594840194600190910190840162000715565b5085821015620007555787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200077857600080fd5b81516001600160a01b03811681146200079057600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620007ca57620007ca62000797565b500290565b600082620007ed57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000808576200080862000797565b92915050565b60805160a0516123bd620008656000396000818161048a0152818161178c015281816119b801528181611ac801528181611b6b0152611c2501526000818161039301528181611ee90152611f2501526123bd6000f3fe60806040526004361061028c5760003560e01c80637571336a1161015a578063c0246668116100c1578063e2f456051161007a578063e2f45605146107f9578063e52253811461080f578063f11a24d314610824578063f2fde38b1461083a578063f63743421461085a578063f8b45b051461087057610293565b8063c024666814610727578063c18bc19514610747578063c8c8ebe414610767578063d257b34f1461077d578063d85ba0631461079d578063dd62ed3e146107b357610293565b80639c3b4fdc116101135780639c3b4fdc1461067c578063a0d82dc514610692578063a9059cbb146106a8578063ad5c4648146106c8578063b1556f72146106e8578063bbc0c7421461070857610293565b80637571336a146105d45780638a8c523c146105f45780638da5cb5b1461060957806391ba0ac514610627578063924de9b71461064757806395d89b411461066757610293565b80632f005f9d116101fe5780636a486a8e116101b75780636a486a8e1461051f5780636ddd17131461053557806370a0823114610555578063715018a61461058b578063745d032f146105a0578063751039fc146105bf57610293565b80632f005f9d14610442578063313ce5671461045c57806349bd5a5e146104785780634a62bb65146104ac5780634fbee193146104c657806366ca9b83146104ff57610293565b806310d5de531161025057806310d5de53146103515780631694505e1461038157806318160ddd146103cd578063203e727e146103ec57806323b872dd1461040c57806327c8f8351461042c57610293565b806302dbd8f8146102a157806306fdde03146102c1578063095ea7b3146102ec5780630c838f4e1461031c5780630cd865ec1461033157610293565b3661029357005b34801561029f57600080fd5b005b3480156102ad57600080fd5b5061029f6102bc366004611f99565b610886565b3480156102cd57600080fd5b506102d6610926565b6040516102e39190611fbb565b60405180910390f35b3480156102f857600080fd5b5061030c610307366004612020565b6109b8565b60405190151581526020016102e3565b34801561032857600080fd5b5061029f6109cf565b34801561033d57600080fd5b5061029f61034c36600461204a565b610b08565b34801561035d57600080fd5b5061030c61036c36600461204a565b60136020526000908152604090205460ff1681565b34801561038d57600080fd5b506103b57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102e3565b3480156103d957600080fd5b506002545b6040519081526020016102e3565b3480156103f857600080fd5b5061029f61040736600461206c565b610cf4565b34801561041857600080fd5b5061030c610427366004612085565b610dd1565b34801561043857600080fd5b506103b561dead81565b34801561044e57600080fd5b5060115461030c9060ff1681565b34801561046857600080fd5b50604051601281526020016102e3565b34801561048457600080fd5b506103b57f000000000000000000000000000000000000000000000000000000000000000081565b3480156104b857600080fd5b50600a5461030c9060ff1681565b3480156104d257600080fd5b5061030c6104e136600461204a565b6001600160a01b031660009081526012602052604090205460ff1690565b34801561050b57600080fd5b5061029f61051a366004611f99565b610e7b565b34801561052b57600080fd5b506103de600e5481565b34801561054157600080fd5b50600a5461030c9062010000900460ff1681565b34801561056157600080fd5b506103de61057036600461204a565b6001600160a01b031660009081526020819052604090205490565b34801561059757600080fd5b5061029f610f0e565b3480156105ac57600080fd5b5060115461030c90610100900460ff1681565b3480156105cb57600080fd5b5061030c610f44565b3480156105e057600080fd5b5061029f6105ef3660046120cf565b610f81565b34801561060057600080fd5b5061029f610fd6565b34801561061557600080fd5b506005546001600160a01b03166103b5565b34801561063357600080fd5b5061029f610642366004612106565b611013565b34801561065357600080fd5b5061029f610662366004612106565b611057565b34801561067357600080fd5b506102d661109d565b34801561068857600080fd5b506103de600c5481565b34801561069e57600080fd5b506103de600f5481565b3480156106b457600080fd5b5061030c6106c3366004612020565b6110ac565b3480156106d457600080fd5b506006546103b5906001600160a01b031681565b3480156106f457600080fd5b5061029f610703366004612106565b6110b9565b34801561071457600080fd5b50600a5461030c90610100900460ff1681565b34801561073357600080fd5b5061029f6107423660046120cf565b6110f6565b34801561075357600080fd5b5061029f61076236600461206c565b61117f565b34801561077357600080fd5b506103de60075481565b34801561078957600080fd5b5061030c61079836600461206c565b611250565b3480156107a957600080fd5b506103de600b5481565b3480156107bf57600080fd5b506103de6107ce366004612123565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080557600080fd5b506103de60085481565b34801561081b57600080fd5b5061029f6113a7565b34801561083057600080fd5b506103de600d5481565b34801561084657600080fd5b5061029f61085536600461204a565b61145e565b34801561086657600080fd5b506103de60105481565b34801561087c57600080fd5b506103de60095481565b6005546001600160a01b031633146108b95760405162461bcd60e51b81526004016108b090612156565b60405180910390fd5b600f82905560108190556108cd81836121a1565b600e819055600a10156109225760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016108b0565b5050565b606060038054610935906121b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610961906121b4565b80156109ae5780601f10610983576101008083540402835291602001916109ae565b820191906000526020600020905b81548152906001019060200180831161099157829003601f168201915b5050505050905090565b60006109c53384846114f6565b5060015b92915050565b6005546001600160a01b031633146109f95760405162461bcd60e51b81526004016108b090612156565b4767016345785d8a0000811115610ab1576000610a1e67016345785d8a0000836121ee565b604051909150600090339083908381818185875af1925050503d8060008114610a63576040519150601f19603f3d011682016040523d82523d6000602084013e610a68565b606091505b5050905080610aac5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016108b0565b505050565b60405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e7420616d6f756e74206f66206574682072656d61696044820152636e696e6760e01b60648201526084016108b0565b50565b6005546001600160a01b03163314610b325760405162461bcd60e51b81526004016108b090612156565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190612201565b11610bd85760405162461bcd60e51b81526020600482015260096024820152686e6f20746f6b656e7360b81b60448201526064016108b0565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190612201565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbc919061221a565b905080610aac5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b60448201526064016108b0565b6005546001600160a01b03163314610d1e5760405162461bcd60e51b81526004016108b090612156565b670de0b6b3a76400006103e8610d3360025490565b610d3e906001612237565b610d489190612256565b610d529190612256565b811015610db95760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016108b0565b610dcb81670de0b6b3a7640000612237565b60075550565b6000610dde84848461161a565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610e635760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108b0565b610e7085338584036114f6565b506001949350505050565b6005546001600160a01b03163314610ea55760405162461bcd60e51b81526004016108b090612156565b600c829055600d819055610eb981836121a1565b600b819055600a10156109225760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016108b0565b6005546001600160a01b03163314610f385760405162461bcd60e51b81526004016108b090612156565b610f426000611c6d565b565b6005546000906001600160a01b03163314610f715760405162461bcd60e51b81526004016108b090612156565b50600a805460ff19169055600190565b6005546001600160a01b03163314610fab5760405162461bcd60e51b81526004016108b090612156565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110005760405162461bcd60e51b81526004016108b090612156565b600a805462ffff00191662010100179055565b6005546001600160a01b0316331461103d5760405162461bcd60e51b81526004016108b090612156565b601180549115156101000261ff0019909216919091179055565b6005546001600160a01b031633146110815760405162461bcd60e51b81526004016108b090612156565b600a8054911515620100000262ff000019909216919091179055565b606060048054610935906121b4565b60006109c533848461161a565b6005546001600160a01b031633146110e35760405162461bcd60e51b81526004016108b090612156565b6011805460ff1916911515919091179055565b6005546001600160a01b031633146111205760405162461bcd60e51b81526004016108b090612156565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111a95760405162461bcd60e51b81526004016108b090612156565b670de0b6b3a76400006103e86111be60025490565b6111c9906005612237565b6111d39190612256565b6111dd9190612256565b8110156112385760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016108b0565b61124a81670de0b6b3a7640000612237565b60095550565b6005546000906001600160a01b0316331461127d5760405162461bcd60e51b81526004016108b090612156565b620186a061128a60025490565b611295906001612237565b61129f9190612256565b82101561130c5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016108b0565b6103e861131860025490565b611323906005612237565b61132d9190612256565b8211156113995760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016108b0565b50600881905560015b919050565b6005546001600160a01b031633146113d15760405162461bcd60e51b81526004016108b090612156565b6040514790600090339083908381818185875af1925050503d8060008114611415576040519150601f19603f3d011682016040523d82523d6000602084013e61141a565b606091505b50509050806109225760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016108b0565b6005546001600160a01b031633146114885760405162461bcd60e51b81526004016108b090612156565b6001600160a01b0381166114ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b0565b610b0581611c6d565b6001600160a01b0383166115585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b0565b6001600160a01b0382166115b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116405760405162461bcd60e51b81526004016108b090612278565b6001600160a01b0382166116665760405162461bcd60e51b81526004016108b0906122bd565b8060000361167a57610aac83836000611cbf565b600a5460ff161561196d576005546001600160a01b038481169116148015906116b157506005546001600160a01b03838116911614155b80156116c557506001600160a01b03821615155b80156116dc57506001600160a01b03821661dead14155b80156116f25750600654600160a01b900460ff16155b1561196d57600a54610100900460ff1661178a576001600160a01b03831660009081526012602052604090205460ff168061174557506001600160a01b03821660009081526012602052604090205460ff165b61178a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108b0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161480156117e457506001600160a01b03821660009081526013602052604090205460ff16155b156118e35760115460ff1615611864576007548111156118645760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016108b0565b601154610100900460ff16156118de576009546001600160a01b03831660009081526020819052604090205461189a90836121a1565b11156118de5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108b0565b61196d565b6001600160a01b03821660009081526013602052604090205460ff1661196d576009546001600160a01b03831660009081526020819052604090205461192990836121a1565b111561196d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108b0565b30600090815260208190526040902054600854811080159081906119995750600a5462010000900460ff165b80156119af5750600654600160a01b900460ff16155b80156119ec57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b8015611a1157506001600160a01b03851660009081526012602052604090205460ff16155b8015611a3657506001600160a01b03841660009081526012602052604090205460ff16155b15611a64576006805460ff60a01b1916600160a01b179055611a56611e14565b6006805460ff60a01b191690555b6006546001600160a01b03861660009081526012602052604090205460ff600160a01b909204821615911680611ab257506001600160a01b03851660009081526012602052604090205460ff165b15611abb575060005b60008060008315611c57577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316148015611b0957506000600e54115b15611b69576064600e5488611b1e9190612237565b611b289190612256565b9250600e5460105484611b3b9190612237565b611b459190612256565b9150600e54600f5484611b589190612237565b611b629190612256565b9050611c08565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316148015611bac57506000600b54115b15611c08576064600b5488611bc19190612237565b611bcb9190612256565b9250600b54600d5484611bde9190612237565b611be89190612256565b9150600b54600c5484611bfb9190612237565b611c059190612256565b90505b8215611c1957611c19893085611cbf565b8115611c4a57611c4a307f000000000000000000000000000000000000000000000000000000000000000084611cbf565b611c5483886121ee565b96505b611c62898989611cbf565b505050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611ce55760405162461bcd60e51b81526004016108b090612278565b6001600160a01b038216611d0b5760405162461bcd60e51b81526004016108b0906122bd565b6001600160a01b03831660009081526020819052604090205481811015611d835760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108b0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611dba9084906121a1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e0691815260200190565b60405180910390a350505050565b3060009081526020819052604081205490819003611e2f5750565b600854611e3d906014612237565b811115611e5557600854611e52906014612237565b90505b604080516002808252606082018352610b0592849260009290916020830190803683370190505090503081600081518110611e9257611e92612300565b6001600160a01b039283166020918202929092010152600654825191169082906001908110611ec357611ec3612300565b60200260200101906001600160a01b031690816001600160a01b031681525050611f0e307f0000000000000000000000000000000000000000000000000000000000000000846114f6565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611f63908590600090869030904290600401612316565b600060405180830381600087803b158015611f7d57600080fd5b505af1158015611f91573d6000803e3d6000fd5b505050505050565b60008060408385031215611fac57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611fe857858101830151858201604001528201611fcc565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146113a257600080fd5b6000806040838503121561203357600080fd5b61203c83612009565b946020939093013593505050565b60006020828403121561205c57600080fd5b61206582612009565b9392505050565b60006020828403121561207e57600080fd5b5035919050565b60008060006060848603121561209a57600080fd5b6120a384612009565b92506120b160208501612009565b9150604084013590509250925092565b8015158114610b0557600080fd5b600080604083850312156120e257600080fd5b6120eb83612009565b915060208301356120fb816120c1565b809150509250929050565b60006020828403121561211857600080fd5b8135612065816120c1565b6000806040838503121561213657600080fd5b61213f83612009565b915061214d60208401612009565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c9576109c961218b565b600181811c908216806121c857607f821691505b6020821081036121e857634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156109c9576109c961218b565b60006020828403121561221357600080fd5b5051919050565b60006020828403121561222c57600080fd5b8151612065816120c1565b60008160001904831182151516156122515761225161218b565b500290565b60008261227357634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123665784516001600160a01b031683529383019391830191600101612341565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dac955abbfc0dfa4e8872606530b5c3f75897591ee77f20c0e57e089c59671e964736f6c634300081000334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80637571336a1161015a578063c0246668116100c1578063e2f456051161007a578063e2f45605146107f9578063e52253811461080f578063f11a24d314610824578063f2fde38b1461083a578063f63743421461085a578063f8b45b051461087057610293565b8063c024666814610727578063c18bc19514610747578063c8c8ebe414610767578063d257b34f1461077d578063d85ba0631461079d578063dd62ed3e146107b357610293565b80639c3b4fdc116101135780639c3b4fdc1461067c578063a0d82dc514610692578063a9059cbb146106a8578063ad5c4648146106c8578063b1556f72146106e8578063bbc0c7421461070857610293565b80637571336a146105d45780638a8c523c146105f45780638da5cb5b1461060957806391ba0ac514610627578063924de9b71461064757806395d89b411461066757610293565b80632f005f9d116101fe5780636a486a8e116101b75780636a486a8e1461051f5780636ddd17131461053557806370a0823114610555578063715018a61461058b578063745d032f146105a0578063751039fc146105bf57610293565b80632f005f9d14610442578063313ce5671461045c57806349bd5a5e146104785780634a62bb65146104ac5780634fbee193146104c657806366ca9b83146104ff57610293565b806310d5de531161025057806310d5de53146103515780631694505e1461038157806318160ddd146103cd578063203e727e146103ec57806323b872dd1461040c57806327c8f8351461042c57610293565b806302dbd8f8146102a157806306fdde03146102c1578063095ea7b3146102ec5780630c838f4e1461031c5780630cd865ec1461033157610293565b3661029357005b34801561029f57600080fd5b005b3480156102ad57600080fd5b5061029f6102bc366004611f99565b610886565b3480156102cd57600080fd5b506102d6610926565b6040516102e39190611fbb565b60405180910390f35b3480156102f857600080fd5b5061030c610307366004612020565b6109b8565b60405190151581526020016102e3565b34801561032857600080fd5b5061029f6109cf565b34801561033d57600080fd5b5061029f61034c36600461204a565b610b08565b34801561035d57600080fd5b5061030c61036c36600461204a565b60136020526000908152604090205460ff1681565b34801561038d57600080fd5b506103b57f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102e3565b3480156103d957600080fd5b506002545b6040519081526020016102e3565b3480156103f857600080fd5b5061029f61040736600461206c565b610cf4565b34801561041857600080fd5b5061030c610427366004612085565b610dd1565b34801561043857600080fd5b506103b561dead81565b34801561044e57600080fd5b5060115461030c9060ff1681565b34801561046857600080fd5b50604051601281526020016102e3565b34801561048457600080fd5b506103b57f00000000000000000000000055a6878366b84e168c279542af58926986775f4e81565b3480156104b857600080fd5b50600a5461030c9060ff1681565b3480156104d257600080fd5b5061030c6104e136600461204a565b6001600160a01b031660009081526012602052604090205460ff1690565b34801561050b57600080fd5b5061029f61051a366004611f99565b610e7b565b34801561052b57600080fd5b506103de600e5481565b34801561054157600080fd5b50600a5461030c9062010000900460ff1681565b34801561056157600080fd5b506103de61057036600461204a565b6001600160a01b031660009081526020819052604090205490565b34801561059757600080fd5b5061029f610f0e565b3480156105ac57600080fd5b5060115461030c90610100900460ff1681565b3480156105cb57600080fd5b5061030c610f44565b3480156105e057600080fd5b5061029f6105ef3660046120cf565b610f81565b34801561060057600080fd5b5061029f610fd6565b34801561061557600080fd5b506005546001600160a01b03166103b5565b34801561063357600080fd5b5061029f610642366004612106565b611013565b34801561065357600080fd5b5061029f610662366004612106565b611057565b34801561067357600080fd5b506102d661109d565b34801561068857600080fd5b506103de600c5481565b34801561069e57600080fd5b506103de600f5481565b3480156106b457600080fd5b5061030c6106c3366004612020565b6110ac565b3480156106d457600080fd5b506006546103b5906001600160a01b031681565b3480156106f457600080fd5b5061029f610703366004612106565b6110b9565b34801561071457600080fd5b50600a5461030c90610100900460ff1681565b34801561073357600080fd5b5061029f6107423660046120cf565b6110f6565b34801561075357600080fd5b5061029f61076236600461206c565b61117f565b34801561077357600080fd5b506103de60075481565b34801561078957600080fd5b5061030c61079836600461206c565b611250565b3480156107a957600080fd5b506103de600b5481565b3480156107bf57600080fd5b506103de6107ce366004612123565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561080557600080fd5b506103de60085481565b34801561081b57600080fd5b5061029f6113a7565b34801561083057600080fd5b506103de600d5481565b34801561084657600080fd5b5061029f61085536600461204a565b61145e565b34801561086657600080fd5b506103de60105481565b34801561087c57600080fd5b506103de60095481565b6005546001600160a01b031633146108b95760405162461bcd60e51b81526004016108b090612156565b60405180910390fd5b600f82905560108190556108cd81836121a1565b600e819055600a10156109225760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016108b0565b5050565b606060038054610935906121b4565b80601f0160208091040260200160405190810160405280929190818152602001828054610961906121b4565b80156109ae5780601f10610983576101008083540402835291602001916109ae565b820191906000526020600020905b81548152906001019060200180831161099157829003601f168201915b5050505050905090565b60006109c53384846114f6565b5060015b92915050565b6005546001600160a01b031633146109f95760405162461bcd60e51b81526004016108b090612156565b4767016345785d8a0000811115610ab1576000610a1e67016345785d8a0000836121ee565b604051909150600090339083908381818185875af1925050503d8060008114610a63576040519150601f19603f3d011682016040523d82523d6000602084013e610a68565b606091505b5050905080610aac5760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016108b0565b505050565b60405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e7420616d6f756e74206f66206574682072656d61696044820152636e696e6760e01b60648201526084016108b0565b50565b6005546001600160a01b03163314610b325760405162461bcd60e51b81526004016108b090612156565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9f9190612201565b11610bd85760405162461bcd60e51b81526020600482015260096024820152686e6f20746f6b656e7360b81b60448201526064016108b0565b6040516370a0823160e01b81523060048201526000906001600160a01b0383169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190612201565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610c98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbc919061221a565b905080610aac5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b60448201526064016108b0565b6005546001600160a01b03163314610d1e5760405162461bcd60e51b81526004016108b090612156565b670de0b6b3a76400006103e8610d3360025490565b610d3e906001612237565b610d489190612256565b610d529190612256565b811015610db95760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016108b0565b610dcb81670de0b6b3a7640000612237565b60075550565b6000610dde84848461161a565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610e635760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108b0565b610e7085338584036114f6565b506001949350505050565b6005546001600160a01b03163314610ea55760405162461bcd60e51b81526004016108b090612156565b600c829055600d819055610eb981836121a1565b600b819055600a10156109225760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016108b0565b6005546001600160a01b03163314610f385760405162461bcd60e51b81526004016108b090612156565b610f426000611c6d565b565b6005546000906001600160a01b03163314610f715760405162461bcd60e51b81526004016108b090612156565b50600a805460ff19169055600190565b6005546001600160a01b03163314610fab5760405162461bcd60e51b81526004016108b090612156565b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146110005760405162461bcd60e51b81526004016108b090612156565b600a805462ffff00191662010100179055565b6005546001600160a01b0316331461103d5760405162461bcd60e51b81526004016108b090612156565b601180549115156101000261ff0019909216919091179055565b6005546001600160a01b031633146110815760405162461bcd60e51b81526004016108b090612156565b600a8054911515620100000262ff000019909216919091179055565b606060048054610935906121b4565b60006109c533848461161a565b6005546001600160a01b031633146110e35760405162461bcd60e51b81526004016108b090612156565b6011805460ff1916911515919091179055565b6005546001600160a01b031633146111205760405162461bcd60e51b81526004016108b090612156565b6001600160a01b038216600081815260126020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111a95760405162461bcd60e51b81526004016108b090612156565b670de0b6b3a76400006103e86111be60025490565b6111c9906005612237565b6111d39190612256565b6111dd9190612256565b8110156112385760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016108b0565b61124a81670de0b6b3a7640000612237565b60095550565b6005546000906001600160a01b0316331461127d5760405162461bcd60e51b81526004016108b090612156565b620186a061128a60025490565b611295906001612237565b61129f9190612256565b82101561130c5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b60648201526084016108b0565b6103e861131860025490565b611323906005612237565b61132d9190612256565b8211156113995760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b60648201526084016108b0565b50600881905560015b919050565b6005546001600160a01b031633146113d15760405162461bcd60e51b81526004016108b090612156565b6040514790600090339083908381818185875af1925050503d8060008114611415576040519150601f19603f3d011682016040523d82523d6000602084013e61141a565b606091505b50509050806109225760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b60448201526064016108b0565b6005546001600160a01b031633146114885760405162461bcd60e51b81526004016108b090612156565b6001600160a01b0381166114ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108b0565b610b0581611c6d565b6001600160a01b0383166115585760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108b0565b6001600160a01b0382166115b95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108b0565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116405760405162461bcd60e51b81526004016108b090612278565b6001600160a01b0382166116665760405162461bcd60e51b81526004016108b0906122bd565b8060000361167a57610aac83836000611cbf565b600a5460ff161561196d576005546001600160a01b038481169116148015906116b157506005546001600160a01b03838116911614155b80156116c557506001600160a01b03821615155b80156116dc57506001600160a01b03821661dead14155b80156116f25750600654600160a01b900460ff16155b1561196d57600a54610100900460ff1661178a576001600160a01b03831660009081526012602052604090205460ff168061174557506001600160a01b03821660009081526012602052604090205460ff165b61178a5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016108b0565b7f00000000000000000000000055a6878366b84e168c279542af58926986775f4e6001600160a01b0316836001600160a01b03161480156117e457506001600160a01b03821660009081526013602052604090205460ff16155b156118e35760115460ff1615611864576007548111156118645760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016108b0565b601154610100900460ff16156118de576009546001600160a01b03831660009081526020819052604090205461189a90836121a1565b11156118de5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108b0565b61196d565b6001600160a01b03821660009081526013602052604090205460ff1661196d576009546001600160a01b03831660009081526020819052604090205461192990836121a1565b111561196d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016108b0565b30600090815260208190526040902054600854811080159081906119995750600a5462010000900460ff165b80156119af5750600654600160a01b900460ff16155b80156119ec57507f00000000000000000000000055a6878366b84e168c279542af58926986775f4e6001600160a01b0316846001600160a01b0316145b8015611a1157506001600160a01b03851660009081526012602052604090205460ff16155b8015611a3657506001600160a01b03841660009081526012602052604090205460ff16155b15611a64576006805460ff60a01b1916600160a01b179055611a56611e14565b6006805460ff60a01b191690555b6006546001600160a01b03861660009081526012602052604090205460ff600160a01b909204821615911680611ab257506001600160a01b03851660009081526012602052604090205460ff165b15611abb575060005b60008060008315611c57577f00000000000000000000000055a6878366b84e168c279542af58926986775f4e6001600160a01b0316886001600160a01b0316148015611b0957506000600e54115b15611b69576064600e5488611b1e9190612237565b611b289190612256565b9250600e5460105484611b3b9190612237565b611b459190612256565b9150600e54600f5484611b589190612237565b611b629190612256565b9050611c08565b7f00000000000000000000000055a6878366b84e168c279542af58926986775f4e6001600160a01b0316896001600160a01b0316148015611bac57506000600b54115b15611c08576064600b5488611bc19190612237565b611bcb9190612256565b9250600b54600d5484611bde9190612237565b611be89190612256565b9150600b54600c5484611bfb9190612237565b611c059190612256565b90505b8215611c1957611c19893085611cbf565b8115611c4a57611c4a307f00000000000000000000000055a6878366b84e168c279542af58926986775f4e84611cbf565b611c5483886121ee565b96505b611c62898989611cbf565b505050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316611ce55760405162461bcd60e51b81526004016108b090612278565b6001600160a01b038216611d0b5760405162461bcd60e51b81526004016108b0906122bd565b6001600160a01b03831660009081526020819052604090205481811015611d835760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108b0565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611dba9084906121a1565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e0691815260200190565b60405180910390a350505050565b3060009081526020819052604081205490819003611e2f5750565b600854611e3d906014612237565b811115611e5557600854611e52906014612237565b90505b604080516002808252606082018352610b0592849260009290916020830190803683370190505090503081600081518110611e9257611e92612300565b6001600160a01b039283166020918202929092010152600654825191169082906001908110611ec357611ec3612300565b60200260200101906001600160a01b031690816001600160a01b031681525050611f0e307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846114f6565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611f63908590600090869030904290600401612316565b600060405180830381600087803b158015611f7d57600080fd5b505af1158015611f91573d6000803e3d6000fd5b505050505050565b60008060408385031215611fac57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611fe857858101830151858201604001528201611fcc565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146113a257600080fd5b6000806040838503121561203357600080fd5b61203c83612009565b946020939093013593505050565b60006020828403121561205c57600080fd5b61206582612009565b9392505050565b60006020828403121561207e57600080fd5b5035919050565b60008060006060848603121561209a57600080fd5b6120a384612009565b92506120b160208501612009565b9150604084013590509250925092565b8015158114610b0557600080fd5b600080604083850312156120e257600080fd5b6120eb83612009565b915060208301356120fb816120c1565b809150509250929050565b60006020828403121561211857600080fd5b8135612065816120c1565b6000806040838503121561213657600080fd5b61213f83612009565b915061214d60208401612009565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c9576109c961218b565b600181811c908216806121c857607f821691505b6020821081036121e857634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156109c9576109c961218b565b60006020828403121561221357600080fd5b5051919050565b60006020828403121561222c57600080fd5b8151612065816120c1565b60008160001904831182151516156122515761225161218b565b500290565b60008261227357634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123665784516001600160a01b031683529383019391830191600101612341565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dac955abbfc0dfa4e8872606530b5c3f75897591ee77f20c0e57e089c59671e964736f6c63430008100033

Deployed Bytecode Sourcemap

7577:11759:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12718:318;;;;;;;;;;-1:-1:-1;12718:318:0;;;;;:::i;:::-;;:::i;3415:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4440:169;;;;;;;;;;-1:-1:-1;4440:169:0;;;;;:::i;:::-;;:::i;:::-;;;1422:14:1;;1415:22;1397:41;;1385:2;1370:18;4440:169:0;1257:187:1;17425:480:0;;;;;;;;;;;;;:::i;19035:296::-;;;;;;;;;;-1:-1:-1;19035:296:0;;;;;:::i;:::-;;:::i;8504:63::-;;;;;;;;;;-1:-1:-1;8504:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7625:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1830:32:1;;;1812:51;;1800:2;1785:18;7625:51:0;1640:229:1;3847:108:0;;;;;;;;;;-1:-1:-1;3935:12:0;;3847:108;;;2020:25:1;;;2008:2;1993:18;3847:108:0;1874:177:1;11481:275:0;;;;;;;;;;-1:-1:-1;11481:275:0;;;;;:::i;:::-;;:::i;4617:492::-;;;;;;;;;;-1:-1:-1;4617:492:0;;;;;:::i;:::-;;:::i;7728:53::-;;;;;;;;;;;;7774:6;7728:53;;8292:26;;;;;;;;;;-1:-1:-1;8292:26:0;;;;;;;;3746:93;;;;;;;;;;-1:-1:-1;3746:93:0;;3829:2;2924:36:1;;2912:2;2897:18;3746:93:0;2782:184:1;7683:38:0;;;;;;;;;;;;;;;7961:33;;;;;;;;;;-1:-1:-1;7961:33:0;;;;;;;;13234:126;;;;;;;;;;-1:-1:-1;13234:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;13324:28:0;13300:4;13324:28;;;:19;:28;;;;;;;;;13234:126;12399:311;;;;;;;;;;-1:-1:-1;12399:311:0;;;;;:::i;:::-;;:::i;8185:28::-;;;;;;;;;;;;;;;;8041:31;;;;;;;;;;-1:-1:-1;8041:31:0;;;;;;;;;;;3963:127;;;;;;;;;;-1:-1:-1;3963:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4064:18:0;4037:7;4064:18;;;;;;;;;;;;3963:127;907:103;;;;;;;;;;;;;:::i;8325:30::-;;;;;;;;;;-1:-1:-1;8325:30:0;;;;;;;;;;;10785:121;;;;;;;;;;;;;:::i;12028:167::-;;;;;;;;;;-1:-1:-1;12028:167:0;;;;;:::i;:::-;;:::i;10621:112::-;;;;;;;;;;;;;:::i;684:87::-;;;;;;;;;;-1:-1:-1;757:6:0;;-1:-1:-1;;;;;757:6:0;684:87;;18920:107;;;;;;;;;;-1:-1:-1;18920:107:0;;;;;:::i;:::-;;:::i;12291:100::-;;;;;;;;;;-1:-1:-1;12291:100:0;;;;;:::i;:::-;;:::i;3634:104::-;;;;;;;;;;;;;:::i;8115:24::-;;;;;;;;;;;;;;;;8220:25;;;;;;;;;;;;;;;;4098:175;;;;;;;;;;-1:-1:-1;4098:175:0;;;;;:::i;:::-;;:::i;7788:19::-;;;;;;;;;;-1:-1:-1;7788:19:0;;;;-1:-1:-1;;;;;7788:19:0;;;18821:91;;;;;;;;;;-1:-1:-1;18821:91:0;;;;;:::i;:::-;;:::i;8001:33::-;;;;;;;;;;-1:-1:-1;8001:33:0;;;;;;;;;;;13044:182;;;;;;;;;;-1:-1:-1;13044:182:0;;;;;:::i;:::-;;:::i;11764:256::-;;;;;;;;;;-1:-1:-1;11764:256:0;;;;;:::i;:::-;;:::i;7846:35::-;;;;;;;;;;;;;;;;10976:497;;;;;;;;;;-1:-1:-1;10976:497:0;;;;;:::i;:::-;;:::i;8081:27::-;;;;;;;;;;;;;;;;4281:151;;;;;;;;;;-1:-1:-1;4281:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4397:18:0;;;4370:7;4397:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4281:151;7888:33;;;;;;;;;;;;;;;;17195:222;;;;;;;;;;;;;:::i;8146:30::-;;;;;;;;;;;;;;;;1018:201;;;;;;;;;;-1:-1:-1;1018:201:0;;;;;:::i;:::-;;:::i;8252:31::-;;;;;;;;;;;;;;;;7928:24;;;;;;;;;;;;;;;;12718:318;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;;;;;;;;;12837:10:::1;:20:::0;;;12868:16:::1;:32:::0;;;12927:29:::1;12887:13:::0;12850:7;12927:29:::1;:::i;:::-;12911:13;:45:::0;;;12992:2:::1;-1:-1:-1::0;12975:19:0::1;12967:61;;;::::0;-1:-1:-1;;;12967:61:0;;4750:2:1;12967:61:0::1;::::0;::::1;4732:21:1::0;4789:2;4769:18;;;4762:30;4828:31;4808:18;;;4801:59;4877:18;;12967:61:0::1;4548:353:1::0;12967:61:0::1;12718:318:::0;;:::o;3415:100::-;3469:13;3502:5;3495:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3415:100;:::o;4440:169::-;4523:4;4540:39;211:10;4563:7;4572:6;4540:8;:39::i;:::-;-1:-1:-1;4597:4:0;4440:169;;;;;:::o;17425:480::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;17502:21:::1;17556:18;17538:36:::0;::::1;17534:364;;;17626:17;17646:36;17664:18;17646:15:::0;:36:::1;:::i;:::-;17716:40;::::0;17626:56;;-1:-1:-1;17698:12:0::1;::::0;17716:10:::1;::::0;17626:56;;17698:12;17716:40;17698:12;17716:40;17626:56;17716:10;:40:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17697:59;;;17779:7;17771:36;;;::::0;-1:-1:-1;;;17771:36:0;;5836:2:1;17771:36:0::1;::::0;::::1;5818:21:1::0;5875:2;5855:18;;;5848:30;-1:-1:-1;;;5894:18:1;;;5887:46;5950:18;;17771:36:0::1;5634:340:1::0;17771:36:0::1;17576:243;;17465:440;17425:480::o:0;17534:364::-:1;17840:46;::::0;-1:-1:-1;;;17840:46:0;;6181:2:1;17840:46:0::1;::::0;::::1;6163:21:1::0;6220:2;6200:18;;;6193:30;6259:34;6239:18;;;6232:62;-1:-1:-1;;;6310:18:1;;;6303:34;6354:19;;17840:46:0::1;5979:400:1::0;17534:364:0::1;17465:440;17425:480::o:0;19035:296::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;19147:29:::1;::::0;-1:-1:-1;;;19147:29:0;;19170:4:::1;19147:29;::::0;::::1;1812:51:1::0;19116:3:0;;19095:11:::1;::::0;-1:-1:-1;;;;;19147:14:0;::::1;::::0;::::1;::::0;1785:18:1;;19147:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;19139:55;;;::::0;-1:-1:-1;;;19139:55:0;;6775:2:1;19139:55:0::1;::::0;::::1;6757:21:1::0;6814:1;6794:18;;;6787:29;-1:-1:-1;;;6832:18:1;;;6825:39;6881:18;;19139:55:0::1;6573:332:1::0;19139:55:0::1;19259:29;::::0;-1:-1:-1;;;19259:29:0;;19282:4:::1;19259:29;::::0;::::1;1812:51:1::0;19224:7:0::1;::::0;-1:-1:-1;;;;;19233:13:0;::::1;::::0;::::1;::::0;19247:10:::1;::::0;19233:13;;19259:14:::1;::::0;1785:18:1;;19259:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19233:56;::::0;-1:-1:-1;;;;;;19233:56:0::1;::::0;;;;;;-1:-1:-1;;;;;7102:32:1;;;19233:56:0::1;::::0;::::1;7084:51:1::0;7151:18;;;7144:34;7057:18;;19233:56:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19223:66;;19308:2;19300:21;;;::::0;-1:-1:-1;;;19300:21:0;;7641:2:1;19300:21:0::1;::::0;::::1;7623::1::0;7680:1;7660:18;;;7653:29;-1:-1:-1;;;7698:18:1;;;7691:36;7744:18;;19300:21:0::1;7439:329:1::0;11481:275:0;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;11618:4:::1;11610;11589:13;3935:12:::0;;;3847:108;11589:13:::1;:17;::::0;11605:1:::1;11589:17;:::i;:::-;11588:26;;;;:::i;:::-;11587:35;;;;:::i;:::-;11577:6;:45;;11555:142;;;::::0;-1:-1:-1;;;11555:142:0;;8370:2:1;11555:142:0::1;::::0;::::1;8352:21:1::0;8409:2;8389:18;;;8382:30;8448:34;8428:18;;;8421:62;-1:-1:-1;;;8499:18:1;;;8492:45;8554:19;;11555:142:0::1;8168:411:1::0;11555:142:0::1;11731:17;:6:::0;11741::::1;11731:17;:::i;:::-;11708:20;:40:::0;-1:-1:-1;11481:275:0:o;4617:492::-;4757:4;4774:36;4784:6;4792:9;4803:6;4774:9;:36::i;:::-;-1:-1:-1;;;;;4850:19:0;;4823:24;4850:19;;;:11;:19;;;;;;;;211:10;4850:33;;;;;;;;4902:26;;;;4894:79;;;;-1:-1:-1;;;4894:79:0;;8786:2:1;4894:79:0;;;8768:21:1;8825:2;8805:18;;;8798:30;8864:34;8844:18;;;8837:62;-1:-1:-1;;;8915:18:1;;;8908:38;8963:19;;4894:79:0;8584:404:1;4894:79:0;5009:57;5018:6;211:10;5059:6;5040:16;:25;5009:8;:57::i;:::-;-1:-1:-1;5097:4:0;;4617:492;-1:-1:-1;;;;4617:492:0:o;12399:311::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;12517:9:::1;:19:::0;;;12547:15:::1;:31:::0;;;12604:27:::1;12565:13:::0;12529:7;12604:27:::1;:::i;:::-;12589:12;:42:::0;;;12666:2:::1;-1:-1:-1::0;12650:18:0::1;12642:60;;;::::0;-1:-1:-1;;;12642:60:0;;4750:2:1;12642:60:0::1;::::0;::::1;4732:21:1::0;4789:2;4769:18;;;4762:30;4828:31;4808:18;;;4801:59;4877:18;;12642:60:0::1;4548:353:1::0;907:103:0;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;972:30:::1;999:1;972:18;:30::i;:::-;907:103::o:0;10785:121::-;757:6;;10837:4;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;-1:-1:-1;10854:14:0::1;:22:::0;;-1:-1:-1;;10854:22:0::1;::::0;;;10785:121;:::o;12028:167::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12141:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;12141:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12028:167::o;10621:112::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;10676:13:::1;:20:::0;;-1:-1:-1;;10707:18:0;;;;;10621:112::o;18920:107::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;18993:11:::1;:26:::0;;;::::1;;;;-1:-1:-1::0;;18993:26:0;;::::1;::::0;;;::::1;::::0;;18920:107::o;12291:100::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;12362:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;12362:21:0;;::::1;::::0;;;::::1;::::0;;12291:100::o;3634:104::-;3690:13;3723:7;3716:14;;;;;:::i;4098:175::-;4184:4;4201:42;211:10;4225:9;4236:6;4201:9;:42::i;18821:91::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;18886:7:::1;:18:::0;;-1:-1:-1;;18886:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18821:91::o;13044:182::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13129:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;13129:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13184:34;;1397:41:1;;;13184:34:0::1;::::0;1370:18:1;13184:34:0::1;;;;;;;13044:182:::0;;:::o;11764:256::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;11904:4:::1;11896;11875:13;3935:12:::0;;;3847:108;11875:13:::1;:17;::::0;11891:1:::1;11875:17;:::i;:::-;11874:26;;;;:::i;:::-;11873:35;;;;:::i;:::-;11863:6;:45;;11841:131;;;::::0;-1:-1:-1;;;11841:131:0;;9195:2:1;11841:131:0::1;::::0;::::1;9177:21:1::0;9234:2;9214:18;;;9207:30;9273:34;9253:18;;;9246:62;-1:-1:-1;;;9324:18:1;;;9317:34;9368:19;;11841:131:0::1;8993:400:1::0;11841:131:0::1;11995:17;:6:::0;12005::::1;11995:17;:::i;:::-;11983:9;:29:::0;-1:-1:-1;11764:256:0:o;10976:497::-;757:6;;11084:4;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;11163:6:::1;11142:13;3935:12:::0;;;3847:108;11142:13:::1;:17;::::0;11158:1:::1;11142:17;:::i;:::-;11141:28;;;;:::i;:::-;11128:9;:41;;11106:144;;;::::0;-1:-1:-1;;;11106:144:0;;9600:2:1;11106:144:0::1;::::0;::::1;9582:21:1::0;9639:2;9619:18;;;9612:30;9678:34;9658:18;;;9651:62;-1:-1:-1;;;9729:18:1;;;9722:51;9790:19;;11106:144:0::1;9398:417:1::0;11106:144:0::1;11318:4;11297:13;3935:12:::0;;;3847:108;11297:13:::1;:17;::::0;11313:1:::1;11297:17;:::i;:::-;11296:26;;;;:::i;:::-;11283:9;:39;;11261:141;;;::::0;-1:-1:-1;;;11261:141:0;;10022:2:1;11261:141:0::1;::::0;::::1;10004:21:1::0;10061:2;10041:18;;;10034:30;10100:34;10080:18;;;10073:62;-1:-1:-1;;;10151:18:1;;;10144:50;10211:19;;11261:141:0::1;9820:416:1::0;11261:141:0::1;-1:-1:-1::0;11413:18:0::1;:30:::0;;;11461:4:::1;890:1;10976:497:::0;;;:::o;17195:222::-;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;17319:43:::1;::::0;17268:21:::1;::::0;17242:23:::1;::::0;17319:10:::1;::::0;17268:21;;17242:23;17319:43;17242:23;17319:43;17268:21;17319:10;:43:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17300:62;;;17381:7;17373:36;;;::::0;-1:-1:-1;;;17373:36:0;;5836:2:1;17373:36:0::1;::::0;::::1;5818:21:1::0;5875:2;5855:18;;;5848:30;-1:-1:-1;;;5894:18:1;;;5887:46;5950:18;;17373:36:0::1;5634:340:1::0;1018:201:0;757:6;;-1:-1:-1;;;;;757:6:0;211:10;819:23;811:68;;;;-1:-1:-1;;;811:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1107:22:0;::::1;1099:73;;;::::0;-1:-1:-1;;;1099:73:0;;10443:2:1;1099:73:0::1;::::0;::::1;10425:21:1::0;10482:2;10462:18;;;10455:30;10521:34;10501:18;;;10494:62;-1:-1:-1;;;10572:18:1;;;10565:36;10618:19;;1099:73:0::1;10241:402:1::0;1099:73:0::1;1183:28;1202:8;1183:18;:28::i;6265:380::-:0;-1:-1:-1;;;;;6401:19:0;;6393:68;;;;-1:-1:-1;;;6393:68:0;;10850:2:1;6393:68:0;;;10832:21:1;10889:2;10869:18;;;10862:30;10928:34;10908:18;;;10901:62;-1:-1:-1;;;10979:18:1;;;10972:34;11023:19;;6393:68:0;10648:400:1;6393:68:0;-1:-1:-1;;;;;6480:21:0;;6472:68;;;;-1:-1:-1;;;6472:68:0;;11255:2:1;6472:68:0;;;11237:21:1;11294:2;11274:18;;;11267:30;11333:34;11313:18;;;11306:62;-1:-1:-1;;;11384:18:1;;;11377:32;11426:19;;6472:68:0;11053:398:1;6472:68:0;-1:-1:-1;;;;;6553:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6605:32;;2020:25:1;;;6605:32:0;;1993:18:1;6605:32:0;;;;;;;6265:380;;;:::o;13368:3819::-;-1:-1:-1;;;;;13500:18:0;;13492:68;;;;-1:-1:-1;;;13492:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13579:16:0;;13571:64;;;;-1:-1:-1;;;13571:64:0;;;;;;;:::i;:::-;13652:6;13662:1;13652:11;13648:93;;13680:28;13696:4;13702:2;13706:1;13680:15;:28::i;13648:93::-;13757:14;;;;13753:1582;;;757:6;;-1:-1:-1;;;;;13810:15:0;;;757:6;;13810:15;;;;:49;;-1:-1:-1;757:6:0;;-1:-1:-1;;;;;13846:13:0;;;757:6;;13846:13;;13810:49;:86;;;;-1:-1:-1;;;;;;13880:16:0;;;;13810:86;:128;;;;-1:-1:-1;;;;;;13917:21:0;;13931:6;13917:21;;13810:128;:158;;;;-1:-1:-1;13960:8:0;;-1:-1:-1;;;13960:8:0;;;;13959:9;13810:158;13788:1536;;;14008:13;;;;;;;14003:223;;-1:-1:-1;;;;;14080:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14109:23:0;;;;;;:19;:23;;;;;;;;14080:52;14046:160;;;;-1:-1:-1;;;14046:160:0;;12468:2:1;14046:160:0;;;12450:21:1;12507:2;12487:18;;;12480:30;-1:-1:-1;;;12526:18:1;;;12519:52;12588:18;;14046:160:0;12266:346:1;14046:160:0;14440:13;-1:-1:-1;;;;;14432:21:0;:4;-1:-1:-1;;;;;14432:21:0;;:82;;;;-1:-1:-1;;;;;;14479:35:0;;;;;;:31;:35;;;;;;;;14478:36;14432:82;14406:903;;;14560:7;;;;14557:244;;;14644:20;;14634:6;:30;;14596:181;;;;-1:-1:-1;;;14596:181:0;;12819:2:1;14596:181:0;;;12801:21:1;12858:2;12838:18;;;12831:30;12897:34;12877:18;;;12870:62;-1:-1:-1;;;12948:18:1;;;12941:51;13009:19;;14596:181:0;12617:417:1;14596:181:0;14826:11;;;;;;;14823:219;;;14930:9;;-1:-1:-1;;;;;4064:18:0;;4037:7;4064:18;;;;;;;;;;;14904:22;;:6;:22;:::i;:::-;:35;;14866:152;;;;-1:-1:-1;;;14866:152:0;;13241:2:1;14866:152:0;;;13223:21:1;13280:2;13260:18;;;13253:30;-1:-1:-1;;;13299:18:1;;;13292:49;13358:18;;14866:152:0;13039:343:1;14866:152:0;14406:903;;;-1:-1:-1;;;;;15089:35:0;;;;;;:31;:35;;;;;;;;15084:225;;15209:9;;-1:-1:-1;;;;;4064:18:0;;4037:7;4064:18;;;;;;;;;;;15183:22;;:6;:22;:::i;:::-;:35;;15149:140;;;;-1:-1:-1;;;15149:140:0;;13241:2:1;15149:140:0;;;13223:21:1;13280:2;13260:18;;;13253:30;-1:-1:-1;;;13299:18:1;;;13292:49;13358:18;;15149:140:0;13039:343:1;15149:140:0;15396:4;15347:28;4064:18;;;;;;;;;;;15454;;15430:42;;;;;;;15503:35;;-1:-1:-1;15527:11:0;;;;;;;15503:35;:61;;;;-1:-1:-1;15556:8:0;;-1:-1:-1;;;15556:8:0;;;;15555:9;15503:61;:97;;;;;15587:13;-1:-1:-1;;;;;15581:19:0;:2;-1:-1:-1;;;;;15581:19:0;;15503:97;:140;;;;-1:-1:-1;;;;;;15618:25:0;;;;;;:19;:25;;;;;;;;15617:26;15503:140;:181;;;;-1:-1:-1;;;;;;15661:23:0;;;;;;:19;:23;;;;;;;;15660:24;15503:181;15485:313;;;15711:8;:15;;-1:-1:-1;;;;15711:15:0;-1:-1:-1;;;15711:15:0;;;15743:10;:8;:10::i;:::-;15770:8;:16;;-1:-1:-1;;;;15770:16:0;;;15485:313;15826:8;;-1:-1:-1;;;;;15936:25:0;;15810:12;15936:25;;;:19;:25;;;;;;15826:8;-1:-1:-1;;;15826:8:0;;;;;15825:9;;15936:25;;:52;;-1:-1:-1;;;;;;15965:23:0;;;;;;:19;:23;;;;;;;;15936:52;15932:100;;;-1:-1:-1;16015:5:0;15932:100;16044:12;16071:26;16112:20;16225:7;16221:913;;;16283:13;-1:-1:-1;;;;;16277:19:0;:2;-1:-1:-1;;;;;16277:19:0;;:40;;;;;16316:1;16300:13;;:17;16277:40;16273:571;;;16369:3;16353:13;;16346:6;:20;;;;:::i;:::-;16345:28;;;;:::i;:::-;16338:35;;16441:13;;16421:16;;16414:4;:23;;;;:::i;:::-;16413:41;;;;:::i;:::-;16392:62;;16510:13;;16496:10;;16489:4;:17;;;;:::i;:::-;16488:35;;;;:::i;:::-;16473:50;;16273:571;;;16593:13;-1:-1:-1;;;;;16585:21:0;:4;-1:-1:-1;;;;;16585:21:0;;:41;;;;;16625:1;16610:12;;:16;16585:41;16581:263;;;16677:3;16662:12;;16655:6;:19;;;;:::i;:::-;16654:27;;;;:::i;:::-;16647:34;;16748:12;;16729:15;;16722:4;:22;;;;:::i;:::-;16721:39;;;;:::i;:::-;16700:60;;16816:12;;16803:9;;16796:4;:16;;;;:::i;:::-;16795:33;;;;:::i;:::-;16780:48;;16581:263;16864:7;;16860:90;;16892:42;16908:4;16922;16929;16892:15;:42::i;:::-;16968:22;;16964:128;;17011:65;17035:4;17042:13;17057:18;17011:15;:65::i;:::-;17108:14;17118:4;17108:14;;:::i;:::-;;;16221:913;17146:33;17162:4;17168:2;17172:6;17146:15;:33::i;:::-;13481:3706;;;;;;13368:3819;;;:::o;1227:191::-;1320:6;;;-1:-1:-1;;;;;1337:17:0;;;-1:-1:-1;;;;;;1337:17:0;;;;;;;1370:40;;1320:6;;;1337:17;1320:6;;1370:40;;1301:16;;1370:40;1290:128;1227:191;:::o;5117:733::-;-1:-1:-1;;;;;5257:20:0;;5249:70;;;;-1:-1:-1;;;5249:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5338:23:0;;5330:71;;;;-1:-1:-1;;;5330:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5498:17:0;;5474:21;5498:17;;;;;;;;;;;5534:23;;;;5526:74;;;;-1:-1:-1;;;5526:74:0;;13589:2:1;5526:74:0;;;13571:21:1;13628:2;13608:18;;;13601:30;13667:34;13647:18;;;13640:62;-1:-1:-1;;;13718:18:1;;;13711:36;13764:19;;5526:74:0;13387:402:1;5526:74:0;-1:-1:-1;;;;;5636:17:0;;;:9;:17;;;;;;;;;;;5656:22;;;5636:42;;5700:20;;;;;;;;:30;;5672:6;;5636:9;5700:30;;5672:6;;5700:30;:::i;:::-;;;;;;;;5765:9;-1:-1:-1;;;;;5748:35:0;5757:6;-1:-1:-1;;;;;5748:35:0;;5776:6;5748:35;;;;2020:25:1;;2008:2;1993:18;;1874:177;5748:35:0;;;;;;;;5238:612;5117:733;;;:::o;18473:340::-;18556:4;18512:23;4064:18;;;;;;;;;;;;18577:20;;;18573:59;;18614:7;18473:340::o;18573:59::-;18666:18;;:23;;18687:2;18666:23;:::i;:::-;18648:15;:41;18644:115;;;18724:18;;:23;;18745:2;18724:23;:::i;:::-;18706:41;;18644:115;18064:16;;;18078:1;18064:16;;;;;;;;18771:34;;18789:15;;18040:21;;18064:16;;;;;;;;;;;;-1:-1:-1;18064:16:0;18040:40;;18109:4;18091;18096:1;18091:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18091:23:0;;;:7;;;;;;;;;:23;18135:4;;18125:7;;18135:4;;;18125;;18135;;18125:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;18125:14:0;;;-1:-1:-1;;;;;18125:14:0;;;;;18152:62;18169:4;18184:15;18202:11;18152:8;:62::i;:::-;18227:224;;-1:-1:-1;;;18227:224:0;;-1:-1:-1;;;;;18227:15:0;:66;;;;:224;;18308:11;;18334:1;;18378:4;;18405;;18425:15;;18227:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17969:496;17913:552;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:173::-;888:20;;-1:-1:-1;;;;;937:31:1;;927:42;;917:70;;983:1;980;973:12;998:254;1066:6;1074;1127:2;1115:9;1106:7;1102:23;1098:32;1095:52;;;1143:1;1140;1133:12;1095:52;1166:29;1185:9;1166:29;:::i;:::-;1156:39;1242:2;1227:18;;;;1214:32;;-1:-1:-1;;;998:254:1:o;1449:186::-;1508:6;1561:2;1549:9;1540:7;1536:23;1532:32;1529:52;;;1577:1;1574;1567:12;1529:52;1600:29;1619:9;1600:29;:::i;:::-;1590:39;1449:186;-1:-1:-1;;;1449:186:1:o;2056:180::-;2115:6;2168:2;2156:9;2147:7;2143:23;2139:32;2136:52;;;2184:1;2181;2174:12;2136:52;-1:-1:-1;2207:23:1;;2056:180;-1:-1:-1;2056:180:1:o;2241:328::-;2318:6;2326;2334;2387:2;2375:9;2366:7;2362:23;2358:32;2355:52;;;2403:1;2400;2393:12;2355:52;2426:29;2445:9;2426:29;:::i;:::-;2416:39;;2474:38;2508:2;2497:9;2493:18;2474:38;:::i;:::-;2464:48;;2559:2;2548:9;2544:18;2531:32;2521:42;;2241:328;;;;;:::o;2971:118::-;3057:5;3050:13;3043:21;3036:5;3033:32;3023:60;;3079:1;3076;3069:12;3094:315;3159:6;3167;3220:2;3208:9;3199:7;3195:23;3191:32;3188:52;;;3236:1;3233;3226:12;3188:52;3259:29;3278:9;3259:29;:::i;:::-;3249:39;;3338:2;3327:9;3323:18;3310:32;3351:28;3373:5;3351:28;:::i;:::-;3398:5;3388:15;;;3094:315;;;;;:::o;3414:241::-;3470:6;3523:2;3511:9;3502:7;3498:23;3494:32;3491:52;;;3539:1;3536;3529:12;3491:52;3578:9;3565:23;3597:28;3619:5;3597:28;:::i;3660:260::-;3728:6;3736;3789:2;3777:9;3768:7;3764:23;3760:32;3757:52;;;3805:1;3802;3795:12;3757:52;3828:29;3847:9;3828:29;:::i;:::-;3818:39;;3876:38;3910:2;3899:9;3895:18;3876:38;:::i;:::-;3866:48;;3660:260;;;;;:::o;3925:356::-;4127:2;4109:21;;;4146:18;;;4139:30;4205:34;4200:2;4185:18;;4178:62;4272:2;4257:18;;3925:356::o;4286:127::-;4347:10;4342:3;4338:20;4335:1;4328:31;4378:4;4375:1;4368:15;4402:4;4399:1;4392:15;4418:125;4483:9;;;4504:10;;;4501:36;;;4517:18;;:::i;4906:380::-;4985:1;4981:12;;;;5028;;;5049:61;;5103:4;5095:6;5091:17;5081:27;;5049:61;5156:2;5148:6;5145:14;5125:18;5122:38;5119:161;;5202:10;5197:3;5193:20;5190:1;5183:31;5237:4;5234:1;5227:15;5265:4;5262:1;5255:15;5119:161;;4906:380;;;:::o;5291:128::-;5358:9;;;5379:11;;;5376:37;;;5393:18;;:::i;6384:184::-;6454:6;6507:2;6495:9;6486:7;6482:23;6478:32;6475:52;;;6523:1;6520;6513:12;6475:52;-1:-1:-1;6546:16:1;;6384:184;-1:-1:-1;6384:184:1:o;7189:245::-;7256:6;7309:2;7297:9;7288:7;7284:23;7280:32;7277:52;;;7325:1;7322;7315:12;7277:52;7357:9;7351:16;7376:28;7398:5;7376:28;:::i;7773:168::-;7813:7;7879:1;7875;7871:6;7867:14;7864:1;7861:21;7856:1;7849:9;7842:17;7838:45;7835:71;;;7886:18;;:::i;:::-;-1:-1:-1;7926:9:1;;7773:168::o;7946:217::-;7986:1;8012;8002:132;;8056:10;8051:3;8047:20;8044:1;8037:31;8091:4;8088:1;8081:15;8119:4;8116:1;8109:15;8002:132;-1:-1:-1;8148:9:1;;7946:217::o;11456:401::-;11658:2;11640:21;;;11697:2;11677:18;;;11670:30;11736:34;11731:2;11716:18;;11709:62;-1:-1:-1;;;11802:2:1;11787:18;;11780:35;11847:3;11832:19;;11456:401::o;11862:399::-;12064:2;12046:21;;;12103:2;12083:18;;;12076:30;12142:34;12137:2;12122:18;;12115:62;-1:-1:-1;;;12208:2:1;12193:18;;12186:33;12251:3;12236:19;;11862:399::o;13926:127::-;13987:10;13982:3;13978:20;13975:1;13968:31;14018:4;14015:1;14008:15;14042:4;14039:1;14032:15;14058:980;14320:4;14368:3;14357:9;14353:19;14399:6;14388:9;14381:25;14425:2;14463:6;14458:2;14447:9;14443:18;14436:34;14506:3;14501:2;14490:9;14486:18;14479:31;14530:6;14565;14559:13;14596:6;14588;14581:22;14634:3;14623:9;14619:19;14612:26;;14673:2;14665:6;14661:15;14647:29;;14694:1;14704:195;14718:6;14715:1;14712:13;14704:195;;;14783:13;;-1:-1:-1;;;;;14779:39:1;14767:52;;14874:15;;;;14839:12;;;;14815:1;14733:9;14704:195;;;-1:-1:-1;;;;;;;14955:32:1;;;;14950:2;14935:18;;14928:60;-1:-1:-1;;;15019:3:1;15004:19;14997:35;14916:3;14058:980;-1:-1:-1;;;14058:980:1:o

Swarm Source

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