ETH Price: $3,265.92 (-0.54%)
Gas: 1 Gwei

Token

Thug Pepe (THUG)
 

Overview

Max Total Supply

420,000,000,000 THUG

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,604,732,520.000000000000385444 THUG

Value
$0.00
0xe02918243269edeb0af618619905a6b326a95742
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:
ThugPepe

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-22
*/

// Telegram: https://t.me/thugpepe
// Twitter: https://twitter.com/thugpepe_erc
// Website: https://thugpepe.vip

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.17;

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

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

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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

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

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

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

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,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

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

    bool private swapping;
    bool public swapTrigger = false;
    bool public tradingOpen = false;
    bool public limitsInEffect = true;

    address public marketingWallet;
    address private developmentWallet;

    uint256 public swapTokensAtAmount;
    uint256 public maxTxAmount;
    uint256 public maxWallet;

    struct Taxes {
        uint256 marketing;
        uint256 development;
        uint256 liquidity;
        uint256 total;
    }
    Taxes public buyTax;
    Taxes public sellTax;

    uint256 private tokensForMarketing;
    uint256 private tokensForDevelopment;
    uint256 private tokensForLiquidity;

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

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndLiquidity(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);

    constructor() ERC20("Thug Pepe", "THUG") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTxAmount(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

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

        uint256 totalSupply = 420000000000 * 10**decimals();

        maxTxAmount = totalSupply.mul(2).div(100);
        maxWallet = totalSupply.mul(4).div(100);
        swapTokensAtAmount = totalSupply.mul(1).div(1000);

        marketingWallet = _msgSender();
        developmentWallet = address(0xfbfEaF0DA0F2fdE5c66dF570133aE35f3eB58c9A);

        buyTax = Taxes(5, 0, 0, 5);
        sellTax = Taxes(40, 0, 0, 40);

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

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

        _mint(_msgSender(), totalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner {
        require(tradingOpen == false, "The trading has been opened.");
        tradingOpen = true;
        swapTrigger = true;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect == true, "The limits has been removed.");
        limitsInEffect = false;
    }

    function toggerSwapTrigger() external onlyOwner {
        swapTrigger = !swapTrigger;
    }

    function updateBuyTaxes(uint256 _marketing, uint256 _development, uint256 _liquidity) external onlyOwner {
        uint256 _total = _marketing + _development + _liquidity;
        require(_total <= 15, "Must keep fees at 15% or less");
        buyTax = Taxes(_marketing, _development, _liquidity, _total);
    }

    function updateSellTaxes(uint256 _marketing, uint256 _development, uint256 _liquidity) external onlyOwner {
        uint256 _total = _marketing + _development + _liquidity;
        require(_total <= 15, "Must keep fees at 15% or less");
        sellTax = Taxes(_marketing, _development, _liquidity, _total);
    }

    function updateMaxWalletAndTxnAmount(uint256 _maxTxAmount, uint256 _maxWallet) external onlyOwner {
        maxTxAmount = totalSupply().mul(_maxTxAmount).div(1000);
        maxWallet = totalSupply().mul(_maxWallet).div(1000);
    }

    function excludeFromMaxTxAmount(address _address, bool excluded) public onlyOwner {
        _isExcludedMaxTxAmount[_address] = excluded;
    }

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

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

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != zeroAddress, "ERC20: transfer from the zero address.");
        require(to != zeroAddress, "ERC20: transfer to the zero address.");
        require(amount > 0, "ERC20: Transfer amount must be greater than zero.");

        if (from != owner() && to != owner() && to != zeroAddress && to != deadAddress && !swapping) {
            if (tradingOpen == false) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "ERC20: Trading is not active.");
            }

            if (limitsInEffect == true) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTxAmount[to]) {
                    require(amount <= maxTxAmount, "ERC20: Buy transfer amount exceeds the max transaction amount.");
                    require(amount + balanceOf(to) <= maxWallet, "TOKEN: Max wallet exceeded.");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTxAmount[from]) {
                    require(amount <= maxTxAmount, "ERC20: Sell transfer amount exceeds the max transaction amount.");
                } else if (!_isExcludedMaxTxAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "ERC20: Max wallet exceeded.");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if (swapTrigger && canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

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

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTax.total > 0) {
                fees = amount.mul(sellTax.total).div(100);
                tokensForLiquidity += (fees * sellTax.liquidity) / sellTax.total;
                tokensForMarketing += (fees * sellTax.marketing) / sellTax.total;
                tokensForDevelopment += (fees * sellTax.development) / sellTax.total;
            }
            else if (automatedMarketMakerPairs[from] && buyTax.total > 0) {
                fees = amount.mul(buyTax.total).div(100);
                tokensForLiquidity += (fees * buyTax.liquidity) / buyTax.total;
                tokensForMarketing += (fees * buyTax.marketing) / buyTax.total;
                tokensForDevelopment += (fees * buyTax.development) / buyTax.total;
            }

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

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

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            deadAddress,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing + tokensForDevelopment;
        bool success;

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

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

        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

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

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap);
        uint256 ethForDevelopment = ethBalance.mul(tokensForDevelopment).div(totalTokensToSwap);

        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDevelopment;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForDevelopment = 0;

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

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

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"total","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromMaxTxAmount","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":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"sellTax","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"development","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTrigger","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggerSwapTrigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"updateMaxWalletAndTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"updateSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526005805462ffffff60a81b1916600160b81b1790553480156200002657600080fd5b506040518060400160405280600981526020016854687567205065706560b81b815250604051806040016040528060048152602001635448554760e01b81525081600390816200007791906200070a565b5060046200008682826200070a565b505050620000a36200009d6200042360201b60201c565b62000427565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000c581600162000479565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000110573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001369190620007d6565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000184573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001aa9190620007d6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021e9190620007d6565b6001600160a01b031660a08190526200023990600162000479565b60a0516001600160a01b03166000908152601860205260409020805460ff19166001179055600060126200026f90600a6200091b565b62000280906461c9f368006200092c565b9050620002b76064620002a3600284620004ae60201b62000c271790919060201c565b620004c560201b62000c3a1790919060201c565b600955620002d96064620002a3836004620004ae602090811b62000c2717901c565b600a55620002fc6103e8620002a3836001620004ae602090811b62000c2717901c565b60085560068054336001600160a01b0319918216179091556007805490911673fbfeaf0da0f2fde5c66df570133ae35f3eb58c9a17905560408051608080820183526005808352600060208085018290528486018290526060948501839052600b839055600c829055600d829055600e83905585519384018652602880855290840182905294830181905291909201839052600f839055601081905560115560129190915554620003b8906001600160a01b03166001620004d3565b620003c5306001620004d3565b620003d461dead6001620004d3565b620003f3620003eb6005546001600160a01b031690565b600162000479565b6200040030600162000479565b6200040f61dead600162000479565b6200041b33826200053c565b50506200097f565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6200048362000603565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6000620004bc82846200092c565b90505b92915050565b6000620004bc828462000946565b620004dd62000603565b6001600160a01b038216600081815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005985760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620005ac919062000969565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146200065f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200058f565b565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200069157607f821691505b602082108103620006b257634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200066157600081815260208120601f850160051c81016020861015620006e15750805b601f850160051c820191505b818110156200070257828155600101620006ed565b505050505050565b81516001600160401b0381111562000726576200072662000666565b6200073e816200073784546200067c565b84620006b8565b602080601f8311600181146200077657600084156200075d5750858301515b600019600386901b1c1916600185901b17855562000702565b600085815260208120601f198616915b82811015620007a75788860151825594840194600190910190840162000786565b5085821015620007c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007e957600080fd5b81516001600160a01b03811681146200080157600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200085f57816000190482111562000843576200084362000808565b808516156200085157918102915b93841c939080029062000823565b509250929050565b6000826200087857506001620004bf565b816200088757506000620004bf565b8160018114620008a05760028114620008ab57620008cb565b6001915050620004bf565b60ff841115620008bf57620008bf62000808565b50506001821b620004bf565b5060208310610133831016604e8410600b8410161715620008f0575081810a620004bf565b620008fc83836200081e565b806000190482111562000913576200091362000808565b029392505050565b6000620004bc60ff84168362000867565b8082028115828204841417620004bf57620004bf62000808565b6000826200096457634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004bf57620004bf62000808565b60805160a051612078620009c860003960006103940152600081816102cf01528181611ad801528181611b9101528181611bcd01528181611c3f0152611c9c01526120786000f3fe6080604052600436106102085760003560e01c806375f0a87411610118578063c0246668116100a0578063e2f456051161006f578063e2f456051461061d578063f2fde38b14610633578063f7a9de1314610653578063f8b45b0514610668578063ffb54a991461067e57600080fd5b8063c0246668146105a5578063c9567bf9146105c5578063cc1776d3146105da578063dd62ed3e146105fd57600080fd5b806395d89b41116100e757806395d89b41146105105780639618839914610525578063a457c2d714610545578063a9059cbb14610565578063b4337b4e1461058557600080fd5b806375f0a8741461049c5780638c0b5e22146104bc5780638c374ac1146104d25780638da5cb5b146104f257600080fd5b8063313ce5671161019b5780634f7041a51161016a5780634f7041a5146103d7578063595cc84f1461041a57806370a082311461043c578063715018a614610472578063751039fc1461048757600080fd5b8063313ce56714610346578063395093511461036257806349bd5a5e146103825780634a62bb65146103b657600080fd5b80631694505e116101d75780631694505e146102bd57806318160ddd146102f157806323b872dd1461031057806327c8f8351461033057600080fd5b806306fdde03146102145780630930907b1461023f578063095ea7b31461026c5780630bda7cd71461029c57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022961069f565b6040516102369190611d1a565b60405180910390f35b34801561024b57600080fd5b50610254600081565b6040516001600160a01b039091168152602001610236565b34801561027857600080fd5b5061028c610287366004611d7d565b610731565b6040519015158152602001610236565b3480156102a857600080fd5b5060055461028c90600160a81b900460ff1681565b3480156102c957600080fd5b506102547f000000000000000000000000000000000000000000000000000000000000000081565b3480156102fd57600080fd5b506002545b604051908152602001610236565b34801561031c57600080fd5b5061028c61032b366004611da9565b61074b565b34801561033c57600080fd5b5061025461dead81565b34801561035257600080fd5b5060405160128152602001610236565b34801561036e57600080fd5b5061028c61037d366004611d7d565b61076f565b34801561038e57600080fd5b506102547f000000000000000000000000000000000000000000000000000000000000000081565b3480156103c257600080fd5b5060055461028c90600160b81b900460ff1681565b3480156103e357600080fd5b50600b54600c54600d54600e546103fa9392919084565b604080519485526020850193909352918301526060820152608001610236565b34801561042657600080fd5b5061043a610435366004611dea565b610791565b005b34801561044857600080fd5b50610302610457366004611e28565b6001600160a01b031660009081526020819052604090205490565b34801561047e57600080fd5b5061043a6107c4565b34801561049357600080fd5b5061043a6107d8565b3480156104a857600080fd5b50600654610254906001600160a01b031681565b3480156104c857600080fd5b5061030260095481565b3480156104de57600080fd5b5061043a6104ed366004611e45565b610852565b3480156104fe57600080fd5b506005546001600160a01b0316610254565b34801561051c57600080fd5b506102296108f8565b34801561053157600080fd5b5061043a610540366004611e71565b610907565b34801561055157600080fd5b5061028c610560366004611d7d565b61094b565b34801561057157600080fd5b5061028c610580366004611d7d565b6109c6565b34801561059157600080fd5b5061043a6105a0366004611e45565b6109d4565b3480156105b157600080fd5b5061043a6105c0366004611dea565b610a7a565b3480156105d157600080fd5b5061043a610ae1565b3480156105e657600080fd5b50600f546010546011546012546103fa9392919084565b34801561060957600080fd5b50610302610618366004611e93565b610b5a565b34801561062957600080fd5b5061030260085481565b34801561063f57600080fd5b5061043a61064e366004611e28565b610b85565b34801561065f57600080fd5b5061043a610bfe565b34801561067457600080fd5b50610302600a5481565b34801561068a57600080fd5b5060055461028c90600160b01b900460ff1681565b6060600380546106ae90611ec1565b80601f01602080910402602001604051908101604052809291908181526020018280546106da90611ec1565b80156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b5050505050905090565b60003361073f818585610c46565b60019150505b92915050565b600033610759858285610d6a565b610764858585610de4565b506001949350505050565b60003361073f8185856107828383610b5a565b61078c9190611f11565b610c46565b6107996115ec565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6107cc6115ec565b6107d66000611646565b565b6107e06115ec565b600554600160b81b900460ff1615156001146108435760405162461bcd60e51b815260206004820152601c60248201527f546865206c696d69747320686173206265656e2072656d6f7665642e0000000060448201526064015b60405180910390fd5b6005805460ff60b81b19169055565b61085a6115ec565b6000816108678486611f11565b6108719190611f11565b9050600f8111156108c45760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c657373000000604482015260640161083a565b6040805160808101825285815260208101859052908101839052606001819052600b93909355600c91909155600d55600e55565b6060600480546106ae90611ec1565b61090f6115ec565b61092e6103e86109288461092260025490565b90610c27565b90610c3a565b6009556109446103e86109288361092260025490565b600a555050565b600033816109598286610b5a565b9050838110156109b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161083a565b6107648286868403610c46565b60003361073f818585610de4565b6109dc6115ec565b6000816109e98486611f11565b6109f39190611f11565b9050600f811115610a465760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c657373000000604482015260640161083a565b6040805160808101825285815260208101859052908101839052606001819052600f93909355601091909155601155601255565b610a826115ec565b6001600160a01b038216600081815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610ae96115ec565b600554600160b01b900460ff1615610b435760405162461bcd60e51b815260206004820152601c60248201527f5468652074726164696e6720686173206265656e206f70656e65642e00000000604482015260640161083a565b6005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610b8d6115ec565b6001600160a01b038116610bf25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083a565b610bfb81611646565b50565b610c066115ec565b6005805460ff60a81b198116600160a81b9182900460ff1615909102179055565b6000610c338284611f24565b9392505050565b6000610c338284611f3b565b6001600160a01b038316610ca85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083a565b6001600160a01b038216610d095760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610d768484610b5a565b90506000198114610dde5781811015610dd15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161083a565b610dde8484848403610c46565b50505050565b6001600160a01b038316610e495760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b606482015260840161083a565b6001600160a01b038216610eab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b606482015260840161083a565b60008111610f155760405162461bcd60e51b815260206004820152603160248201527f45524332303a205472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b606482015260840161083a565b6005546001600160a01b03848116911614801590610f4157506005546001600160a01b03838116911614155b8015610f5557506001600160a01b03821615155b8015610f6c57506001600160a01b03821661dead14155b8015610f825750600554600160a01b900460ff16155b156112c757600554600160b01b900460ff161515600003611028576001600160a01b03831660009081526016602052604090205460ff1680610fdc57506001600160a01b03821660009081526016602052604090205460ff165b6110285760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f74206163746976652e000000604482015260640161083a565b600554600160b81b900460ff1615156001036112c7576001600160a01b03831660009081526018602052604090205460ff16801561107f57506001600160a01b03821660009081526017602052604090205460ff16155b15611175576009548111156110fc5760405162461bcd60e51b815260206004820152603e60248201527f45524332303a20427579207472616e7366657220616d6f756e7420657863656560448201527f647320746865206d6178207472616e73616374696f6e20616d6f756e742e0000606482015260840161083a565b600a546001600160a01b0383166000908152602081905260409020546111229083611f11565b11156111705760405162461bcd60e51b815260206004820152601b60248201527f544f4b454e3a204d61782077616c6c65742065786365656465642e0000000000604482015260640161083a565b6112c7565b6001600160a01b03821660009081526018602052604090205460ff1680156111b657506001600160a01b03831660009081526017602052604090205460ff16155b15611233576009548111156111705760405162461bcd60e51b815260206004820152603f60248201527f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560448201527f65647320746865206d6178207472616e73616374696f6e20616d6f756e742e00606482015260840161083a565b6001600160a01b03821660009081526017602052604090205460ff166112c757600a546001600160a01b0383166000908152602081905260409020546112799083611f11565b11156112c75760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204d61782077616c6c65742065786365656465642e0000000000604482015260640161083a565b6008543060009081526020819052604090205460055491111590600160a81b900460ff1680156112f45750805b801561130a5750600554600160a01b900460ff16155b801561132f57506001600160a01b03841660009081526018602052604090205460ff16155b801561135457506001600160a01b03841660009081526016602052604090205460ff16155b801561137957506001600160a01b03831660009081526016602052604090205460ff16155b156113a7576005805460ff60a01b1916600160a01b179055611399611698565b6005805460ff60a01b191690555b6005546001600160a01b03851660009081526016602052604090205460ff600160a01b9092048216159116806113f557506001600160a01b03841660009081526016602052604090205460ff165b156113fe575060005b600081156115d9576001600160a01b03851660009081526018602052604090205460ff16801561142f575060125415155b156114e35760125461144990606490610928908790610c27565b6012546011549192509061145d9083611f24565b6114679190611f3b565b601560008282546114789190611f11565b9091555050601254600f5461148d9083611f24565b6114979190611f3b565b601360008282546114a89190611f11565b90915550506012546010546114bd9083611f24565b6114c79190611f3b565b601460008282546114d89190611f11565b909155506115bb9050565b6001600160a01b03861660009081526018602052604090205460ff16801561150c5750600e5415155b156115bb57600e5461152690606490610928908790610c27565b600e54600d549192509061153a9083611f24565b6115449190611f3b565b601560008282546115559190611f11565b9091555050600e54600b5461156a9083611f24565b6115749190611f3b565b601360008282546115859190611f11565b9091555050600e54600c5461159a9083611f24565b6115a49190611f3b565b601460008282546115b59190611f11565b90915550505b80156115cc576115cc8630836118d1565b6115d68185611f5d565b93505b6115e48686866118d1565b505050505050565b6005546001600160a01b031633146107d65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b30600090815260208190526040812054905060006014546013546015546116bf9190611f11565b6116c99190611f11565b905060008215806116d8575081155b156116e257505050565b6008546116f0906014611f24565b83111561170857600854611705906014611f24565b92505b60006002836015548661171b9190611f24565b6117259190611f3b565b61172f9190611f3b565b9050600061173d8583611a75565b90504761174982611a81565b60006117554783611a75565b905060006117728761092860135485610c2790919063ffffffff16565b9050600061178f8861092860145486610c2790919063ffffffff16565b905060008161179e8486611f5d565b6117a89190611f5d565b600060158190556013819055601455905086158015906117c85750600081115b1561181b576117d78782611c39565b601554604080518881526020810184905280820192909252517f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb9181900360600190a15b6006546040516001600160a01b03909116908490600081818185875af1925050503d8060008114611868576040519150601f19603f3d011682016040523d82523d6000602084013e61186d565b606091505b50506007546040519199506001600160a01b0316904790600081818185875af1925050503d80600081146118bd576040519150601f19603f3d011682016040523d82523d6000602084013e6118c2565b606091505b50505050505050505050505050565b6001600160a01b0383166119355760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083a565b6001600160a01b0382166119975760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083a565b6001600160a01b03831660009081526020819052604090205481811015611a0f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161083a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610dde565b6000610c338284611f5d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ab657611ab6611f70565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b589190611f86565b81600181518110611b6b57611b6b611f70565b60200260200101906001600160a01b031690816001600160a01b031681525050611bb6307f000000000000000000000000000000000000000000000000000000000000000084610c46565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611c0b908590600090869030904290600401611fa3565b600060405180830381600087803b158015611c2557600080fd5b505af11580156115e4573d6000803e3d6000fd5b611c64307f000000000000000000000000000000000000000000000000000000000000000084610c46565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611cee573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d139190612014565b5050505050565b600060208083528351808285015260005b81811015611d4757858101830151858201604001528201611d2b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bfb57600080fd5b60008060408385031215611d9057600080fd5b8235611d9b81611d68565b946020939093013593505050565b600080600060608486031215611dbe57600080fd5b8335611dc981611d68565b92506020840135611dd981611d68565b929592945050506040919091013590565b60008060408385031215611dfd57600080fd5b8235611e0881611d68565b915060208301358015158114611e1d57600080fd5b809150509250929050565b600060208284031215611e3a57600080fd5b8135610c3381611d68565b600080600060608486031215611e5a57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e8457600080fd5b50508035926020909101359150565b60008060408385031215611ea657600080fd5b8235611eb181611d68565b91506020830135611e1d81611d68565b600181811c90821680611ed557607f821691505b602082108103611ef557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074557610745611efb565b808202811582820484141761074557610745611efb565b600082611f5857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561074557610745611efb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f9857600080fd5b8151610c3381611d68565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ff35784516001600160a01b031683529383019391830191600101611fce565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561202957600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202333bc22fe74d70a717829f191809760a549efbbd201692d71428089bf6b8d1064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806375f0a87411610118578063c0246668116100a0578063e2f456051161006f578063e2f456051461061d578063f2fde38b14610633578063f7a9de1314610653578063f8b45b0514610668578063ffb54a991461067e57600080fd5b8063c0246668146105a5578063c9567bf9146105c5578063cc1776d3146105da578063dd62ed3e146105fd57600080fd5b806395d89b41116100e757806395d89b41146105105780639618839914610525578063a457c2d714610545578063a9059cbb14610565578063b4337b4e1461058557600080fd5b806375f0a8741461049c5780638c0b5e22146104bc5780638c374ac1146104d25780638da5cb5b146104f257600080fd5b8063313ce5671161019b5780634f7041a51161016a5780634f7041a5146103d7578063595cc84f1461041a57806370a082311461043c578063715018a614610472578063751039fc1461048757600080fd5b8063313ce56714610346578063395093511461036257806349bd5a5e146103825780634a62bb65146103b657600080fd5b80631694505e116101d75780631694505e146102bd57806318160ddd146102f157806323b872dd1461031057806327c8f8351461033057600080fd5b806306fdde03146102145780630930907b1461023f578063095ea7b31461026c5780630bda7cd71461029c57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022961069f565b6040516102369190611d1a565b60405180910390f35b34801561024b57600080fd5b50610254600081565b6040516001600160a01b039091168152602001610236565b34801561027857600080fd5b5061028c610287366004611d7d565b610731565b6040519015158152602001610236565b3480156102a857600080fd5b5060055461028c90600160a81b900460ff1681565b3480156102c957600080fd5b506102547f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156102fd57600080fd5b506002545b604051908152602001610236565b34801561031c57600080fd5b5061028c61032b366004611da9565b61074b565b34801561033c57600080fd5b5061025461dead81565b34801561035257600080fd5b5060405160128152602001610236565b34801561036e57600080fd5b5061028c61037d366004611d7d565b61076f565b34801561038e57600080fd5b506102547f0000000000000000000000004ccdfc59611be792dfb550e09c86effbfed1436b81565b3480156103c257600080fd5b5060055461028c90600160b81b900460ff1681565b3480156103e357600080fd5b50600b54600c54600d54600e546103fa9392919084565b604080519485526020850193909352918301526060820152608001610236565b34801561042657600080fd5b5061043a610435366004611dea565b610791565b005b34801561044857600080fd5b50610302610457366004611e28565b6001600160a01b031660009081526020819052604090205490565b34801561047e57600080fd5b5061043a6107c4565b34801561049357600080fd5b5061043a6107d8565b3480156104a857600080fd5b50600654610254906001600160a01b031681565b3480156104c857600080fd5b5061030260095481565b3480156104de57600080fd5b5061043a6104ed366004611e45565b610852565b3480156104fe57600080fd5b506005546001600160a01b0316610254565b34801561051c57600080fd5b506102296108f8565b34801561053157600080fd5b5061043a610540366004611e71565b610907565b34801561055157600080fd5b5061028c610560366004611d7d565b61094b565b34801561057157600080fd5b5061028c610580366004611d7d565b6109c6565b34801561059157600080fd5b5061043a6105a0366004611e45565b6109d4565b3480156105b157600080fd5b5061043a6105c0366004611dea565b610a7a565b3480156105d157600080fd5b5061043a610ae1565b3480156105e657600080fd5b50600f546010546011546012546103fa9392919084565b34801561060957600080fd5b50610302610618366004611e93565b610b5a565b34801561062957600080fd5b5061030260085481565b34801561063f57600080fd5b5061043a61064e366004611e28565b610b85565b34801561065f57600080fd5b5061043a610bfe565b34801561067457600080fd5b50610302600a5481565b34801561068a57600080fd5b5060055461028c90600160b01b900460ff1681565b6060600380546106ae90611ec1565b80601f01602080910402602001604051908101604052809291908181526020018280546106da90611ec1565b80156107275780601f106106fc57610100808354040283529160200191610727565b820191906000526020600020905b81548152906001019060200180831161070a57829003601f168201915b5050505050905090565b60003361073f818585610c46565b60019150505b92915050565b600033610759858285610d6a565b610764858585610de4565b506001949350505050565b60003361073f8185856107828383610b5a565b61078c9190611f11565b610c46565b6107996115ec565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6107cc6115ec565b6107d66000611646565b565b6107e06115ec565b600554600160b81b900460ff1615156001146108435760405162461bcd60e51b815260206004820152601c60248201527f546865206c696d69747320686173206265656e2072656d6f7665642e0000000060448201526064015b60405180910390fd5b6005805460ff60b81b19169055565b61085a6115ec565b6000816108678486611f11565b6108719190611f11565b9050600f8111156108c45760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c657373000000604482015260640161083a565b6040805160808101825285815260208101859052908101839052606001819052600b93909355600c91909155600d55600e55565b6060600480546106ae90611ec1565b61090f6115ec565b61092e6103e86109288461092260025490565b90610c27565b90610c3a565b6009556109446103e86109288361092260025490565b600a555050565b600033816109598286610b5a565b9050838110156109b95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161083a565b6107648286868403610c46565b60003361073f818585610de4565b6109dc6115ec565b6000816109e98486611f11565b6109f39190611f11565b9050600f811115610a465760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313525206f72206c657373000000604482015260640161083a565b6040805160808101825285815260208101859052908101839052606001819052600f93909355601091909155601155601255565b610a826115ec565b6001600160a01b038216600081815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b610ae96115ec565b600554600160b01b900460ff1615610b435760405162461bcd60e51b815260206004820152601c60248201527f5468652074726164696e6720686173206265656e206f70656e65642e00000000604482015260640161083a565b6005805461ffff60a81b191661010160a81b179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610b8d6115ec565b6001600160a01b038116610bf25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083a565b610bfb81611646565b50565b610c066115ec565b6005805460ff60a81b198116600160a81b9182900460ff1615909102179055565b6000610c338284611f24565b9392505050565b6000610c338284611f3b565b6001600160a01b038316610ca85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083a565b6001600160a01b038216610d095760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610d768484610b5a565b90506000198114610dde5781811015610dd15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161083a565b610dde8484848403610c46565b50505050565b6001600160a01b038316610e495760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b606482015260840161083a565b6001600160a01b038216610eab5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b606482015260840161083a565b60008111610f155760405162461bcd60e51b815260206004820152603160248201527f45524332303a205472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b606482015260840161083a565b6005546001600160a01b03848116911614801590610f4157506005546001600160a01b03838116911614155b8015610f5557506001600160a01b03821615155b8015610f6c57506001600160a01b03821661dead14155b8015610f825750600554600160a01b900460ff16155b156112c757600554600160b01b900460ff161515600003611028576001600160a01b03831660009081526016602052604090205460ff1680610fdc57506001600160a01b03821660009081526016602052604090205460ff165b6110285760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67206973206e6f74206163746976652e000000604482015260640161083a565b600554600160b81b900460ff1615156001036112c7576001600160a01b03831660009081526018602052604090205460ff16801561107f57506001600160a01b03821660009081526017602052604090205460ff16155b15611175576009548111156110fc5760405162461bcd60e51b815260206004820152603e60248201527f45524332303a20427579207472616e7366657220616d6f756e7420657863656560448201527f647320746865206d6178207472616e73616374696f6e20616d6f756e742e0000606482015260840161083a565b600a546001600160a01b0383166000908152602081905260409020546111229083611f11565b11156111705760405162461bcd60e51b815260206004820152601b60248201527f544f4b454e3a204d61782077616c6c65742065786365656465642e0000000000604482015260640161083a565b6112c7565b6001600160a01b03821660009081526018602052604090205460ff1680156111b657506001600160a01b03831660009081526017602052604090205460ff16155b15611233576009548111156111705760405162461bcd60e51b815260206004820152603f60248201527f45524332303a2053656c6c207472616e7366657220616d6f756e74206578636560448201527f65647320746865206d6178207472616e73616374696f6e20616d6f756e742e00606482015260840161083a565b6001600160a01b03821660009081526017602052604090205460ff166112c757600a546001600160a01b0383166000908152602081905260409020546112799083611f11565b11156112c75760405162461bcd60e51b815260206004820152601b60248201527f45524332303a204d61782077616c6c65742065786365656465642e0000000000604482015260640161083a565b6008543060009081526020819052604090205460055491111590600160a81b900460ff1680156112f45750805b801561130a5750600554600160a01b900460ff16155b801561132f57506001600160a01b03841660009081526018602052604090205460ff16155b801561135457506001600160a01b03841660009081526016602052604090205460ff16155b801561137957506001600160a01b03831660009081526016602052604090205460ff16155b156113a7576005805460ff60a01b1916600160a01b179055611399611698565b6005805460ff60a01b191690555b6005546001600160a01b03851660009081526016602052604090205460ff600160a01b9092048216159116806113f557506001600160a01b03841660009081526016602052604090205460ff165b156113fe575060005b600081156115d9576001600160a01b03851660009081526018602052604090205460ff16801561142f575060125415155b156114e35760125461144990606490610928908790610c27565b6012546011549192509061145d9083611f24565b6114679190611f3b565b601560008282546114789190611f11565b9091555050601254600f5461148d9083611f24565b6114979190611f3b565b601360008282546114a89190611f11565b90915550506012546010546114bd9083611f24565b6114c79190611f3b565b601460008282546114d89190611f11565b909155506115bb9050565b6001600160a01b03861660009081526018602052604090205460ff16801561150c5750600e5415155b156115bb57600e5461152690606490610928908790610c27565b600e54600d549192509061153a9083611f24565b6115449190611f3b565b601560008282546115559190611f11565b9091555050600e54600b5461156a9083611f24565b6115749190611f3b565b601360008282546115859190611f11565b9091555050600e54600c5461159a9083611f24565b6115a49190611f3b565b601460008282546115b59190611f11565b90915550505b80156115cc576115cc8630836118d1565b6115d68185611f5d565b93505b6115e48686866118d1565b505050505050565b6005546001600160a01b031633146107d65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083a565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b30600090815260208190526040812054905060006014546013546015546116bf9190611f11565b6116c99190611f11565b905060008215806116d8575081155b156116e257505050565b6008546116f0906014611f24565b83111561170857600854611705906014611f24565b92505b60006002836015548661171b9190611f24565b6117259190611f3b565b61172f9190611f3b565b9050600061173d8583611a75565b90504761174982611a81565b60006117554783611a75565b905060006117728761092860135485610c2790919063ffffffff16565b9050600061178f8861092860145486610c2790919063ffffffff16565b905060008161179e8486611f5d565b6117a89190611f5d565b600060158190556013819055601455905086158015906117c85750600081115b1561181b576117d78782611c39565b601554604080518881526020810184905280820192909252517f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb9181900360600190a15b6006546040516001600160a01b03909116908490600081818185875af1925050503d8060008114611868576040519150601f19603f3d011682016040523d82523d6000602084013e61186d565b606091505b50506007546040519199506001600160a01b0316904790600081818185875af1925050503d80600081146118bd576040519150601f19603f3d011682016040523d82523d6000602084013e6118c2565b606091505b50505050505050505050505050565b6001600160a01b0383166119355760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083a565b6001600160a01b0382166119975760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083a565b6001600160a01b03831660009081526020819052604090205481811015611a0f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161083a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610dde565b6000610c338284611f5d565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ab657611ab6611f70565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b589190611f86565b81600181518110611b6b57611b6b611f70565b60200260200101906001600160a01b031690816001600160a01b031681525050611bb6307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610c46565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611c0b908590600090869030904290600401611fa3565b600060405180830381600087803b158015611c2557600080fd5b505af11580156115e4573d6000803e3d6000fd5b611c64307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610c46565b60405163f305d71960e01b815230600482015260248101839052600060448201819052606482015261dead60848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169063f305d71990839060c40160606040518083038185885af1158015611cee573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d139190612014565b5050505050565b600060208083528351808285015260005b81811015611d4757858101830151858201604001528201611d2b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610bfb57600080fd5b60008060408385031215611d9057600080fd5b8235611d9b81611d68565b946020939093013593505050565b600080600060608486031215611dbe57600080fd5b8335611dc981611d68565b92506020840135611dd981611d68565b929592945050506040919091013590565b60008060408385031215611dfd57600080fd5b8235611e0881611d68565b915060208301358015158114611e1d57600080fd5b809150509250929050565b600060208284031215611e3a57600080fd5b8135610c3381611d68565b600080600060608486031215611e5a57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611e8457600080fd5b50508035926020909101359150565b60008060408385031215611ea657600080fd5b8235611eb181611d68565b91506020830135611e1d81611d68565b600181811c90821680611ed557607f821691505b602082108103611ef557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074557610745611efb565b808202811582820484141761074557610745611efb565b600082611f5857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561074557610745611efb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f9857600080fd5b8151610c3381611d68565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ff35784516001600160a01b031683529383019391830191600101611fce565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561202957600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212202333bc22fe74d70a717829f191809760a549efbbd201692d71428089bf6b8d1064736f6c63430008110033

