ETH Price: $3,616.98 (+8.85%)

Token

QUEST (QUEST)
 

Overview

Max Total Supply

800,000,000,000 QUEST

Holders

330

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
24,025,100 QUEST

Value
$0.00
0x4fc70b5a59bcedc4f6075eb9cbe22b57b005a853
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:
QuestCoin

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-27
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/*

QUEST (QUEST)

Twitter: https://x.com/questcoinerc
Tg: https://t.me/QuestCoinERC
Website: www.QuestCoinERC.com

*/


abstract contract Ownable {
    address private _owner;

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

    constructor(address owner_) {
        _transferOwnership(owner_);
    }

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

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

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

}

interface IERC20 {

    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);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

interface IERC20Metadata is IERC20 {

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

}

contract ERC20 is IERC20, IERC20Metadata {

    string private _symbol;
    string private _name;


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

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

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

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

        return true;
    }

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

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

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

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

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

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

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

        emit Transfer(sender, recipient, 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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

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

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

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

        return true;
    }

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

}

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

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract QuestCoin is ERC20, Ownable {

    address public LPTokenReceiver;
    address public marketingReceiver;

    uint256 public buyTotalFees;
    uint256 public sellTotalFees;

    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;

    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;

    IUniswapV2Router02 public router;
    address public liquidityPair;

    mapping(address => bool) public isAMM;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFee;
    mapping(address => bool) public isExcludedFromWalletLimits;

    uint256 public feeDenominator = 1000;
    
    bool private swapping;
    uint256 swapThreshold;
    bool public limitsInEffect = true;

    // While limits are in effect, an EOA can have exactly one transaction per block
    mapping(address => mapping(uint256 => uint256)) public blockTransferCount;

    // This feature can only be enabled and not disabled.
    // Enabling these will cap the buy or sell fee to some value
    // a value of 50 => 5% max. A value of 150 => 15% max
    bool maxSellFeeSet = false;
    bool maxBuyFeeSet = false;
    uint256 maxSellFee;
    uint256 maxBuyFee;

    bool public airdropComplete = false;
    bool public vestingFinished = false;

    mapping(address => uint256) public airdropAmount;
    uint256 public launchTime;
    uint256 public vestingPeriods = 30;
    uint256 public vestingPercent = 3;

    constructor(
        address router_,
        address LPTokenReceiver_,
        address marketingReceiver_
    ) ERC20("QUEST", "QUEST") Ownable(msg.sender) {

        LPTokenReceiver = LPTokenReceiver_;
        marketingReceiver = marketingReceiver_;

        router = IUniswapV2Router02(router_);

        liquidityPair = IUniswapV2Factory(
            router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromWalletLimits[LPTokenReceiver] = true;

        uint256 totalSupply = 800_000_000_000 * 1e18;
        
        buyMarketingFee = 15;
        buyLiquidityFee = 5;

        sellMarketingFee = 15;
        sellLiquidityFee = 5;

        buyTotalFees = buyMarketingFee + buyLiquidityFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[LPTokenReceiver] = true;

        maxTransactionAmount = totalSupply * 5 / 1000;
        maxWallet = totalSupply * 10 / 1000;
        swapThreshold = totalSupply / 1000;

        /*
            _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 {}

    function airdropTokens(address[] calldata holders, uint256[] calldata amounts) external onlyOwner {
        require(!airdropComplete);

        for (uint i=0; i<holders.length; i++) {
            super._transfer(address(this), holders[i], amounts[i]);
            airdropAmount[holders[i]] += amounts[i];
        }
    }

    function finalizeAirdrop() external onlyOwner {
        require(!airdropComplete);
        airdropComplete = true;
    }

    function addLiquidity(uint256 tokenAmount) external payable onlyOwner {
        _addLiquidity(tokenAmount, msg.value);
        launchTime = block.timestamp;
    }

    function setBuyFees(uint256 marketingFee, uint256 liquidityFee) external onlyOwner {
        buyMarketingFee = marketingFee;
        buyLiquidityFee = liquidityFee;

        buyTotalFees = buyMarketingFee + buyLiquidityFee;

        if (maxBuyFeeSet) {
            require(buyTotalFees <= maxBuyFee);
        }
    }

    function setSellFees(uint256 marketingFee, uint256 liquidityFee) external onlyOwner {
        sellMarketingFee = marketingFee;
        sellLiquidityFee = liquidityFee;

        sellTotalFees = sellMarketingFee + sellLiquidityFee;

        if (maxSellFeeSet) {
            require(sellTotalFees <= maxSellFee);
        }
    }

    function setLimits(uint256 maxTransactionAmount_, uint256 maxWallet_) external onlyOwner {
        maxTransactionAmount = maxTransactionAmount_;
        maxWallet = maxWallet_;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect);
        limitsInEffect = false;
    }

    function setLPTokenReceiver(address newReceiver) external onlyOwner {
        require(LPTokenReceiver != newReceiver);
        isExcludedFromFee[newReceiver] = true;
        isExcludedFromWalletLimits[newReceiver] = true;
        LPTokenReceiver = newReceiver;
    }

    function setMarketingReceiver(address newReceiver) external onlyOwner {
        require(marketingReceiver != newReceiver);
        isExcludedFromFee[newReceiver] = true;
        isExcludedFromWalletLimits[newReceiver] = true;
        marketingReceiver = newReceiver;
    }

    function setAMM(address ammAddress, bool isAMM_) external onlyOwner {
        isAMM[ammAddress] = isAMM_;
    }

    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[wallet] = isExcluded;
    }

    function setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;
    }

    function setRouter(address router_) external onlyOwner {
        router = IUniswapV2Router02(router_);
    }

    function setLiquidityPair(address pairAddress) external onlyOwner {
        liquidityPair = pairAddress;
    }

    function enableMaxSellFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxSellFee);
        maxSellFee = limit;
        maxSellFeeSet = true;
    }

    function enableMaxBuyFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxBuyFee);
        maxBuyFee = limit;
        maxBuyFeeSet = true;
    }

    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 (!vestingFinished) {            
            uint256 airdroppedTokenAmount = airdropAmount[from];

            if (airdroppedTokenAmount > 0) {
                
                uint256 elapsedPeriods = (block.timestamp - launchTime) / 86400;

                if (elapsedPeriods < vestingPeriods) {
                    uint256 minimumBalance = airdroppedTokenAmount - (
                        // a number ranging from 0 to 100
                        elapsedPeriods * vestingPercent
                        * airdroppedTokenAmount
                        / 100
                    );
                    require(balanceOf(from) - amount >= minimumBalance);
                } else {
                    vestingFinished = true;
                }
            }
        }

        bool takeFee = !swapping;

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

        if (takeFee) {

            uint256 fees = 0;

            if (isAMM[to] && sellTotalFees > 0) {
                uint256 newTokensForMarketing = amount * sellMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * sellLiquidityFee / feeDenominator;

                fees = newTokensForMarketing + newTokensForLiquidity;

                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            else if (isAMM[from] && buyTotalFees > 0) {
                uint256 newTokensForMarketing = amount * buyMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * buyLiquidityFee / feeDenominator;

                fees = newTokensForMarketing + newTokensForLiquidity;

                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

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

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !swapping
            ) {
                require(blockTransferCount[tx.origin][block.number] == 0);
                blockTransferCount[tx.origin][block.number] = 1;

                if (
                    isAMM[from] &&
                    !isExcludedFromWalletLimits[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                } else if (
                    isAMM[to] &&
                    !isExcludedFromWalletLimits[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!isExcludedFromWalletLimits[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }
            }
        }

        if (
            !swapping &&
            from != liquidityPair &&
            to == liquidityPair &&
            !isExcludedFromFee[from] &&
            !isExcludedFromFee[to] &&
            balanceOf(address(this)) >= swapThreshold
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }


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

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() internal {
        if (!airdropComplete) {
            if (tokensForLiquidity + tokensForMarketing == 0) {
                return;
            }
        } else {
            tokensForMarketing = balanceOf(address(this)) - tokensForLiquidity;
            if (tokensForLiquidity + tokensForMarketing == 0) {
                return;
            }
        }

        uint256 liquidity = tokensForLiquidity / 2;
        uint256 amountToSwapForETH = tokensForMarketing + (tokensForLiquidity - liquidity);
        swapTokensForEth(amountToSwapForETH);

        uint256 ethForLiquidity = address(this).balance * (tokensForLiquidity - liquidity) / amountToSwapForETH;

        if (liquidity > 0 && ethForLiquidity > 0) {
            _addLiquidity(liquidity, ethForLiquidity);
        }

        if (tokensForMarketing > 0) {
            marketingReceiver.call{value: address(this).balance}("");
        }

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            LPTokenReceiver,
            block.timestamp
        );
    }

    function withdrawStuckTokens(address tokenAddress, uint256 amount) external {
        require(tokenAddress != address(this));
        uint256 tokenBalance = IERC20(tokenAddress).balanceOf(address(this));
        uint256 amountToTransfer = amount == 0 ? tokenBalance : amount;
        _safeTransfer(tokenAddress, marketingReceiver, amountToTransfer);
    }

    function withdrawStuckETH() external {
        (bool success,) = marketingReceiver.call{value: address(this).balance}("");
        require(success);
    }

    function _safeTransfer(address token, address to, uint256 value) private {
        bytes4 TRANSFERSELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(TRANSFERSELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TRANSFER_FAILED');
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"LPTokenReceiver_","type":"address"},{"internalType":"address","name":"marketingReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LPTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"airdropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropComplete","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"blockTransferCount","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":"buyMarketingFee","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":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxBuyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxSellFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeAirdrop","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":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","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":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM_","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setLPTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWallet_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setMarketingReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPeriods","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526103e8601755601a805460ff19166001179055601c805461ffff19908116909155601f80549091169055601e602255600360235534801562000044575f80fd5b50604051620030a1380380620030a183398101604081905262000067916200058b565b60408051808201825260058082526414555154d560da1b602080840182905284518086019095529184529083015233916001620000a5838262000672565b505f620000b3828262000672565b505050620000c7816200043960201b60201c565b50600680546001600160a01b038085166001600160a01b031992831617909255600780548484169083161790556010805492861692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200013d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200016391906200073a565b6001600160a01b031663c9c653963060105f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e991906200073a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000234573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200025a91906200073a565b601180546001600160a01b0319166001600160a01b0392831690811782555f908152601260209081526040808320805460ff1990811660019081179092559454861684526016909252808320805485168317905560105485168352808320805485168317905530835280832080548516831790557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b5780548516831790553383528083208054851683179055600654909416825292902080549091169091179055600f600a8190556005600b819055600c829055600d8190556c0a18f07d736b90be5500000000916200034d919062000771565b600855600d54600c5462000362919062000771565b60095560156020527f7ed1dca03d96f947ab02d66053f47073699eb6287021936c92f54972932767e58054600160ff199182168117909255305f9081526040808220805484168517905533825280822080548416851790556006546001600160a01b031682529020805490911690911790556103e8620003e48260056200078d565b620003f09190620007a7565b6013556103e86200040382600a6200078d565b6200040f9190620007a7565b601455620004206103e882620007a7565b6019556200042f33826200048a565b50505050620007c7565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004e55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620004f8919062000771565b90915550506001600160a01b0382165f90815260046020526040812080548392906200052690849062000771565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b038116811462000586575f80fd5b919050565b5f805f606084860312156200059e575f80fd5b620005a9846200056f565b9250620005b9602085016200056f565b9150620005c9604085016200056f565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005fb57607f821691505b6020821081036200061a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200066d575f81815260208120601f850160051c81016020861015620006485750805b601f850160051c820191505b81811015620006695782815560010162000654565b5050505b505050565b81516001600160401b038111156200068e576200068e620005d2565b620006a6816200069f8454620005e6565b8462000620565b602080601f831160018114620006dc575f8415620006c45750858301515b5f19600386901b1c1916600185901b17855562000669565b5f85815260208120601f198616915b828110156200070c57888601518255948401946001909101908401620006eb565b50858210156200072a57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200074b575f80fd5b62000756826200056f565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200078757620007876200075d565b92915050565b80820281158282048414176200078757620007876200075d565b5f82620007c257634e487b7160e01b5f52601260045260245ffd5b500490565b6128cc80620007d55f395ff3fe608060405260043610610369575f3560e01c80638da5cb5b116101c8578063c0d78655116100fd578063e219558e1161009d578063f63743421161006d578063f6374342146109cd578063f887ea40146109e2578063f8b45b0514610a01578063fdc149ef14610a16575f80fd5b8063e219558e14610966578063f11a24d314610985578063f2fde38b1461099a578063f5648a4f146109b9575f80fd5b8063d46b6a30116100d8578063d46b6a30146108c0578063d6498bc2146108ee578063d85ba0631461090d578063dd62ed3e14610922575f80fd5b8063c0d786551461086d578063c4590d3f1461088c578063c8c8ebe4146108ab575f80fd5b8063a457c2d711610168578063a9d3cd8a11610143578063a9d3cd8a146107e6578063b2d8f20814610805578063b530dc8c14610824578063bd61f0a61461084e575f80fd5b8063a457c2d714610789578063a5949bcf146107a8578063a9059cbb146107c7575f80fd5b806395d89b41116101a357806395d89b41146107015780639d93598e146107155780639df4b65e146107345780639fd8234e1461076a575f80fd5b80638da5cb5b146106b05780638e89cf4d146106cd57806392136913146106ec575f80fd5b80634a62bb651161029e578063715018a61161023e578063790ca41311610219578063790ca413146106485780637bce5a041461065d578063808a5457146106725780638d67cffe14610691575f80fd5b8063715018a614610601578063751039fc1461061557806375b6253214610629575f80fd5b8063696635871161027957806369663587146105805780636a486a8e14610599578063706f6937146105ae57806370a08231146105cd575f80fd5b80634a62bb651461052657806351c6590a1461053f5780636940213a14610552575f80fd5b806323b872dd1161030957806332887360116102e457806332887360146104c0578063388ac95b146104d457806339509351146104f25780633aeb6c7114610511575f80fd5b806323b872dd1461044f57806323c04d9d1461046e578063313ce567146104a5575f80fd5b8063180b0d7e11610344578063180b0d7e146103ee57806318160ddd146104115780631a8145bb146104255780631f3fed8f1461043a575f80fd5b806306fdde0314610374578063095ea7b31461039e5780630e99dcad146103cd575f80fd5b3661037057005b5f80fd5b34801561037f575f80fd5b50610388610a2b565b6040516103959190612465565b60405180910390f35b3480156103a9575f80fd5b506103bd6103b83660046124ab565b610abb565b6040519015158152602001610395565b3480156103d8575f80fd5b506103ec6103e73660046124d5565b610ad1565b005b3480156103f9575f80fd5b5061040360175481565b604051908152602001610395565b34801561041c575f80fd5b50600354610403565b348015610430575f80fd5b50610403600f5481565b348015610445575f80fd5b50610403600e5481565b34801561045a575f80fd5b506103bd6104693660046124f7565b610b7a565b348015610479575f80fd5b5060065461048d906001600160a01b031681565b6040516001600160a01b039091168152602001610395565b3480156104b0575f80fd5b5060405160128152602001610395565b3480156104cb575f80fd5b506103ec610c27565b3480156104df575f80fd5b50601f546103bd90610100900460ff1681565b3480156104fd575f80fd5b506103bd61050c3660046124ab565b610c7e565b34801561051c575f80fd5b5061040360235481565b348015610531575f80fd5b50601a546103bd9060ff1681565b6103ec61054d366004612535565b610cb9565b34801561055d575f80fd5b506103bd61056c3660046124d5565b60166020525f908152604090205460ff1681565b34801561058b575f80fd5b50601f546103bd9060ff1681565b3480156105a4575f80fd5b5061040360095481565b3480156105b9575f80fd5b506103ec6105c8366004612594565b610d03565b3480156105d8575f80fd5b506104036105e73660046124d5565b6001600160a01b03165f9081526004602052604090205490565b34801561060c575f80fd5b506103ec610e2d565b348015610620575f80fd5b506103ec610e71565b348015610634575f80fd5b506103ec6106433660046124d5565b610ec4565b348015610653575f80fd5b5061040360215481565b348015610668575f80fd5b50610403600a5481565b34801561067d575f80fd5b5060115461048d906001600160a01b031681565b34801561069c575f80fd5b506103ec6106ab366004612535565b610f64565b3480156106bb575f80fd5b506005546001600160a01b031661048d565b3480156106d8575f80fd5b506103ec6106e7366004612608565b610fca565b3480156106f7575f80fd5b50610403600c5481565b34801561070c575f80fd5b5061038861102d565b348015610720575f80fd5b506103ec61072f3660046124d5565b61103b565b34801561073f575f80fd5b5061040361074e3660046124ab565b601b60209081525f928352604080842090915290825290205481565b348015610775575f80fd5b506103ec61078436600461263f565b611096565b348015610794575f80fd5b506103bd6107a33660046124ab565b611105565b3480156107b3575f80fd5b5060075461048d906001600160a01b031681565b3480156107d2575f80fd5b506103bd6107e13660046124ab565b61119d565b3480156107f1575f80fd5b506103ec610800366004612608565b6111a9565b348015610810575f80fd5b506103ec61081f36600461263f565b61120c565b34801561082f575f80fd5b5061040361083e3660046124d5565b602080525f908152604090205481565b348015610859575f80fd5b506103ec6108683660046124ab565b61127c565b348015610878575f80fd5b506103ec6108873660046124d5565b61132a565b348015610897575f80fd5b506103ec6108a636600461263f565b611385565b3480156108b6575f80fd5b5061040360135481565b3480156108cb575f80fd5b506103bd6108da3660046124d5565b60126020525f908152604090205460ff1681565b3480156108f9575f80fd5b506103ec610908366004612608565b6113c9565b348015610918575f80fd5b5061040360085481565b34801561092d575f80fd5b5061040361093c36600461265f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610971575f80fd5b506103ec610980366004612535565b61142c565b348015610990575f80fd5b50610403600b5481565b3480156109a5575f80fd5b506103ec6109b43660046124d5565b611494565b3480156109c4575f80fd5b506103ec61153e565b3480156109d8575f80fd5b50610403600d5481565b3480156109ed575f80fd5b5060105461048d906001600160a01b031681565b348015610a0c575f80fd5b5061040360145481565b348015610a21575f80fd5b5061040360225481565b606060018054610a3a9061268b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a669061268b565b8015610ab15780601f10610a8857610100808354040283529160200191610ab1565b820191905f5260205f20905b815481529060010190602001808311610a9457829003601f168201915b5050505050905090565b5f610ac733848461159a565b5060015b92915050565b33610ae46005546001600160a01b031690565b6001600160a01b031614610b135760405162461bcd60e51b8152600401610b0a906126c3565b60405180910390fd5b6006546001600160a01b03808316911603610b2c575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b5f610b868484846116bd565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610c0f5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610b0a565b610c1c853385840361159a565b506001949350505050565b33610c3a6005546001600160a01b031690565b6001600160a01b031614610c605760405162461bcd60e51b8152600401610b0a906126c3565b601f5460ff1615610c6f575f80fd5b601f805460ff19166001179055565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610ac7918590610cb490869061270c565b61159a565b33610ccc6005546001600160a01b031690565b6001600160a01b031614610cf25760405162461bcd60e51b8152600401610b0a906126c3565b610cfc8134611da1565b5042602155565b33610d166005546001600160a01b031690565b6001600160a01b031614610d3c5760405162461bcd60e51b8152600401610b0a906126c3565b601f5460ff1615610d4b575f80fd5b5f5b83811015610e2657610d9e30868684818110610d6b57610d6b61271f565b9050602002016020810190610d8091906124d5565b858585818110610d9257610d9261271f565b90506020020135611e4b565b828282818110610db057610db061271f565b9050602002013560205f878785818110610dcc57610dcc61271f565b9050602002016020810190610de191906124d5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254610e0e919061270c565b90915550819050610e1e81612733565b915050610d4d565b5050505050565b33610e406005546001600160a01b031690565b6001600160a01b031614610e665760405162461bcd60e51b8152600401610b0a906126c3565b610e6f5f61200d565b565b33610e846005546001600160a01b031690565b6001600160a01b031614610eaa5760405162461bcd60e51b8152600401610b0a906126c3565b601a5460ff16610eb8575f80fd5b601a805460ff19169055565b33610ed76005546001600160a01b031690565b6001600160a01b031614610efd5760405162461bcd60e51b8152600401610b0a906126c3565b6007546001600160a01b03808316911603610f16575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610f776005546001600160a01b031690565b6001600160a01b031614610f9d5760405162461bcd60e51b8152600401610b0a906126c3565b6017548111158015610fb05750601d5481105b610fb8575f80fd5b601d55601c805460ff19166001179055565b33610fdd6005546001600160a01b031690565b6001600160a01b0316146110035760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b60605f8054610a3a9061268b565b3361104e6005546001600160a01b031690565b6001600160a01b0316146110745760405162461bcd60e51b8152600401610b0a906126c3565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b336110a96005546001600160a01b031690565b6001600160a01b0316146110cf5760405162461bcd60e51b8152600401610b0a906126c3565b600c829055600d8190556110e3818361270c565b600955601c5460ff161561110157601d546009541115611101575f80fd5b5050565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111865760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b0a565b611193338585840361159a565b5060019392505050565b5f610ac73384846116bd565b336111bc6005546001600160a01b031690565b6001600160a01b0316146111e25760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b3361121f6005546001600160a01b031690565b6001600160a01b0316146112455760405162461bcd60e51b8152600401610b0a906126c3565b600a829055600b819055611259818361270c565b600855601c54610100900460ff161561110157601e546008541115611101575f80fd5b306001600160a01b03831603611290575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa1580156112d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f8919061274b565b90505f82156113075782611309565b815b6007549091506113249085906001600160a01b03168361205e565b50505050565b3361133d6005546001600160a01b031690565b6001600160a01b0316146113635760405162461bcd60e51b8152600401610b0a906126c3565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113986005546001600160a01b031690565b6001600160a01b0316146113be5760405162461bcd60e51b8152600401610b0a906126c3565b601391909155601455565b336113dc6005546001600160a01b031690565b6001600160a01b0316146114025760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b3361143f6005546001600160a01b031690565b6001600160a01b0316146114655760405162461bcd60e51b8152600401610b0a906126c3565b60175481111580156114785750601e5481105b611480575f80fd5b601e55601c805461ff001916610100179055565b336114a76005546001600160a01b031690565b6001600160a01b0316146114cd5760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b0381166115325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b0a565b61153b8161200d565b50565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f8114611588576040519150601f19603f3d011682016040523d82523d5f602084013e61158d565b606091505b505090508061153b575f80fd5b6001600160a01b0383166115fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b0a565b6001600160a01b03821661165d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b0a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b0a565b6001600160a01b0382166117835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b0a565b805f0361179a5761179583835f611e4b565b505050565b601f54610100900460ff1661186f576001600160a01b0383165f908152602080526040902054801561186d575f62015180602154426117d99190612762565b6117e39190612775565b905060225481101561185b575f606483602354846118019190612794565b61180b9190612794565b6118159190612775565b61181f9084612762565b90508084611841886001600160a01b03165f9081526004602052604090205490565b61184b9190612762565b1015611855575f80fd5b5061186b565b601f805461ff0019166101001790555b505b505b6018546001600160a01b0384165f9081526015602052604090205460ff918216159116806118b457506001600160a01b0383165f9081526015602052604090205460ff165b156118bc57505f5b8015611a33576001600160a01b0383165f9081526012602052604081205460ff1680156118ea57505f600954115b1561196d575f601754600c54856119019190612794565b61190b9190612775565b90505f601754600d548661191f9190612794565b6119299190612775565b9050611935818361270c565b925081600e5f828254611948919061270c565b9250508190555080600f5f828254611960919061270c565b90915550611a1392505050565b6001600160a01b0385165f9081526012602052604090205460ff16801561199557505f600854115b15611a13575f601754600a54856119ac9190612794565b6119b69190612775565b90505f601754600b54866119ca9190612794565b6119d49190612775565b90506119e0818361270c565b925081600e5f8282546119f3919061270c565b9250508190555080600f5f828254611a0b919061270c565b909155505050505b8015611a3157611a24853083611e4b565b611a2e8184612762565b92505b505b601a5460ff1615611cd3576005546001600160a01b03858116911614801590611a6a57506005546001600160a01b03848116911614155b8015611a8157506001600160a01b03831661dead14155b8015611a90575060185460ff16155b15611cd357325f908152601b6020908152604080832043845290915290205415611ab8575f80fd5b325f908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611b1057506001600160a01b0383165f9081526016602052604090205460ff16155b15611bc557601354821115611b605760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b0a565b6014546001600160a01b0384165f90815260046020526040902054611b85908461270c565b1115611bc05760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b0a565b611cd3565b6001600160a01b0383165f9081526012602052604090205460ff168015611c0457506001600160a01b0384165f9081526016602052604090205460ff16155b15611c5457601354821115611bc05760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b0a565b6001600160a01b0383165f9081526016602052604090205460ff16611cd3576014546001600160a01b0384165f90815260046020526040902054611c98908461270c565b1115611cd35760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b0a565b60185460ff16158015611cf457506011546001600160a01b03858116911614155b8015611d0d57506011546001600160a01b038481169116145b8015611d3157506001600160a01b0384165f9081526015602052604090205460ff16155b8015611d5557506001600160a01b0383165f9081526015602052604090205460ff16155b8015611d715750601954305f9081526004602052604090205410155b15611d96576018805460ff19166001179055611d8b6121b9565b6018805460ff191690555b611324848484611e4b565b601054611db99030906001600160a01b03168461159a565b60105460065460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e2691906127ab565b6001600160a01b038316611eab5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610b0a565b6001600160a01b038216611f015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610b0a565b6001600160a01b0383165f9081526004602052604090205481811015611f7d5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610b0a565b6001600160a01b038085165f90815260046020526040808220858503905591851681529081208054849290611fb390849061270c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fff91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b925f9283929088169161210b916127d6565b5f604051808303815f865af19150503d805f8114612144576040519150601f19603f3d011682016040523d82523d5f602084013e612149565b606091505b509150915081801561217357508051158061217357508080602001905181019061217391906127f1565b6121b15760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610b0a565b505050505050565b601f5460ff166121e057600e54600f546121d3919061270c565b5f036121db57565b612216565b600f54305f908152600460205260409020546121fc9190612762565b600e819055600f5461220e919061270c565b5f0361221657565b5f6002600f546122269190612775565b90505f81600f546122379190612762565b600e54612244919061270c565b905061224f816122fb565b5f8183600f5461225f9190612762565b6122699047612794565b6122739190612775565b90505f8311801561228357505f81115b15612292576122928382611da1565b600e54156122ed576007546040516001600160a01b039091169047905f81818185875af1925050503d805f81146122e4576040519150601f19603f3d011682016040523d82523d5f602084013e6122e9565b606091505b5050505b50505f600f819055600e5550565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061232e5761232e61271f565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612385573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a9919061280c565b816001815181106123bc576123bc61271f565b6001600160a01b0392831660209182029290920101526010546123e2913091168461159a565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061241a9085905f90869030904290600401612827565b5f604051808303815f87803b158015612431575f80fd5b505af11580156121b1573d5f803e3d5ffd5b5f5b8381101561245d578181015183820152602001612445565b50505f910152565b602081525f8251806020840152612483816040850160208701612443565b601f01601f19169190910160400192915050565b6001600160a01b038116811461153b575f80fd5b5f80604083850312156124bc575f80fd5b82356124c781612497565b946020939093013593505050565b5f602082840312156124e5575f80fd5b81356124f081612497565b9392505050565b5f805f60608486031215612509575f80fd5b833561251481612497565b9250602084013561252481612497565b929592945050506040919091013590565b5f60208284031215612545575f80fd5b5035919050565b5f8083601f84011261255c575f80fd5b50813567ffffffffffffffff811115612573575f80fd5b6020830191508360208260051b850101111561258d575f80fd5b9250929050565b5f805f80604085870312156125a7575f80fd5b843567ffffffffffffffff808211156125be575f80fd5b6125ca8883890161254c565b909650945060208701359150808211156125e2575f80fd5b506125ef8782880161254c565b95989497509550505050565b801515811461153b575f80fd5b5f8060408385031215612619575f80fd5b823561262481612497565b91506020830135612634816125fb565b809150509250929050565b5f8060408385031215612650575f80fd5b50508035926020909101359150565b5f8060408385031215612670575f80fd5b823561267b81612497565b9150602083013561263481612497565b600181811c9082168061269f57607f821691505b6020821081036126bd57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610acb57610acb6126f8565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612744576127446126f8565b5060010190565b5f6020828403121561275b575f80fd5b5051919050565b81810381811115610acb57610acb6126f8565b5f8261278f57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610acb57610acb6126f8565b5f805f606084860312156127bd575f80fd5b8351925060208401519150604084015190509250925092565b5f82516127e7818460208701612443565b9190910192915050565b5f60208284031215612801575f80fd5b81516124f0816125fb565b5f6020828403121561281c575f80fd5b81516124f081612497565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156128755784516001600160a01b031683529383019391830191600101612850565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201e2f6a1afa004cef4536e6b0d11d5c0bd35cbb5701d9352a8abe5911b96d4a4064736f6c634300081500330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000e3614c61680345725412dd0b983636468bc33dbb000000000000000000000000e3614c61680345725412dd0b983636468bc33dbb

Deployed Bytecode

0x608060405260043610610369575f3560e01c80638da5cb5b116101c8578063c0d78655116100fd578063e219558e1161009d578063f63743421161006d578063f6374342146109cd578063f887ea40146109e2578063f8b45b0514610a01578063fdc149ef14610a16575f80fd5b8063e219558e14610966578063f11a24d314610985578063f2fde38b1461099a578063f5648a4f146109b9575f80fd5b8063d46b6a30116100d8578063d46b6a30146108c0578063d6498bc2146108ee578063d85ba0631461090d578063dd62ed3e14610922575f80fd5b8063c0d786551461086d578063c4590d3f1461088c578063c8c8ebe4146108ab575f80fd5b8063a457c2d711610168578063a9d3cd8a11610143578063a9d3cd8a146107e6578063b2d8f20814610805578063b530dc8c14610824578063bd61f0a61461084e575f80fd5b8063a457c2d714610789578063a5949bcf146107a8578063a9059cbb146107c7575f80fd5b806395d89b41116101a357806395d89b41146107015780639d93598e146107155780639df4b65e146107345780639fd8234e1461076a575f80fd5b80638da5cb5b146106b05780638e89cf4d146106cd57806392136913146106ec575f80fd5b80634a62bb651161029e578063715018a61161023e578063790ca41311610219578063790ca413146106485780637bce5a041461065d578063808a5457146106725780638d67cffe14610691575f80fd5b8063715018a614610601578063751039fc1461061557806375b6253214610629575f80fd5b8063696635871161027957806369663587146105805780636a486a8e14610599578063706f6937146105ae57806370a08231146105cd575f80fd5b80634a62bb651461052657806351c6590a1461053f5780636940213a14610552575f80fd5b806323b872dd1161030957806332887360116102e457806332887360146104c0578063388ac95b146104d457806339509351146104f25780633aeb6c7114610511575f80fd5b806323b872dd1461044f57806323c04d9d1461046e578063313ce567146104a5575f80fd5b8063180b0d7e11610344578063180b0d7e146103ee57806318160ddd146104115780631a8145bb146104255780631f3fed8f1461043a575f80fd5b806306fdde0314610374578063095ea7b31461039e5780630e99dcad146103cd575f80fd5b3661037057005b5f80fd5b34801561037f575f80fd5b50610388610a2b565b6040516103959190612465565b60405180910390f35b3480156103a9575f80fd5b506103bd6103b83660046124ab565b610abb565b6040519015158152602001610395565b3480156103d8575f80fd5b506103ec6103e73660046124d5565b610ad1565b005b3480156103f9575f80fd5b5061040360175481565b604051908152602001610395565b34801561041c575f80fd5b50600354610403565b348015610430575f80fd5b50610403600f5481565b348015610445575f80fd5b50610403600e5481565b34801561045a575f80fd5b506103bd6104693660046124f7565b610b7a565b348015610479575f80fd5b5060065461048d906001600160a01b031681565b6040516001600160a01b039091168152602001610395565b3480156104b0575f80fd5b5060405160128152602001610395565b3480156104cb575f80fd5b506103ec610c27565b3480156104df575f80fd5b50601f546103bd90610100900460ff1681565b3480156104fd575f80fd5b506103bd61050c3660046124ab565b610c7e565b34801561051c575f80fd5b5061040360235481565b348015610531575f80fd5b50601a546103bd9060ff1681565b6103ec61054d366004612535565b610cb9565b34801561055d575f80fd5b506103bd61056c3660046124d5565b60166020525f908152604090205460ff1681565b34801561058b575f80fd5b50601f546103bd9060ff1681565b3480156105a4575f80fd5b5061040360095481565b3480156105b9575f80fd5b506103ec6105c8366004612594565b610d03565b3480156105d8575f80fd5b506104036105e73660046124d5565b6001600160a01b03165f9081526004602052604090205490565b34801561060c575f80fd5b506103ec610e2d565b348015610620575f80fd5b506103ec610e71565b348015610634575f80fd5b506103ec6106433660046124d5565b610ec4565b348015610653575f80fd5b5061040360215481565b348015610668575f80fd5b50610403600a5481565b34801561067d575f80fd5b5060115461048d906001600160a01b031681565b34801561069c575f80fd5b506103ec6106ab366004612535565b610f64565b3480156106bb575f80fd5b506005546001600160a01b031661048d565b3480156106d8575f80fd5b506103ec6106e7366004612608565b610fca565b3480156106f7575f80fd5b50610403600c5481565b34801561070c575f80fd5b5061038861102d565b348015610720575f80fd5b506103ec61072f3660046124d5565b61103b565b34801561073f575f80fd5b5061040361074e3660046124ab565b601b60209081525f928352604080842090915290825290205481565b348015610775575f80fd5b506103ec61078436600461263f565b611096565b348015610794575f80fd5b506103bd6107a33660046124ab565b611105565b3480156107b3575f80fd5b5060075461048d906001600160a01b031681565b3480156107d2575f80fd5b506103bd6107e13660046124ab565b61119d565b3480156107f1575f80fd5b506103ec610800366004612608565b6111a9565b348015610810575f80fd5b506103ec61081f36600461263f565b61120c565b34801561082f575f80fd5b5061040361083e3660046124d5565b602080525f908152604090205481565b348015610859575f80fd5b506103ec6108683660046124ab565b61127c565b348015610878575f80fd5b506103ec6108873660046124d5565b61132a565b348015610897575f80fd5b506103ec6108a636600461263f565b611385565b3480156108b6575f80fd5b5061040360135481565b3480156108cb575f80fd5b506103bd6108da3660046124d5565b60126020525f908152604090205460ff1681565b3480156108f9575f80fd5b506103ec610908366004612608565b6113c9565b348015610918575f80fd5b5061040360085481565b34801561092d575f80fd5b5061040361093c36600461265f565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610971575f80fd5b506103ec610980366004612535565b61142c565b348015610990575f80fd5b50610403600b5481565b3480156109a5575f80fd5b506103ec6109b43660046124d5565b611494565b3480156109c4575f80fd5b506103ec61153e565b3480156109d8575f80fd5b50610403600d5481565b3480156109ed575f80fd5b5060105461048d906001600160a01b031681565b348015610a0c575f80fd5b5061040360145481565b348015610a21575f80fd5b5061040360225481565b606060018054610a3a9061268b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a669061268b565b8015610ab15780601f10610a8857610100808354040283529160200191610ab1565b820191905f5260205f20905b815481529060010190602001808311610a9457829003601f168201915b5050505050905090565b5f610ac733848461159a565b5060015b92915050565b33610ae46005546001600160a01b031690565b6001600160a01b031614610b135760405162461bcd60e51b8152600401610b0a906126c3565b60405180910390fd5b6006546001600160a01b03808316911603610b2c575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600680546001600160a01b0319169091179055565b5f610b868484846116bd565b6001600160a01b0384165f90815260026020908152604080832033845290915290205482811015610c0f5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610b0a565b610c1c853385840361159a565b506001949350505050565b33610c3a6005546001600160a01b031690565b6001600160a01b031614610c605760405162461bcd60e51b8152600401610b0a906126c3565b601f5460ff1615610c6f575f80fd5b601f805460ff19166001179055565b335f8181526002602090815260408083206001600160a01b03871684529091528120549091610ac7918590610cb490869061270c565b61159a565b33610ccc6005546001600160a01b031690565b6001600160a01b031614610cf25760405162461bcd60e51b8152600401610b0a906126c3565b610cfc8134611da1565b5042602155565b33610d166005546001600160a01b031690565b6001600160a01b031614610d3c5760405162461bcd60e51b8152600401610b0a906126c3565b601f5460ff1615610d4b575f80fd5b5f5b83811015610e2657610d9e30868684818110610d6b57610d6b61271f565b9050602002016020810190610d8091906124d5565b858585818110610d9257610d9261271f565b90506020020135611e4b565b828282818110610db057610db061271f565b9050602002013560205f878785818110610dcc57610dcc61271f565b9050602002016020810190610de191906124d5565b6001600160a01b03166001600160a01b031681526020019081526020015f205f828254610e0e919061270c565b90915550819050610e1e81612733565b915050610d4d565b5050505050565b33610e406005546001600160a01b031690565b6001600160a01b031614610e665760405162461bcd60e51b8152600401610b0a906126c3565b610e6f5f61200d565b565b33610e846005546001600160a01b031690565b6001600160a01b031614610eaa5760405162461bcd60e51b8152600401610b0a906126c3565b601a5460ff16610eb8575f80fd5b601a805460ff19169055565b33610ed76005546001600160a01b031690565b6001600160a01b031614610efd5760405162461bcd60e51b8152600401610b0a906126c3565b6007546001600160a01b03808316911603610f16575f80fd5b6001600160a01b03165f8181526015602090815260408083208054600160ff1991821681179092556016909352922080549091169091179055600780546001600160a01b0319169091179055565b33610f776005546001600160a01b031690565b6001600160a01b031614610f9d5760405162461bcd60e51b8152600401610b0a906126c3565b6017548111158015610fb05750601d5481105b610fb8575f80fd5b601d55601c805460ff19166001179055565b33610fdd6005546001600160a01b031690565b6001600160a01b0316146110035760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b03919091165f908152601560205260409020805460ff1916911515919091179055565b60605f8054610a3a9061268b565b3361104e6005546001600160a01b031690565b6001600160a01b0316146110745760405162461bcd60e51b8152600401610b0a906126c3565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b336110a96005546001600160a01b031690565b6001600160a01b0316146110cf5760405162461bcd60e51b8152600401610b0a906126c3565b600c829055600d8190556110e3818361270c565b600955601c5460ff161561110157601d546009541115611101575f80fd5b5050565b335f9081526002602090815260408083206001600160a01b0386168452909152812054828110156111865760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b0a565b611193338585840361159a565b5060019392505050565b5f610ac73384846116bd565b336111bc6005546001600160a01b031690565b6001600160a01b0316146111e25760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b3361121f6005546001600160a01b031690565b6001600160a01b0316146112455760405162461bcd60e51b8152600401610b0a906126c3565b600a829055600b819055611259818361270c565b600855601c54610100900460ff161561110157601e546008541115611101575f80fd5b306001600160a01b03831603611290575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa1580156112d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f8919061274b565b90505f82156113075782611309565b815b6007549091506113249085906001600160a01b03168361205e565b50505050565b3361133d6005546001600160a01b031690565b6001600160a01b0316146113635760405162461bcd60e51b8152600401610b0a906126c3565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b336113986005546001600160a01b031690565b6001600160a01b0316146113be5760405162461bcd60e51b8152600401610b0a906126c3565b601391909155601455565b336113dc6005546001600160a01b031690565b6001600160a01b0316146114025760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b03919091165f908152601660205260409020805460ff1916911515919091179055565b3361143f6005546001600160a01b031690565b6001600160a01b0316146114655760405162461bcd60e51b8152600401610b0a906126c3565b60175481111580156114785750601e5481105b611480575f80fd5b601e55601c805461ff001916610100179055565b336114a76005546001600160a01b031690565b6001600160a01b0316146114cd5760405162461bcd60e51b8152600401610b0a906126c3565b6001600160a01b0381166115325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b0a565b61153b8161200d565b50565b6007546040515f916001600160a01b03169047908381818185875af1925050503d805f8114611588576040519150601f19603f3d011682016040523d82523d5f602084013e61158d565b606091505b505090508061153b575f80fd5b6001600160a01b0383166115fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b0a565b6001600160a01b03821661165d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b0a565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166117215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b0a565b6001600160a01b0382166117835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b0a565b805f0361179a5761179583835f611e4b565b505050565b601f54610100900460ff1661186f576001600160a01b0383165f908152602080526040902054801561186d575f62015180602154426117d99190612762565b6117e39190612775565b905060225481101561185b575f606483602354846118019190612794565b61180b9190612794565b6118159190612775565b61181f9084612762565b90508084611841886001600160a01b03165f9081526004602052604090205490565b61184b9190612762565b1015611855575f80fd5b5061186b565b601f805461ff0019166101001790555b505b505b6018546001600160a01b0384165f9081526015602052604090205460ff918216159116806118b457506001600160a01b0383165f9081526015602052604090205460ff165b156118bc57505f5b8015611a33576001600160a01b0383165f9081526012602052604081205460ff1680156118ea57505f600954115b1561196d575f601754600c54856119019190612794565b61190b9190612775565b90505f601754600d548661191f9190612794565b6119299190612775565b9050611935818361270c565b925081600e5f828254611948919061270c565b9250508190555080600f5f828254611960919061270c565b90915550611a1392505050565b6001600160a01b0385165f9081526012602052604090205460ff16801561199557505f600854115b15611a13575f601754600a54856119ac9190612794565b6119b69190612775565b90505f601754600b54866119ca9190612794565b6119d49190612775565b90506119e0818361270c565b925081600e5f8282546119f3919061270c565b9250508190555080600f5f828254611a0b919061270c565b909155505050505b8015611a3157611a24853083611e4b565b611a2e8184612762565b92505b505b601a5460ff1615611cd3576005546001600160a01b03858116911614801590611a6a57506005546001600160a01b03848116911614155b8015611a8157506001600160a01b03831661dead14155b8015611a90575060185460ff16155b15611cd357325f908152601b6020908152604080832043845290915290205415611ab8575f80fd5b325f908152601b602090815260408083204384528252808320600190556001600160a01b0387168352601290915290205460ff168015611b1057506001600160a01b0383165f9081526016602052604090205460ff16155b15611bc557601354821115611b605760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b0a565b6014546001600160a01b0384165f90815260046020526040902054611b85908461270c565b1115611bc05760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b0a565b611cd3565b6001600160a01b0383165f9081526012602052604090205460ff168015611c0457506001600160a01b0384165f9081526016602052604090205460ff16155b15611c5457601354821115611bc05760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610b0a565b6001600160a01b0383165f9081526016602052604090205460ff16611cd3576014546001600160a01b0384165f90815260046020526040902054611c98908461270c565b1115611cd35760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610b0a565b60185460ff16158015611cf457506011546001600160a01b03858116911614155b8015611d0d57506011546001600160a01b038481169116145b8015611d3157506001600160a01b0384165f9081526015602052604090205460ff16155b8015611d5557506001600160a01b0383165f9081526015602052604090205460ff16155b8015611d715750601954305f9081526004602052604090205410155b15611d96576018805460ff19166001179055611d8b6121b9565b6018805460ff191690555b611324848484611e4b565b601054611db99030906001600160a01b03168461159a565b60105460065460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611e26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e2691906127ab565b6001600160a01b038316611eab5760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610b0a565b6001600160a01b038216611f015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610b0a565b6001600160a01b0383165f9081526004602052604090205481811015611f7d5760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610b0a565b6001600160a01b038085165f90815260046020526040808220858503905591851681529081208054849290611fb390849061270c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fff91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291517fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b925f9283929088169161210b916127d6565b5f604051808303815f865af19150503d805f8114612144576040519150601f19603f3d011682016040523d82523d5f602084013e612149565b606091505b509150915081801561217357508051158061217357508080602001905181019061217391906127f1565b6121b15760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610b0a565b505050505050565b601f5460ff166121e057600e54600f546121d3919061270c565b5f036121db57565b612216565b600f54305f908152600460205260409020546121fc9190612762565b600e819055600f5461220e919061270c565b5f0361221657565b5f6002600f546122269190612775565b90505f81600f546122379190612762565b600e54612244919061270c565b905061224f816122fb565b5f8183600f5461225f9190612762565b6122699047612794565b6122739190612775565b90505f8311801561228357505f81115b15612292576122928382611da1565b600e54156122ed576007546040516001600160a01b039091169047905f81818185875af1925050503d805f81146122e4576040519150601f19603f3d011682016040523d82523d5f602084013e6122e9565b606091505b5050505b50505f600f819055600e5550565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061232e5761232e61271f565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612385573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123a9919061280c565b816001815181106123bc576123bc61271f565b6001600160a01b0392831660209182029290920101526010546123e2913091168461159a565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061241a9085905f90869030904290600401612827565b5f604051808303815f87803b158015612431575f80fd5b505af11580156121b1573d5f803e3d5ffd5b5f5b8381101561245d578181015183820152602001612445565b50505f910152565b602081525f8251806020840152612483816040850160208701612443565b601f01601f19169190910160400192915050565b6001600160a01b038116811461153b575f80fd5b5f80604083850312156124bc575f80fd5b82356124c781612497565b946020939093013593505050565b5f602082840312156124e5575f80fd5b81356124f081612497565b9392505050565b5f805f60608486031215612509575f80fd5b833561251481612497565b9250602084013561252481612497565b929592945050506040919091013590565b5f60208284031215612545575f80fd5b5035919050565b5f8083601f84011261255c575f80fd5b50813567ffffffffffffffff811115612573575f80fd5b6020830191508360208260051b850101111561258d575f80fd5b9250929050565b5f805f80604085870312156125a7575f80fd5b843567ffffffffffffffff808211156125be575f80fd5b6125ca8883890161254c565b909650945060208701359150808211156125e2575f80fd5b506125ef8782880161254c565b95989497509550505050565b801515811461153b575f80fd5b5f8060408385031215612619575f80fd5b823561262481612497565b91506020830135612634816125fb565b809150509250929050565b5f8060408385031215612650575f80fd5b50508035926020909101359150565b5f8060408385031215612670575f80fd5b823561267b81612497565b9150602083013561263481612497565b600181811c9082168061269f57607f821691505b6020821081036126bd57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610acb57610acb6126f8565b634e487b7160e01b5f52603260045260245ffd5b5f60018201612744576127446126f8565b5060010190565b5f6020828403121561275b575f80fd5b5051919050565b81810381811115610acb57610acb6126f8565b5f8261278f57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610acb57610acb6126f8565b5f805f606084860312156127bd575f80fd5b8351925060208401519150604084015190509250925092565b5f82516127e7818460208701612443565b9190910192915050565b5f60208284031215612801575f80fd5b81516124f0816125fb565b5f6020828403121561281c575f80fd5b81516124f081612497565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156128755784516001600160a01b031683529383019391830191600101612850565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201e2f6a1afa004cef4536e6b0d11d5c0bd35cbb5701d9352a8abe5911b96d4a4064736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000e3614c61680345725412dd0b983636468bc33dbb000000000000000000000000e3614c61680345725412dd0b983636468bc33dbb

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : LPTokenReceiver_ (address): 0xe3614C61680345725412Dd0B983636468bc33DbB
Arg [2] : marketingReceiver_ (address): 0xe3614C61680345725412Dd0B983636468bc33DbB

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000e3614c61680345725412dd0b983636468bc33dbb
Arg [2] : 000000000000000000000000e3614c61680345725412dd0b983636468bc33dbb


Deployed Bytecode Sourcemap

6820:13677:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5264:167;;;;;;;;;;-1:-1:-1;5264:167:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;5264:167:0;1126:187:1;11871:271:0;;;;;;;;;;-1:-1:-1;11871:271:0;;;;;:::i;:::-;;:::i;:::-;;7572:36;;;;;;;;;;;;;;;;;;;1716:25:1;;;1704:2;1689:18;7572:36:0;1570:177:1;3315:108:0;;;;;;;;;;-1:-1:-1;3403:12:0;;3315:108;;7209:33;;;;;;;;;;;;;;;;7169;;;;;;;;;;;;;;;;2474:493;;;;;;;;;;-1:-1:-1;2474:493:0;;;;;:::i;:::-;;:::i;6866:30::-;;;;;;;;;;-1:-1:-1;6866:30:0;;;;-1:-1:-1;;;;;6866:30:0;;;;;;-1:-1:-1;;;;;2377:32:1;;;2359:51;;2347:2;2332:18;6866:30:0;2213:203:1;3539:93:0;;;;;;;;;;-1:-1:-1;3539:93:0;;3622:2;2563:36:1;;2551:2;2536:18;3539:93:0;2421:184:1;10573:123:0;;;;;;;;;;;;;:::i;8229:35::-;;;;;;;;;;-1:-1:-1;8229:35:0;;;;;;;;;;;4649:211;;;;;;;;;;-1:-1:-1;4649:211:0;;;;;:::i;:::-;;:::i;8401:33::-;;;;;;;;;;;;;;;;7677;;;;;;;;;;-1:-1:-1;7677:33:0;;;;;;;;10704:165;;;;;;:::i;:::-;;:::i;7505:58::-;;;;;;;;;;-1:-1:-1;7505:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8187:35;;;;;;;;;;-1:-1:-1;8187:35:0;;;;;;;;6978:28;;;;;;;;;;;;;;;;10238:327;;;;;;;;;;-1:-1:-1;10238:327:0;;;;;:::i;:::-;;:::i;5856:127::-;;;;;;;;;;-1:-1:-1;5856:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5957:18:0;5930:7;5957:18;;;:9;:18;;;;;;;5856:127;1059:103;;;;;;;;;;;;;:::i;11745:118::-;;;;;;;;;;;;;:::i;12150:277::-;;;;;;;;;;-1:-1:-1;12150:277:0;;;;;:::i;:::-;;:::i;8328:25::-;;;;;;;;;;;;;;;;7015:30;;;;;;;;;;;;;;;;7290:28;;;;;;;;;;-1:-1:-1;7290:28:0;;;;-1:-1:-1;;;;;7290:28:0;;;13109:198;;;;;;;;;;-1:-1:-1;13109:198:0;;;;;:::i;:::-;;:::i;430:87::-;;;;;;;;;;-1:-1:-1;503:6:0;;-1:-1:-1;;;;;503:6:0;430:87;;12719:144;;;;;;;;;;-1:-1:-1;12719:144:0;;;;;:::i;:::-;;:::i;7091:31::-;;;;;;;;;;;;;;;;5152:104;;;;;;;;;;;;;:::i;12989:112::-;;;;;;;;;;-1:-1:-1;12989:112:0;;;;;:::i;:::-;;:::i;7805:73::-;;;;;;;;;;-1:-1:-1;7805:73:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;11210:334;;;;;;;;;;-1:-1:-1;11210:334:0;;;;;:::i;:::-;;:::i;5439:409::-;;;;;;;;;;-1:-1:-1;5439:409:0;;;;;:::i;:::-;;:::i;6903:32::-;;;;;;;;;;-1:-1:-1;6903:32:0;;;;-1:-1:-1;;;;;6903:32:0;;;2975:173;;;;;;;;;;-1:-1:-1;2975:173:0;;;;;:::i;:::-;;:::i;12435:113::-;;;;;;;;;;-1:-1:-1;12435:113:0;;;;;:::i;:::-;;:::i;10877:325::-;;;;;;;;;;-1:-1:-1;10877:325:0;;;;;:::i;:::-;;:::i;8273:48::-;;;;;;;;;;-1:-1:-1;8273:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;19580:360;;;;;;;;;;-1:-1:-1;19580:360:0;;;;;:::i;:::-;;:::i;12871:110::-;;;;;;;;;;-1:-1:-1;12871:110:0;;;;;:::i;:::-;;:::i;11552:185::-;;;;;;;;;;-1:-1:-1;11552:185:0;;;;;:::i;:::-;;:::i;7373:35::-;;;;;;;;;;;;;;;;7327:37;;;;;;;;;;-1:-1:-1;7327:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12556:155;;;;;;;;;;-1:-1:-1;12556:155:0;;;;;:::i;:::-;;:::i;6944:27::-;;;;;;;;;;;;;;;;3156:151;;;;;;;;;;-1:-1:-1;3156:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3272:18:0;;;3245:7;3272:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3156:151;13315:194;;;;;;;;;;-1:-1:-1;13315:194:0;;;;;:::i;:::-;;:::i;7052:30::-;;;;;;;;;;;;;;;;724:201;;;;;;;;;;-1:-1:-1;724:201:0;;;;;:::i;:::-;;:::i;19948:157::-;;;;;;;;;;;;;:::i;7129:31::-;;;;;;;;;;;;;;;;7251:32;;;;;;;;;;-1:-1:-1;7251:32:0;;;;-1:-1:-1;;;;;7251:32:0;;;7415:24;;;;;;;;;;;;;;;;8360:34;;;;;;;;;;;;;;;;3431:100;3485:13;3518:5;3511:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:100;:::o;5264:167::-;5347:4;5364:37;5373:10;5385:7;5394:6;5364:8;:37::i;:::-;-1:-1:-1;5419:4:0;5264:167;;;;;:::o;11871:271::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;;;;;;;;;11958:15:::1;::::0;-1:-1:-1;;;;;11958:30:0;;::::1;:15:::0;::::1;:30:::0;11950:39:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12000:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12033:4:::1;-1:-1:-1::0;;12000:37:0;;::::1;::::0;::::1;::::0;;;12048:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12105:15:::1;:29:::0;;-1:-1:-1;;;;;;12105:29:0::1;::::0;;::::1;::::0;;11871:271::o;2474:493::-;2614:4;2631:36;2641:6;2649:9;2660:6;2631:9;:36::i;:::-;-1:-1:-1;;;;;2707:19:0;;2680:24;2707:19;;;:11;:19;;;;;;;;2727:10;2707:31;;;;;;;;2757:26;;;;2749:84;;;;-1:-1:-1;;;2749:84:0;;6283:2:1;2749:84:0;;;6265:21:1;6322:2;6302:18;;;6295:30;6361:34;6341:18;;;6334:62;-1:-1:-1;;;6412:18:1;;;6405:43;6465:19;;2749:84:0;6081:409:1;2749:84:0;2869:55;2878:6;2886:10;2917:6;2898:16;:25;2869:8;:55::i;:::-;-1:-1:-1;2955:4:0;;2474:493;-1:-1:-1;;;;2474:493:0:o;10573:123::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;10639:15:::1;::::0;::::1;;10638:16;10630:25;;;::::0;::::1;;10666:15;:22:::0;;-1:-1:-1;;10666:22:0::1;10684:4;10666:22;::::0;;10573:123::o;4649:211::-;4763:10;4737:4;4784:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4784:32:0;;;;;;;;;;4737:4;;4754:76;;4775:7;;4784:45;;4819:10;;4784:45;:::i;:::-;4754:8;:76::i;10704:165::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;10785:37:::1;10799:11;10812:9;10785:13;:37::i;:::-;-1:-1:-1::0;10846:15:0::1;10833:10;:28:::0;10704:165::o;10238:327::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;10356:15:::1;::::0;::::1;;10355:16;10347:25;;;::::0;::::1;;10390:6;10385:173;10400:16:::0;;::::1;10385:173;;;10438:54;10462:4;10469:7;;10477:1;10469:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10481:7;;10489:1;10481:10;;;;;;;:::i;:::-;;;;;;;10438:15;:54::i;:::-;10536:7;;10544:1;10536:10;;;;;;;:::i;:::-;;;;;;;10507:13;:25;10521:7;;10529:1;10521:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10507:25:0::1;-1:-1:-1::0;;;;;10507:25:0::1;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;10418:3:0;;-1:-1:-1;10418:3:0::1;::::0;::::1;:::i;:::-;;;;10385:173;;;;10238:327:::0;;;;:::o;1059:103::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;1124:30:::1;1151:1;1124:18;:30::i;:::-;1059:103::o:0;11745:118::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;11807:14:::1;::::0;::::1;;11799:23;;;::::0;::::1;;11833:14;:22:::0;;-1:-1:-1;;11833:22:0::1;::::0;;11745:118::o;12150:277::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;12239:17:::1;::::0;-1:-1:-1;;;;;12239:32:0;;::::1;:17:::0;::::1;:32:::0;12231:41:::1;;;::::0;::::1;;-1:-1:-1::0;;;;;12283:30:0::1;;::::0;;;:17:::1;:30;::::0;;;;;;;:37;;12316:4:::1;-1:-1:-1::0;;12283:37:0;;::::1;::::0;::::1;::::0;;;12331:26:::1;:39:::0;;;;;:46;;;;::::1;::::0;;::::1;::::0;;12388:17:::1;:31:::0;;-1:-1:-1;;;;;;12388:31:0::1;::::0;;::::1;::::0;;12150:277::o;13109:198::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;13202:14:::1;;13193:5;:23;;:45;;;;;13228:10;;13220:5;:18;13193:45;13185:54;;;::::0;::::1;;13250:10;:18:::0;13279:13:::1;:20:::0;;-1:-1:-1;;13279:20:0::1;13295:4;13279:20;::::0;;13109:198::o;12719:144::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12817:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:38;;-1:-1:-1;;12817:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12719:144::o;5152:104::-;5208:13;5241:7;5234:14;;;;;:::i;12989:112::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;13066:13:::1;:27:::0;;-1:-1:-1;;;;;;13066:27:0::1;-1:-1:-1::0;;;;;13066:27:0;;;::::1;::::0;;;::::1;::::0;;12989:112::o;11210:334::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;11305:16:::1;:31:::0;;;11347:16:::1;:31:::0;;;11407:35:::1;11366:12:::0;11324;11407:35:::1;:::i;:::-;11391:13;:51:::0;11459:13:::1;::::0;::::1;;11455:82;;;11514:10;;11497:13;;:27;;11489:36;;;::::0;::::1;;11210:334:::0;;:::o;5439:409::-;5588:10;5532:4;5576:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5576:32:0;;;;;;;;;;5627:35;;;;5619:85;;;;-1:-1:-1;;;5619:85:0;;7231:2:1;5619:85:0;;;7213:21:1;7270:2;7250:18;;;7243:30;7309:34;7289:18;;;7282:62;-1:-1:-1;;;7360:18:1;;;7353:35;7405:19;;5619:85:0;7029:401:1;5619:85:0;5740:65;5749:10;5761:7;5789:15;5770:16;:34;5740:8;:65::i;:::-;-1:-1:-1;5836:4:0;;5439:409;-1:-1:-1;;;5439:409:0:o;2975:173::-;3061:4;3078:40;3088:10;3100:9;3111:6;3078:9;:40::i;12435:113::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12514:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;12514:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12435:113::o;10877:325::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;10971:15:::1;:30:::0;;;11012:15:::1;:30:::0;;;11070:33:::1;11030:12:::0;10989;11070:33:::1;:::i;:::-;11055:12;:48:::0;11120:12:::1;::::0;::::1;::::0;::::1;;;11116:79;;;11173:9;;11157:12;;:25;;11149:34;;;::::0;::::1;19580:360:::0;19699:4;-1:-1:-1;;;;;19675:29:0;;;19667:38;;;;;;19739:45;;-1:-1:-1;;;19739:45:0;;19778:4;19739:45;;;2359:51:1;19716:20:0;;-1:-1:-1;;;;;19739:30:0;;;;;2332:18:1;;19739:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19716:68;-1:-1:-1;19795:24:0;19822:11;;:35;;19851:6;19822:35;;;19836:12;19822:35;19896:17;;19795:62;;-1:-1:-1;19868:64:0;;19882:12;;-1:-1:-1;;;;;19896:17:0;19795:62;19868:13;:64::i;:::-;19656:284;;19580:360;;:::o;12871:110::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;12937:6:::1;:36:::0;;-1:-1:-1;;;;;;12937:36:0::1;-1:-1:-1::0;;;;;12937:36:0;;;::::1;::::0;;;::::1;::::0;;12871:110::o;11552:185::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;11652:20:::1;:44:::0;;;;11707:9:::1;:22:::0;11552:185::o;12556:155::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12656:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:47;;-1:-1:-1;;12656:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12556:155::o;13315:194::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;13407:14:::1;;13398:5;:23;;:44;;;;;13433:9;;13425:5;:17;13398:44;13390:53;;;::::0;::::1;;13454:9;:17:::0;13482:12:::1;:19:::0;;-1:-1:-1;;13482:19:0::1;;;::::0;;13315:194::o;724:201::-;984:10;973:7;503:6;;-1:-1:-1;;;;;503:6:0;;430:87;973:7;-1:-1:-1;;;;;973:21:0;;965:66;;;;-1:-1:-1;;;965:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;813:22:0;::::1;805:73;;;::::0;-1:-1:-1;;;805:73:0;;7826:2:1;805:73:0::1;::::0;::::1;7808:21:1::0;7865:2;7845:18;;;7838:30;7904:34;7884:18;;;7877:62;-1:-1:-1;;;7955:18:1;;;7948:36;8001:19;;805:73:0::1;7624:402:1::0;805:73:0::1;889:28;908:8;889:18;:28::i;:::-;724:201:::0;:::o;19948:157::-;20014:17;;:56;;19997:12;;-1:-1:-1;;;;;20014:17:0;;20044:21;;19997:12;20014:56;19997:12;20014:56;20044:21;20014:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19996:74;;;20089:7;20081:16;;;;;4261:380;-1:-1:-1;;;;;4397:19:0;;4389:68;;;;-1:-1:-1;;;4389:68:0;;8443:2:1;4389:68:0;;;8425:21:1;8482:2;8462:18;;;8455:30;8521:34;8501:18;;;8494:62;-1:-1:-1;;;8572:18:1;;;8565:34;8616:19;;4389:68:0;8241:400:1;4389:68:0;-1:-1:-1;;;;;4476:21:0;;4468:68;;;;-1:-1:-1;;;4468:68:0;;8848:2:1;4468:68:0;;;8830:21:1;8887:2;8867:18;;;8860:30;8926:34;8906:18;;;8899:62;-1:-1:-1;;;8977:18:1;;;8970:32;9019:19;;4468:68:0;8646:398:1;4468:68:0;-1:-1:-1;;;;;4549:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;4601:32;;1716:25:1;;;4601:32:0;;1689:18:1;4601:32:0;;;;;;;4261:380;;;:::o;13517:4219::-;-1:-1:-1;;;;;13649:18:0;;13641:68;;;;-1:-1:-1;;;13641:68:0;;9251:2:1;13641:68:0;;;9233:21:1;9290:2;9270:18;;;9263:30;9329:34;9309:18;;;9302:62;-1:-1:-1;;;9380:18:1;;;9373:35;9425:19;;13641:68:0;9049:401:1;13641:68:0;-1:-1:-1;;;;;13728:16:0;;13720:64;;;;-1:-1:-1;;;13720:64:0;;9657:2:1;13720:64:0;;;9639:21:1;9696:2;9676:18;;;9669:30;9735:34;9715:18;;;9708:62;-1:-1:-1;;;9786:18:1;;;9779:33;9829:19;;13720:64:0;9455:399:1;13720:64:0;13801:6;13811:1;13801:11;13797:93;;13829:28;13845:4;13851:2;13855:1;13829:15;:28::i;:::-;13517:4219;;;:::o;13797:93::-;13907:15;;;;;;;13902:789;;-1:-1:-1;;;;;13983:19:0;;13951:29;13983:19;;;:13;:19;;;;;;14023:25;;14019:661;;14087:22;14145:5;14131:10;;14113:15;:28;;;;:::i;:::-;14112:38;;;;:::i;:::-;14087:63;;14192:14;;14175;:31;14171:494;;;14231:22;14474:3;14425:21;14383:14;;14366;:31;;;;:::i;:::-;:80;;;;:::i;:::-;:111;;;;:::i;:::-;14256:244;;:21;:244;:::i;:::-;14231:269;;14559:14;14549:6;14531:15;14541:4;-1:-1:-1;;;;;5957:18:0;5930:7;5957:18;;;:9;:18;;;;;;;5856:127;14531:15;:24;;;;:::i;:::-;:42;;14523:51;;;;;;14208:386;14171:494;;;14623:15;:22;;-1:-1:-1;;14623:22:0;;;;;14171:494;14050:630;14019:661;13924:767;13902:789;14719:8;;-1:-1:-1;;;;;14744:23:0;;14703:12;14744:23;;;:17;:23;;;;;;14719:8;;;;14718:9;;14744:23;;:48;;-1:-1:-1;;;;;;14771:21:0;;;;;;:17;:21;;;;;;;;14744:48;14740:96;;;-1:-1:-1;14819:5:0;14740:96;14852:7;14848:1108;;;-1:-1:-1;;;;;14915:9:0;;14878:12;14915:9;;;:5;:9;;;;;;;;:30;;;;;14944:1;14928:13;;:17;14915:30;14911:894;;;14966:29;15026:14;;15007:16;;14998:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;14966:74;;15059:29;15119:14;;15100:16;;15091:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;15059:74;-1:-1:-1;15161:45:0;15059:74;15161:21;:45;:::i;:::-;15154:52;;15249:21;15227:18;;:43;;;;;;;:::i;:::-;;;;;;;;15311:21;15289:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;14911:894:0;;-1:-1:-1;;;14911:894:0;;-1:-1:-1;;;;;15373:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;15403:1;15388:12;;:16;15373:31;15369:436;;;15425:29;15484:14;;15466:15;;15457:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;15425:73;;15517:29;15576:14;;15558:15;;15549:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;15517:73;-1:-1:-1;15618:45:0;15517:73;15618:21;:45;:::i;:::-;15611:52;;15706:21;15684:18;;:43;;;;;;;:::i;:::-;;;;;;;;15768:21;15746:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;15369:436:0;15825:8;;15821:124;;15854:42;15870:4;15884;15891;15854:15;:42::i;:::-;15915:14;15925:4;15915:14;;:::i;:::-;;;15821:124;14861:1095;14848:1108;15972:14;;;;15968:1348;;;503:6;;-1:-1:-1;;;;;16025:15:0;;;503:6;;16025:15;;;;:49;;-1:-1:-1;503:6:0;;-1:-1:-1;;;;;16061:13:0;;;503:6;;16061:13;;16025:49;:91;;;;-1:-1:-1;;;;;;16095:21:0;;16109:6;16095:21;;16025:91;:121;;;;-1:-1:-1;16138:8:0;;;;16137:9;16025:121;16003:1302;;;16208:9;16189:29;;;;:18;:29;;;;;;;;16219:12;16189:43;;;;;;;;:48;16181:57;;;;;;16276:9;16257:29;;;;:18;:29;;;;;;;;16287:12;16257:43;;;;;;;16303:1;16257:47;;-1:-1:-1;;;;;16351:11:0;;;;:5;:11;;;;;;;;:67;;;;-1:-1:-1;;;;;;16388:30:0;;;;;;:26;:30;;;;;;;;16387:31;16351:67;16325:965;;;16505:20;;16495:6;:30;;16461:138;;;;-1:-1:-1;;;16461:138:0;;10589:2:1;16461:138:0;;;10571:21:1;10628:2;10608:18;;;10601:30;-1:-1:-1;;;10647:18:1;;;10640:52;10709:18;;16461:138:0;10387:346:1;16461:138:0;16682:9;;-1:-1:-1;;;;;5957:18:0;;5930:7;5957:18;;;:9;:18;;;;;;16656:22;;:6;:22;:::i;:::-;:35;;16622:131;;;;-1:-1:-1;;;16622:131:0;;10940:2:1;16622:131:0;;;10922:21:1;10979:2;10959:18;;;10952:30;-1:-1:-1;;;10998:18:1;;;10991:40;11048:18;;16622:131:0;10738:334:1;16622:131:0;16325:965;;;-1:-1:-1;;;;;16805:9:0;;;;;;:5;:9;;;;;;;;:67;;;;-1:-1:-1;;;;;;16840:32:0;;;;;;:26;:32;;;;;;;;16839:33;16805:67;16779:511;;;16959:20;;16949:6;:30;;16915:138;;;;-1:-1:-1;;;16915:138:0;;10589:2:1;16915:138:0;;;10571:21:1;10628:2;10608:18;;;10601:30;-1:-1:-1;;;10647:18:1;;;10640:52;10709:18;;16915:138:0;10387:346:1;16779:511:0;-1:-1:-1;;;;;17084:30:0;;;;;;:26;:30;;;;;;;;17079:211;;17199:9;;-1:-1:-1;;;;;5957:18:0;;5930:7;5957:18;;;:9;:18;;;;;;17173:22;;:6;:22;:::i;:::-;:35;;17139:131;;;;-1:-1:-1;;;17139:131:0;;10940:2:1;17139:131:0;;;10922:21:1;10979:2;10959:18;;;10952:30;-1:-1:-1;;;10998:18:1;;;10991:40;11048:18;;17139:131:0;10738:334:1;17139:131:0;17347:8;;;;17346:9;:47;;;;-1:-1:-1;17380:13:0;;-1:-1:-1;;;;;17372:21:0;;;17380:13;;17372:21;;17346:47;:83;;;;-1:-1:-1;17416:13:0;;-1:-1:-1;;;;;17410:19:0;;;17416:13;;17410:19;17346:83;:124;;;;-1:-1:-1;;;;;;17447:23:0;;;;;;:17;:23;;;;;;;;17446:24;17346:124;:163;;;;-1:-1:-1;;;;;;17488:21:0;;;;;;:17;:21;;;;;;;;17487:22;17346:163;:221;;;;-1:-1:-1;17554:13:0;;17544:4;5930:7;5957:18;;;:9;:18;;;;;;17526:41;;17346:221;17328:353;;;17594:8;:15;;-1:-1:-1;;17594:15:0;17605:4;17594:15;;;17626:10;:8;:10::i;:::-;17653:8;:16;;-1:-1:-1;;17653:16:0;;;17328:353;17695:33;17711:4;17717:2;17721:6;17695:15;:33::i;19219:353::-;19334:6;;19302:53;;19319:4;;-1:-1:-1;;;;;19334:6:0;19343:11;19302:8;:53::i;:::-;19366:6;;19508:15;;19366:198;;-1:-1:-1;;;19366:198:0;;19430:4;19366:198;;;11418:34:1;11468:18;;;11461:34;;;19366:6:0;11511:18:1;;;11504:34;;;11554:18;;;11547:34;-1:-1:-1;;;;;19508:15:0;;;11597:19:1;;;11590:44;19538:15:0;11650:19:1;;;11643:35;19366:6:0;;;:22;;19396:9;;11352:19:1;;19366:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3640:613::-;-1:-1:-1;;;;;3780:20:0;;3772:66;;;;-1:-1:-1;;;3772:66:0;;12202:2:1;3772:66:0;;;12184:21:1;12241:2;12221:18;;;12214:30;12280:34;12260:18;;;12253:62;-1:-1:-1;;;12331:18:1;;;12324:31;12372:19;;3772:66:0;12000:397:1;3772:66:0;-1:-1:-1;;;;;3857:23:0;;3849:67;;;;-1:-1:-1;;;3849:67:0;;12604:2:1;3849:67:0;;;12586:21:1;12643:2;12623:18;;;12616:30;12682:33;12662:18;;;12655:61;12733:18;;3849:67:0;12402:355:1;3849:67:0;-1:-1:-1;;;;;3953:17:0;;3929:21;3953:17;;;:9;:17;;;;;;3989:23;;;;3981:79;;;;-1:-1:-1;;;3981:79:0;;12964:2:1;3981:79:0;;;12946:21:1;13003:2;12983:18;;;12976:30;13042:34;13022:18;;;13015:62;-1:-1:-1;;;13093:18:1;;;13086:41;13144:19;;3981:79:0;12762:407:1;3981:79:0;-1:-1:-1;;;;;4096:17:0;;;;;;;:9;:17;;;;;;4116:22;;;4096:42;;4160:20;;;;;;;;:30;;4132:6;;4096:17;4160:30;;4132:6;;4160:30;:::i;:::-;;;;;;;;4225:9;-1:-1:-1;;;;;4208:35:0;4217:6;-1:-1:-1;;;;;4208:35:0;;4236:6;4208:35;;;;1716:25:1;;1704:2;1689:18;;1570:177;4208:35:0;;;;;;;;3761:492;3640:613;;;:::o;525:191::-;618:6;;;-1:-1:-1;;;;;635:17:0;;;-1:-1:-1;;;;;;635:17:0;;;;;;;668:40;;618:6;;;635:17;618:6;;668:40;;599:16;;668:40;588:128;525:191;:::o;20113:379::-;20240:34;;;;;;;;;;;;;;;;;20336:51;;-1:-1:-1;;;;;13366:32:1;;;20336:51:0;;;13348::1;13415:18;;;;13408:34;;;20336:51:0;;;;;;;;;;13321:18:1;;;;20336:51:0;;;;;;;-1:-1:-1;;;;;20336:51:0;-1:-1:-1;;;20336:51:0;;;20325:63;;20230:45;;-1:-1:-1;;;;20325:10:0;;;;:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20289:99;;;;20407:7;:57;;;;-1:-1:-1;20419:11:0;;:16;;:44;;;20450:4;20439:24;;;;;;;;;;;;:::i;:::-;20399:85;;;;-1:-1:-1;;;20399:85:0;;14197:2:1;20399:85:0;;;14179:21:1;14236:2;14216:18;;;14209:30;-1:-1:-1;;;14255:18:1;;;14248:45;14310:18;;20399:85:0;13995:339:1;20399:85:0;20186:306;;;20113:379;;;:::o;18197:1014::-;18242:15;;;;18237:343;;18299:18;;18278;;:39;;;;:::i;:::-;18321:1;18278:44;18274:91;;18197:1014::o;18274:91::-;18237:343;;;18445:18;;18436:4;5930:7;5957:18;;;:9;:18;;;;;;18418:45;;;;:::i;:::-;18397:18;:66;;;18482:18;;:39;;18397:66;18482:39;:::i;:::-;18525:1;18482:44;18478:91;;18197:1014::o;18478:91::-;18592:17;18633:1;18612:18;;:22;;;;:::i;:::-;18592:42;;18645:26;18717:9;18696:18;;:30;;;;:::i;:::-;18674:18;;:53;;;;:::i;:::-;18645:82;;18738:36;18755:18;18738:16;:36::i;:::-;18787:23;18872:18;18859:9;18838:18;;:30;;;;:::i;:::-;18813:56;;:21;:56;:::i;:::-;:77;;;;:::i;:::-;18787:103;;18919:1;18907:9;:13;:36;;;;;18942:1;18924:15;:19;18907:36;18903:110;;;18960:41;18974:9;18985:15;18960:13;:41::i;:::-;19029:18;;:22;19025:111;;19068:17;;:56;;-1:-1:-1;;;;;19068:17:0;;;;19098:21;;19068:56;;;;19098:21;19068:17;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19025:111;-1:-1:-1;;19169:1:0;19148:18;:22;;;19181:18;:22;-1:-1:-1;18197:1014:0:o;17744:445::-;17835:16;;;17849:1;17835:16;;;;;;;;17811:21;;17835:16;;;;;;;;;;-1:-1:-1;17835:16:0;17811:40;;17880:4;17862;17867:1;17862:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17862:23:0;;;:7;;;;;;;;;;:23;;;;17906:6;;:13;;;-1:-1:-1;;;17906:13:0;;;;:6;;;;;:11;;:13;;;;;17862:7;;17906:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17896:4;17901:1;17896:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17896:23:0;;;:7;;;;;;;;;:23;17962:6;;17930:53;;17947:4;;17962:6;17971:11;17930:8;:53::i;:::-;17994:6;;:187;;-1:-1:-1;;;17994:187:0;;-1:-1:-1;;;;;17994:6:0;;;;:57;;:187;;18066:11;;17994:6;;18108:4;;18135;;18155:15;;17994:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:250:1;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1318:247::-;1377:6;1430:2;1418:9;1409:7;1405:23;1401:32;1398:52;;;1446:1;1443;1436:12;1398:52;1485:9;1472:23;1504:31;1529:5;1504:31;:::i;:::-;1554:5;1318:247;-1:-1:-1;;;1318:247:1:o;1752:456::-;1829:6;1837;1845;1898:2;1886:9;1877:7;1873:23;1869:32;1866:52;;;1914:1;1911;1904:12;1866:52;1953:9;1940:23;1972:31;1997:5;1972:31;:::i;:::-;2022:5;-1:-1:-1;2079:2:1;2064:18;;2051:32;2092:33;2051:32;2092:33;:::i;:::-;1752:456;;2144:7;;-1:-1:-1;;;2198:2:1;2183:18;;;;2170:32;;1752:456::o;2610:180::-;2669:6;2722:2;2710:9;2701:7;2697:23;2693:32;2690:52;;;2738:1;2735;2728:12;2690:52;-1:-1:-1;2761:23:1;;2610:180;-1:-1:-1;2610:180:1:o;2795:367::-;2858:8;2868:6;2922:3;2915:4;2907:6;2903:17;2899:27;2889:55;;2940:1;2937;2930:12;2889:55;-1:-1:-1;2963:20:1;;3006:18;2995:30;;2992:50;;;3038:1;3035;3028:12;2992:50;3075:4;3067:6;3063:17;3051:29;;3135:3;3128:4;3118:6;3115:1;3111:14;3103:6;3099:27;3095:38;3092:47;3089:67;;;3152:1;3149;3142:12;3089:67;2795:367;;;;;:::o;3167:773::-;3289:6;3297;3305;3313;3366:2;3354:9;3345:7;3341:23;3337:32;3334:52;;;3382:1;3379;3372:12;3334:52;3422:9;3409:23;3451:18;3492:2;3484:6;3481:14;3478:34;;;3508:1;3505;3498:12;3478:34;3547:70;3609:7;3600:6;3589:9;3585:22;3547:70;:::i;:::-;3636:8;;-1:-1:-1;3521:96:1;-1:-1:-1;3724:2:1;3709:18;;3696:32;;-1:-1:-1;3740:16:1;;;3737:36;;;3769:1;3766;3759:12;3737:36;;3808:72;3872:7;3861:8;3850:9;3846:24;3808:72;:::i;:::-;3167:773;;;;-1:-1:-1;3899:8:1;-1:-1:-1;;;;3167:773:1:o;3945:118::-;4031:5;4024:13;4017:21;4010:5;4007:32;3997:60;;4053:1;4050;4043:12;4068:382;4133:6;4141;4194:2;4182:9;4173:7;4169:23;4165:32;4162:52;;;4210:1;4207;4200:12;4162:52;4249:9;4236:23;4268:31;4293:5;4268:31;:::i;:::-;4318:5;-1:-1:-1;4375:2:1;4360:18;;4347:32;4388:30;4347:32;4388:30;:::i;:::-;4437:7;4427:17;;;4068:382;;;;;:::o;4455:248::-;4523:6;4531;4584:2;4572:9;4563:7;4559:23;4555:32;4552:52;;;4600:1;4597;4590:12;4552:52;-1:-1:-1;;4623:23:1;;;4693:2;4678:18;;;4665:32;;-1:-1:-1;4455:248:1:o;4708:388::-;4776:6;4784;4837:2;4825:9;4816:7;4812:23;4808:32;4805:52;;;4853:1;4850;4843:12;4805:52;4892:9;4879:23;4911:31;4936:5;4911:31;:::i;:::-;4961:5;-1:-1:-1;5018:2:1;5003:18;;4990:32;5031:33;4990:32;5031:33;:::i;5335:380::-;5414:1;5410:12;;;;5457;;;5478:61;;5532:4;5524:6;5520:17;5510:27;;5478:61;5585:2;5577:6;5574:14;5554:18;5551:38;5548:161;;5631:10;5626:3;5622:20;5619:1;5612:31;5666:4;5663:1;5656:15;5694:4;5691:1;5684:15;5548:161;;5335:380;;;:::o;5720:356::-;5922:2;5904:21;;;5941:18;;;5934:30;6000:34;5995:2;5980:18;;5973:62;6067:2;6052:18;;5720:356::o;6495:127::-;6556:10;6551:3;6547:20;6544:1;6537:31;6587:4;6584:1;6577:15;6611:4;6608:1;6601:15;6627:125;6692:9;;;6713:10;;;6710:36;;;6726:18;;:::i;6757:127::-;6818:10;6813:3;6809:20;6806:1;6799:31;6849:4;6846:1;6839:15;6873:4;6870:1;6863:15;6889:135;6928:3;6949:17;;;6946:43;;6969:18;;:::i;:::-;-1:-1:-1;7016:1:1;7005:13;;6889:135::o;7435:184::-;7505:6;7558:2;7546:9;7537:7;7533:23;7529:32;7526:52;;;7574:1;7571;7564:12;7526:52;-1:-1:-1;7597:16:1;;7435:184;-1:-1:-1;7435:184:1:o;9859:128::-;9926:9;;;9947:11;;;9944:37;;;9961:18;;:::i;9992:217::-;10032:1;10058;10048:132;;10102:10;10097:3;10093:20;10090:1;10083:31;10137:4;10134:1;10127:15;10165:4;10162:1;10155:15;10048:132;-1:-1:-1;10194:9:1;;9992:217::o;10214:168::-;10287:9;;;10318;;10335:15;;;10329:22;;10315:37;10305:71;;10356:18;;:::i;11689:306::-;11777:6;11785;11793;11846:2;11834:9;11825:7;11821:23;11817:32;11814:52;;;11862:1;11859;11852:12;11814:52;11891:9;11885:16;11875:26;;11941:2;11930:9;11926:18;11920:25;11910:35;;11985:2;11974:9;11970:18;11964:25;11954:35;;11689:306;;;;;:::o;13453:287::-;13582:3;13620:6;13614:13;13636:66;13695:6;13690:3;13683:4;13675:6;13671:17;13636:66;:::i;:::-;13718:16;;;;;13453:287;-1:-1:-1;;13453:287:1:o;13745:245::-;13812:6;13865:2;13853:9;13844:7;13840:23;13836:32;13833:52;;;13881:1;13878;13871:12;13833:52;13913:9;13907:16;13932:28;13954:5;13932:28;:::i;14471:251::-;14541:6;14594:2;14582:9;14573:7;14569:23;14565:32;14562:52;;;14610:1;14607;14600:12;14562:52;14642:9;14636:16;14661:31;14686:5;14661:31;:::i;14727:980::-;14989:4;15037:3;15026:9;15022:19;15068:6;15057:9;15050:25;15094:2;15132:6;15127:2;15116:9;15112:18;15105:34;15175:3;15170:2;15159:9;15155:18;15148:31;15199:6;15234;15228:13;15265:6;15257;15250:22;15303:3;15292:9;15288:19;15281:26;;15342:2;15334:6;15330:15;15316:29;;15363:1;15373:195;15387:6;15384:1;15381:13;15373:195;;;15452:13;;-1:-1:-1;;;;;15448:39:1;15436:52;;15543:15;;;;15508:12;;;;15484:1;15402:9;15373:195;;;-1:-1:-1;;;;;;;15624:32:1;;;;15619:2;15604:18;;15597:60;-1:-1:-1;;;15688:3:1;15673:19;15666:35;15585:3;14727:980;-1:-1:-1;;;14727:980:1:o

Swarm Source

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