Deployed Bytecode Sourcemap

9034:9885:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3127:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9215:48;;;;;;;;;;;;9261:1;9215:48;;;;;-1:-1:-1;;;;;731:32:1;;;713:51;;701:2;686:18;9215:48:0;567:203:1;4059:201:0;;;;;;;;;;-1:-1:-1;4059:201:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;4059:201:0;1231:187:1;9360:31:0;;;;;;;;;;-1:-1:-1;9360:31:0;;;;-1:-1:-1;;;9360:31:0;;;;;;9112:51;;;;;;;;;;;;;;;3448:108;;;;;;;;;;-1:-1:-1;3536:12:0;;3448:108;;;1803:25:1;;;1791:2;1776:18;3448:108:0;1657:177:1;4268:261:0;;;;;;;;;;-1:-1:-1;4268:261:0;;;;;:::i;:::-;;:::i;9270:53::-;;;;;;;;;;;;9316:6;9270:53;;3347:93;;;;;;;;;;-1:-1:-1;3347:93:0;;3430:2;2442:36:1;;2430:2;2415:18;3347:93:0;2300:184:1;4537:238:0;;;;;;;;;;-1:-1:-1;4537:238:0;;;;;:::i;:::-;;:::i;9170:38::-;;;;;;;;;;;;;;;9436:33;;;;;;;;;;-1:-1:-1;9436:33:0;;;;-1:-1:-1;;;9436:33:0;;;;;;9800:19;;;;;;;;;;-1:-1:-1;9800:19:0;;;;;;;;;;;;;;;;;;;2720:25:1;;;2776:2;2761:18;;2754:34;;;;2804:18;;;2797:34;2862:2;2847:18;;2840:34;2707:3;2692:19;9800::0;2489:391:1;13038:144:0;;;;;;;;;;-1:-1:-1;13038:144:0;;;;;:::i;:::-;;:::i;:::-;;3564:127;;;;;;;;;;-1:-1:-1;3564:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3665:18:0;3638:7;3665:18;;;;;;;;;;;;3564:127;1321:103;;;;;;;;;;;;;:::i;11881:158::-;;;;;;;;;;;;;:::i;9478:30::-;;;;;;;;;;-1:-1:-1;9478:30:0;;;;-1:-1:-1;;;;;9478:30:0;;;9597:26;;;;;;;;;;;;;;;;12148:315;;;;;;;;;;-1:-1:-1;12148:315:0;;;;;:::i;:::-;;:::i;1086:87::-;;;;;;;;;;-1:-1:-1;1159:6:0;;-1:-1:-1;;;;;1159:6:0;1086:87;;3235:104;;;;;;;;;;;;;:::i;12796:234::-;;;;;;;;;;-1:-1:-1;12796:234:0;;;;;:::i;:::-;;:::i;4783:436::-;;;;;;;;;;-1:-1:-1;4783:436:0;;;;;:::i;:::-;;:::i;3699:193::-;;;;;;;;;;-1:-1:-1;3699:193:0;;;;;:::i;:::-;;:::i;12471:317::-;;;;;;;;;;-1:-1:-1;12471:317:0;;;;;:::i;:::-;;:::i;13190:185::-;;;;;;;;;;-1:-1:-1;13190:185:0;;;;;:::i;:::-;;:::i;11693:180::-;;;;;;;;;;;;;:::i;9826:20::-;;;;;;;;;;-1:-1:-1;9826:20:0;;;;;;;;;;;;;;;3900:151;;;;;;;;;;-1:-1:-1;3900:151:0;;;;;:::i;:::-;;:::i;9557:33::-;;;;;;;;;;;;;;;;1432:201;;;;;;;;;;-1:-1:-1;1432:201:0;;;;;:::i;:::-;;:::i;12047:93::-;;;;;;;;;;;;;:::i;9630:24::-;;;;;;;;;;;;;;;;9398:31;;;;;;;;;;-1:-1:-1;9398:31:0;;;;-1:-1:-1;;;9398:31:0;;;;;;3127:100;3181:13;3214:5;3207:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3127:100;:::o;4059:201::-;4142:4;301:10;4198:32;301:10;4214:7;4223:6;4198:8;:32::i;:::-;4248:4;4241:11;;;4059:201;;;;;:::o;4268:261::-;4365:4;301:10;4423:38;4439:4;301:10;4454:6;4423:15;:38::i;:::-;4472:27;4482:4;4488:2;4492:6;4472:9;:27::i;:::-;-1:-1:-1;4517:4:0;;4268:261;-1:-1:-1;;;;4268:261:0:o;4537:238::-;4625:4;301:10;4681:64;301:10;4697:7;4734:10;4706:25;301:10;4697:7;4706:9;:25::i;:::-;:38;;;;:::i;:::-;4681:8;:64::i;13038:144::-;1045:13;:11;:13::i;:::-;-1:-1:-1;;;;;13131:32:0;;;::::1;;::::0;;;:22:::1;:32;::::0;;;;:43;;-1:-1:-1;;13131:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13038:144::o;1321:103::-;1045:13;:11;:13::i;:::-;1386:30:::1;1413:1;1386:18;:30::i;:::-;1321:103::o:0;11881:158::-;1045:13;:11;:13::i;:::-;11943:14:::1;::::0;-1:-1:-1;;;11943:14:0;::::1;;;:22;;11961:4;11943:22;11935:63;;;::::0;-1:-1:-1;;;11935:63:0;;5374:2:1;11935:63:0::1;::::0;::::1;5356:21:1::0;5413:2;5393:18;;;5386:30;5452;5432:18;;;5425:58;5500:18;;11935:63:0::1;;;;;;;;;12009:14;:22:::0;;-1:-1:-1;;;;12009:22:0::1;::::0;;11881:158::o;12148:315::-;1045:13;:11;:13::i;:::-;12264:14:::1;12309:10:::0;12281:25:::1;12294:12:::0;12281:10;:25:::1;:::i;:::-;:38;;;;:::i;:::-;12264:55;;12348:2;12338:6;:12;;12330:54;;;::::0;-1:-1:-1;;;12330:54:0;;5731:2:1;12330:54:0::1;::::0;::::1;5713:21:1::0;5770:2;5750:18;;;5743:30;5809:31;5789:18;;;5782:59;5858:18;;12330:54:0::1;5529:353:1::0;12330:54:0::1;12404:51;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;12395:6:::1;:60:::0;;;;;;;;;;;;;12148:315::o;3235:104::-;3291:13;3324:7;3317:14;;;;;:::i;12796:234::-;1045:13;:11;:13::i;:::-;12919:41:::1;12955:4;12919:31;12937:12;12919:13;3536:12:::0;;;3448:108;12919:13:::1;:17:::0;::::1;:31::i;:::-;:35:::0;::::1;:41::i;:::-;12905:11;:55:::0;12983:39:::1;13017:4;12983:29;13001:10:::0;12983:13:::1;3536:12:::0;;;3448:108;12983:39:::1;12971:9;:51:::0;-1:-1:-1;;12796:234:0:o;4783:436::-;4876:4;301:10;4876:4;4959:25;301:10;4976:7;4959:9;:25::i;:::-;4932:52;;5023:15;5003:16;:35;;4995:85;;;;-1:-1:-1;;;4995:85:0;;6089:2:1;4995:85:0;;;6071:21:1;6128:2;6108:18;;;6101:30;6167:34;6147:18;;;6140:62;-1:-1:-1;;;6218:18:1;;;6211:35;6263:19;;4995:85:0;5887:401:1;4995:85:0;5116:60;5125:5;5132:7;5160:15;5141:16;:34;5116:8;:60::i;3699:193::-;3778:4;301:10;3834:28;301:10;3851:2;3855:6;3834:9;:28::i;12471:317::-;1045:13;:11;:13::i;:::-;12588:14:::1;12633:10:::0;12605:25:::1;12618:12:::0;12605:10;:25:::1;:::i;:::-;:38;;;;:::i;:::-;12588:55;;12672:2;12662:6;:12;;12654:54;;;::::0;-1:-1:-1;;;12654:54:0;;5731:2:1;12654:54:0::1;::::0;::::1;5713:21:1::0;5770:2;5750:18;;;5743:30;5809:31;5789:18;;;5782:59;5858:18;;12654:54:0::1;5529:353:1::0;12654:54:0::1;12729:51;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;12719:7:::1;:61:::0;;;;;;;;;;;;;12471:317::o;13190:185::-;1045:13;:11;:13::i;:::-;-1:-1:-1;;;;;13276:29:0;::::1;;::::0;;;:19:::1;:29;::::0;;;;;;;;:40;;-1:-1:-1;;13276:40:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13332:35;;1371:41:1;;;13332:35:0::1;::::0;1344:18:1;13332:35:0::1;;;;;;;13190:185:::0;;:::o;11693:180::-;1045:13;:11;:13::i;:::-;11754:11:::1;::::0;-1:-1:-1;;;11754:11:0;::::1;;;:20;11746:61;;;::::0;-1:-1:-1;;;11746:61:0;;6495:2:1;11746:61:0::1;::::0;::::1;6477:21:1::0;6534:2;6514:18;;;6507:30;6573;6553:18;;;6546:58;6621:18;;11746:61:0::1;6293:352:1::0;11746:61:0::1;11818:11;:18:::0;;-1:-1:-1;;;;11847:18:0;-1:-1:-1;;;11847:18:0;;;11693:180::o;3900:151::-;-1:-1:-1;;;;;4016:18:0;;;3989:7;4016:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3900:151::o;1432:201::-;1045:13;:11;:13::i;:::-;-1:-1:-1;;;;;1521:22:0;::::1;1513:73;;;::::0;-1:-1:-1;;;1513:73:0;;6852:2:1;1513:73:0::1;::::0;::::1;6834:21:1::0;6891:2;6871:18;;;6864:30;6930:34;6910:18;;;6903:62;-1:-1:-1;;;6981:18:1;;;6974:36;7027:19;;1513:73:0::1;6650:402:1::0;1513:73:0::1;1597:28;1616:8;1597:18;:28::i;:::-;1432:201:::0;:::o;12047:93::-;1045:13;:11;:13::i;:::-;12121:11:::1;::::0;;-1:-1:-1;;;;12106:26:0;::::1;-1:-1:-1::0;;;12121:11:0;;;::::1;;;12120:12;12106:26:::0;;::::1;;::::0;;12047:93::o;562:98::-;620:7;647:5;651:1;647;:5;:::i;:::-;640:12;562:98;-1:-1:-1;;;562:98:0:o;668:::-;726:7;753:5;757:1;753;:5;:::i;7280:346::-;-1:-1:-1;;;;;7382:19:0;;7374:68;;;;-1:-1:-1;;;7374:68:0;;7654:2:1;7374:68:0;;;7636:21:1;7693:2;7673:18;;;7666:30;7732:34;7712:18;;;7705:62;-1:-1:-1;;;7783:18:1;;;7776:34;7827:19;;7374:68:0;7452:400:1;7374:68:0;-1:-1:-1;;;;;7461:21:0;;7453:68;;;;-1:-1:-1;;;7453:68:0;;8059:2:1;7453:68:0;;;8041:21:1;8098:2;8078:18;;;8071:30;8137:34;8117:18;;;8110:62;-1:-1:-1;;;8188:18:1;;;8181:32;8230:19;;7453:68:0;7857:398:1;7453:68:0;-1:-1:-1;;;;;7534:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7586:32;;1803:25:1;;;7586:32:0;;1776:18:1;7586:32:0;;;;;;;7280:346;;;:::o;7634:419::-;7735:24;7762:25;7772:5;7779:7;7762:9;:25::i;:::-;7735:52;;-1:-1:-1;;7802:16:0;:37;7798:248;;7884:6;7864:16;:26;;7856:68;;;;-1:-1:-1;;;7856:68:0;;8462:2:1;7856:68:0;;;8444:21:1;8501:2;8481:18;;;8474:30;8540:31;8520:18;;;8513:59;8589:18;;7856:68:0;8260:353:1;7856:68:0;7968:51;7977:5;7984:7;8012:6;7993:16;:25;7968:8;:51::i;:::-;7724:329;7634:419;;;:::o;13521:2873::-;-1:-1:-1;;;;;13619:19:0;;13611:70;;;;-1:-1:-1;;;13611:70:0;;8820:2:1;13611:70:0;;;8802:21:1;8859:2;8839:18;;;8832:30;8898:34;8878:18;;;8871:62;-1:-1:-1;;;8949:18:1;;;8942:36;8995:19;;13611:70:0;8618:402:1;13611:70:0;-1:-1:-1;;;;;13700:17:0;;13692:66;;;;-1:-1:-1;;;13692:66:0;;9227:2:1;13692:66:0;;;9209:21:1;9266:2;9246:18;;;9239:30;9305:34;9285:18;;;9278:62;-1:-1:-1;;;9356:18:1;;;9349:34;9400:19;;13692:66:0;9025:400:1;13692:66:0;13786:1;13777:6;:10;13769:72;;;;-1:-1:-1;;;13769:72:0;;9632:2:1;13769:72:0;;;9614:21:1;9671:2;9651:18;;;9644:30;9710:34;9690:18;;;9683:62;-1:-1:-1;;;9761:18:1;;;9754:47;9818:19;;13769:72:0;9430:413:1;13769:72:0;1159:6;;-1:-1:-1;;;;;13858:15:0;;;1159:6;;13858:15;;;;:32;;-1:-1:-1;1159:6:0;;-1:-1:-1;;;;;13877:13:0;;;1159:6;;13877:13;;13858:32;:53;;;;-1:-1:-1;;;;;;13894:17:0;;;;13858:53;:74;;;;-1:-1:-1;;;;;;13915:17:0;;9316:6;13915:17;;13858:74;:87;;;;-1:-1:-1;13937:8:0;;-1:-1:-1;;;13937:8:0;;;;13936:9;13858:87;13854:1028;;;13966:11;;-1:-1:-1;;;13966:11:0;;;;:20;;13981:5;13966:20;13962:155;;-1:-1:-1;;;;;14015:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14044:23:0;;;;;;:19;:23;;;;;;;;14015:52;14007:94;;;;-1:-1:-1;;;14007:94:0;;10050:2:1;14007:94:0;;;10032:21:1;10089:2;10069:18;;;10062:30;10128:31;10108:18;;;10101:59;10177:18;;14007:94:0;9848:353:1;14007:94:0;14137:14;;-1:-1:-1;;;14137:14:0;;;;:22;;14155:4;14137:22;14133:738;;-1:-1:-1;;;;;14184:31:0;;;;;;:25;:31;;;;;;;;:62;;;;-1:-1:-1;;;;;;14220:26:0;;;;;;:22;:26;;;;;;;;14219:27;14184:62;14180:676;;;14289:11;;14279:6;:21;;14271:96;;;;-1:-1:-1;;;14271:96:0;;10408:2:1;14271:96:0;;;10390:21:1;10447:2;10427:18;;;10420:30;10486:34;10466:18;;;10459:62;10557:32;10537:18;;;10530:60;10607:19;;14271:96:0;10206:426:1;14271:96:0;14424:9;;-1:-1:-1;;;;;3665:18:0;;3638:7;3665:18;;;;;;;;;;;14398:22;;:6;:22;:::i;:::-;:35;;14390:75;;;;-1:-1:-1;;;14390:75:0;;10839:2:1;14390:75:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:29;10897:18;;;10890:57;10964:18;;14390:75:0;10637:351:1;14390:75:0;14180:676;;;-1:-1:-1;;;;;14495:29:0;;;;;;:25;:29;;;;;;;;:62;;;;-1:-1:-1;;;;;;14529:28:0;;;;;;:22;:28;;;;;;;;14528:29;14495:62;14491:365;;;14600:11;;14590:6;:21;;14582:97;;;;-1:-1:-1;;;14582:97:0;;11195:2:1;14582:97:0;;;11177:21:1;11234:2;11214:18;;;11207:30;11273:34;11253:18;;;11246:62;11344:33;11324:18;;;11317:61;11395:19;;14582:97:0;10993:427:1;14491:365:0;-1:-1:-1;;;;;14710:26:0;;;;;;:22;:26;;;;;;;;14705:151;;14795:9;;-1:-1:-1;;;;;3665:18:0;;3638:7;3665:18;;;;;;;;;;;14769:22;;:6;:22;:::i;:::-;:35;;14761:75;;;;-1:-1:-1;;;14761:75:0;;11627:2:1;14761:75:0;;;11609:21:1;11666:2;11646:18;;;11639:30;11705:29;11685:18;;;11678:57;11752:18;;14761:75:0;11425:351:1;14761:75:0;14937:18;;14927:4;14894:12;3665:18;;;;;;;;;;;14970:11;;-1:-1:-1;;14909:46:0;;-1:-1:-1;;;14970:11:0;;;;:22;;;;;14985:7;14970:22;:35;;;;-1:-1:-1;14997:8:0;;-1:-1:-1;;;14997:8:0;;;;14996:9;14970:35;:71;;;;-1:-1:-1;;;;;;15010:31:0;;;;;;:25;:31;;;;;;;;15009:32;14970:71;:101;;;;-1:-1:-1;;;;;;15046:25:0;;;;;;:19;:25;;;;;;;;15045:26;14970:101;:129;;;;-1:-1:-1;;;;;;15076:23:0;;;;;;:19;:23;;;;;;;;15075:24;14970:129;14966:233;;;15116:8;:15;;-1:-1:-1;;;;15116:15:0;-1:-1:-1;;;15116:15:0;;;15146:10;:8;:10::i;:::-;15171:8;:16;;-1:-1:-1;;;;15171:16:0;;;14966:233;15227:8;;-1:-1:-1;;;;;15250:25:0;;15211:12;15250:25;;;:19;:25;;;;;;15227:8;-1:-1:-1;;;15227:8:0;;;;;15226:9;;15250:25;;:52;;-1:-1:-1;;;;;;15279:23:0;;;;;;:19;:23;;;;;;;;15250:52;15246:100;;;-1:-1:-1;15329:5:0;15246:100;15358:12;15389:7;15385:958;;;-1:-1:-1;;;;;15417:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;15450:13:0;;:17;;15417:50;15413:783;;;15506:13;;15495:34;;15525:3;;15495:25;;:6;;:10;:25::i;:34::-;15599:13;;15578:17;;15488:41;;-1:-1:-1;15599:13:0;15571:24;;15488:41;15571:24;:::i;:::-;15570:42;;;;:::i;:::-;15548:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;15682:13:0;;:7;15661:17;15654:24;;:4;:24;:::i;:::-;15653:42;;;;:::i;:::-;15631:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;15769:13:0;;15746:19;;15739:26;;:4;:26;:::i;:::-;15738:44;;;;:::i;:::-;15714:20;;:68;;;;;;;:::i;:::-;;;;-1:-1:-1;15413:783:0;;-1:-1:-1;15413:783:0;;-1:-1:-1;;;;;15821:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;15856:12:0;;:16;;15821:51;15817:379;;;15911:12;;15900:33;;15929:3;;15900:24;;:6;;:10;:24::i;:33::-;16002:12;;15982:16;;15893:40;;-1:-1:-1;16002:12:0;15975:23;;15893:40;15975:23;:::i;:::-;15974:40;;;;:::i;:::-;15952:18;;:62;;;;;;;:::i;:::-;;;;-1:-1:-1;;16083:12:0;;:6;16063:16;16056:23;;:4;:23;:::i;:::-;16055:40;;;;:::i;:::-;16033:18;;:62;;;;;;;:::i;:::-;;;;-1:-1:-1;;16168:12:0;;16146:18;;16139:25;;:4;:25;:::i;:::-;16138:42;;;;:::i;:::-;16114:20;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;15817:379:0;16216:8;;16212:91;;16245:42;16261:4;16275;16282;16245:15;:42::i;:::-;16317:14;16327:4;16317:14;;:::i;:::-;;;15385:958;16353:33;16369:4;16375:2;16379:6;16353:15;:33::i;:::-;13600:2794;;;13521:2873;;;:::o;1181:132::-;1159:6;;-1:-1:-1;;;;;1159:6:0;301:10;1245:23;1237:68;;;;-1:-1:-1;;;1237:68:0;;12116:2:1;1237:68:0;;;12098:21:1;;;12135:18;;;12128:30;12194:34;12174:18;;;12167:62;12246:18;;1237:68:0;11914:356:1;1641:191:0;1734:6;;;-1:-1:-1;;;;;1751:17:0;;;-1:-1:-1;;;;;;1751:17:0;;;;;;;1784:40;;1734:6;;;1751:17;1734:6;;1784:40;;1715:16;;1784:40;1704:128;1641:191;:::o;17255:1661::-;17338:4;17294:23;3665:18;;;;;;;;;;;17294:50;;17355:25;17425:20;;17404:18;;17383;;:39;;;;:::i;:::-;:62;;;;:::i;:::-;17355:90;-1:-1:-1;17456:12:0;17485:20;;;:46;;-1:-1:-1;17509:22:0;;17485:46;17481:85;;;17548:7;;;17255:1661::o;17481:85::-;17600:18;;:23;;17621:2;17600:23;:::i;:::-;17582:15;:41;17578:115;;;17658:18;;:23;;17679:2;17658:23;:::i;:::-;17640:41;;17578:115;17705:23;17792:1;17772:17;17750:18;;17732:15;:36;;;;:::i;:::-;17731:58;;;;:::i;:::-;:62;;;;:::i;:::-;17705:88;-1:-1:-1;17804:26:0;17833:36;:15;17705:88;17833:19;:36::i;:::-;17804:65;-1:-1:-1;17910:21:0;17944:36;17804:65;17944:16;:36::i;:::-;17993:18;18014:44;:21;18040:17;18014:25;:44::i;:::-;17993:65;;18071:23;18097:57;18136:17;18097:34;18112:18;;18097:10;:14;;:34;;;;:::i;:57::-;18071:83;;18165:25;18193:59;18234:17;18193:36;18208:20;;18193:10;:14;;:36;;;;:::i;:59::-;18165:87;-1:-1:-1;18265:23:0;18165:87;18291:28;18304:15;18291:10;:28;:::i;:::-;:48;;;;:::i;:::-;18373:1;18352:18;:22;;;18385:18;:22;;;18418:20;:24;18265:74;-1:-1:-1;18459:19:0;;;;;:42;;;18500:1;18482:15;:19;18459:42;18455:280;;;18518:46;18531:15;18548;18518:12;:46::i;:::-;18690:18;;18584:139;;;12477:25:1;;;12533:2;12518:18;;12511:34;;;12561:18;;;12554:34;;;;18584:139:0;;;;;;12465:2:1;18584:139:0;;;18455:280;18769:15;;18761:57;;-1:-1:-1;;;;;18769:15:0;;;;18798;;18761:57;;;;18798:15;18769;18761:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18851:17:0;;18843:65;;18747:71;;-1:-1:-1;;;;;;18851:17:0;;18882:21;;18843:65;;;;18882:21;18851:17;18843:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;17255:1661:0:o;5227:806::-;-1:-1:-1;;;;;5324:18:0;;5316:68;;;;-1:-1:-1;;;5316:68:0;;13011:2:1;5316:68:0;;;12993:21:1;13050:2;13030:18;;;13023:30;13089:34;13069:18;;;13062:62;-1:-1:-1;;;13140:18:1;;;13133:35;13185:19;;5316:68:0;12809:401:1;5316:68:0;-1:-1:-1;;;;;5403:16:0;;5395:64;;;;-1:-1:-1;;;5395:64:0;;13417:2:1;5395:64:0;;;13399:21:1;13456:2;13436:18;;;13429:30;13495:34;13475:18;;;13468:62;-1:-1:-1;;;13546:18:1;;;13539:33;13589:19;;5395:64:0;13215:399:1;5395:64:0;-1:-1:-1;;;;;5545:15:0;;5523:19;5545:15;;;;;;;;;;;5579:21;;;;5571:72;;;;-1:-1:-1;;;5571:72:0;;13821:2:1;5571:72:0;;;13803:21:1;13860:2;13840:18;;;13833:30;13899:34;13879:18;;;13872:62;-1:-1:-1;;;13950:18:1;;;13943:36;13996:19;;5571:72:0;13619:402:1;5571:72:0;-1:-1:-1;;;;;5679:15:0;;;:9;:15;;;;;;;;;;;5697:20;;;5679:38;;5897:13;;;;;;;;;;:23;;;;;;5949:26;;1803:25:1;;;5897:13:0;;5949:26;;1776:18:1;5949:26:0;;;;;;;5988:37;8061:91;456:98;514:7;541:5;545:1;541;:5;:::i;16402:473::-;16492:16;;;16506:1;16492:16;;;;;;;;16468:21;;16492:16;;;;;;;;;;-1:-1:-1;16492:16:0;16468:40;;16537:4;16519;16524:1;16519:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16519:23:0;;;-1:-1:-1;;;;;16519:23:0;;;;;16563:15;-1:-1:-1;;;;;16563:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16553:4;16558:1;16553:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;16553:32:0;;;-1:-1:-1;;;;;16553:32:0;;;;;16598:62;16615:4;16630:15;16648:11;16598:8;:62::i;:::-;16671:196;;-1:-1:-1;;;16671:196:0;;-1:-1:-1;;;;;16671:15:0;:66;;;;:196;;16752:11;;16778:1;;16794:4;;16821;;16841:15;;16671:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16883:364;16964:62;16981:4;16996:15;17014:11;16964:8;:62::i;:::-;17037:202;;-1:-1:-1;;;17037:202:0;;17109:4;17037:202;;;15872:34:1;15922:18;;;15915:34;;;17155:1:0;15965:18:1;;;15958:34;;;16008:18;;;16001:34;9316:6:0;16051:19:1;;;16044:44;17213:15:0;16104:19:1;;;16097:35;17037:15:0;-1:-1:-1;;;;;17037:31:0;;;;17076:9;;15806:19:1;;17037:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16883:364;;:::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;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2885:416::-;2950:6;2958;3011:2;2999:9;2990:7;2986:23;2982:32;2979:52;;;3027:1;3024;3017:12;2979:52;3066:9;3053:23;3085:31;3110:5;3085:31;:::i;:::-;3135:5;-1:-1:-1;3192:2:1;3177:18;;3164:32;3234:15;;3227:23;3215:36;;3205:64;;3265:1;3262;3255:12;3205:64;3288:7;3278:17;;;2885:416;;;;;:::o;3306:247::-;3365:6;3418:2;3406:9;3397:7;3393:23;3389:32;3386:52;;;3434:1;3431;3424:12;3386:52;3473:9;3460:23;3492:31;3517:5;3492:31;:::i;3558:316::-;3635:6;3643;3651;3704:2;3692:9;3683:7;3679:23;3675:32;3672:52;;;3720:1;3717;3710:12;3672:52;-1:-1:-1;;3743:23:1;;;3813:2;3798:18;;3785:32;;-1:-1:-1;3864:2:1;3849:18;;;3836:32;;3558:316;-1:-1:-1;3558:316:1:o;3879:248::-;3947:6;3955;4008:2;3996:9;3987:7;3983:23;3979:32;3976:52;;;4024:1;4021;4014:12;3976:52;-1:-1:-1;;4047:23:1;;;4117:2;4102:18;;;4089:32;;-1:-1:-1;3879:248:1:o;4132:388::-;4200:6;4208;4261:2;4249:9;4240:7;4236:23;4232:32;4229:52;;;4277:1;4274;4267:12;4229:52;4316:9;4303:23;4335:31;4360:5;4335:31;:::i;:::-;4385:5;-1:-1:-1;4442:2:1;4427:18;;4414:32;4455:33;4414:32;4455:33;:::i;4525:380::-;4604:1;4600:12;;;;4647;;;4668:61;;4722:4;4714:6;4710:17;4700:27;;4668:61;4775:2;4767:6;4764:14;4744:18;4741:38;4738:161;;4821:10;4816:3;4812:20;4809:1;4802:31;4856:4;4853:1;4846:15;4884:4;4881:1;4874:15;4738:161;;4525:380;;;:::o;4910:127::-;4971:10;4966:3;4962:20;4959:1;4952:31;5002:4;4999:1;4992:15;5026:4;5023:1;5016:15;5042:125;5107:9;;;5128:10;;;5125:36;;;5141:18;;:::i;7057:168::-;7130:9;;;7161;;7178:15;;;7172:22;;7158:37;7148:71;;7199:18;;:::i;7230:217::-;7270:1;7296;7286:132;;7340:10;7335:3;7331:20;7328:1;7321:31;7375:4;7372:1;7365:15;7403:4;7400:1;7393:15;7286:132;-1:-1:-1;7432:9:1;;7230:217::o;11781:128::-;11848:9;;;11869:11;;;11866:37;;;11883:18;;:::i;14158:127::-;14219:10;14214:3;14210:20;14207:1;14200:31;14250:4;14247:1;14240:15;14274:4;14271:1;14264:15;14290:251;14360:6;14413:2;14401:9;14392:7;14388:23;14384:32;14381:52;;;14429:1;14426;14419:12;14381:52;14461:9;14455:16;14480:31;14505:5;14480:31;:::i;14546:980::-;14808:4;14856:3;14845:9;14841:19;14887:6;14876:9;14869:25;14913:2;14951:6;14946:2;14935:9;14931:18;14924:34;14994:3;14989:2;14978:9;14974:18;14967:31;15018:6;15053;15047:13;15084:6;15076;15069:22;15122:3;15111:9;15107:19;15100:26;;15161:2;15153:6;15149:15;15135:29;;15182:1;15192:195;15206:6;15203:1;15200:13;15192:195;;;15271:13;;-1:-1:-1;;;;;15267:39:1;15255:52;;15362:15;;;;15327:12;;;;15303:1;15221:9;15192:195;;;-1:-1:-1;;;;;;;15443:32:1;;;;15438:2;15423:18;;15416:60;-1:-1:-1;;;15507:3:1;15492:19;15485:35;15404:3;14546:980;-1:-1:-1;;;14546:980:1:o;16143:306::-;16231:6;16239;16247;16300:2;16288:9;16279:7;16275:23;16271:32;16268:52;;;16316:1;16313;16306:12;16268:52;16345:9;16339:16;16329:26;;16395:2;16384:9;16380:18;16374:25;16364:35;;16439:2;16428:9;16424:18;16418:25;16408:35;;16143:306;;;;;:::o

Swarm Source

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