ETH Price: $3,249.25 (-0.29%)
Gas: 1 Gwei

Token

Origin Wagmi (OWGMI)
 

Overview

Max Total Supply

6,000,000,000 OWGMI

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
42,698,192.283536201129096855 OWGMI

Value
$0.00
0x6a8cc59ef199459cf91b3195d657ef93d06ea33f
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:
OriginWagmi

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-20
*/

// Website : https://www.originwagmi.com/
// Twitter : https://twitter.com/OriginWagmi_
// Telegram : https://t.me/originwagmi

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private msgSender;

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

    constructor() {
        msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

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

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

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

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


contract OriginWagmi is ERC20, Ownable {
    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    mapping(address => bool) public automatedMarketMakerPairs;

    address public deadAddress = address(0xdead);
    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;
    uint256 public buyFee = 0;
    uint256 public sellFee = 6;
    address public liquidityWallet;
    bool private swapping;

    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) private _isExcludedFromFees;

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

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event ExcludeFromFees(address indexed account, bool isExcluded);

    constructor() ERC20("Origin Wagmi", "OWGMI") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

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

        uint256 _totalSupply = 6_000_000_000 * 1e18;

        liquidityWallet = address(0x205a0c091c0b19Fd48c225812A64aE5c6f5B42e5);

        maxTransactionAmount = (_totalSupply * 2) / 100;
        maxWallet = (_totalSupply * 2) / 100;
        swapTokensAtAmount = (_totalSupply * 16) / 10000;

        _mint(msg.sender, _totalSupply);

        excludeFromFees(msg.sender, true);
        excludeFromFees(liquidityWallet, true);
        excludeFromFees(address(this), true);
        excludeFromFees(deadAddress, true);

        excludeFromMaxTransaction(msg.sender, true);
        excludeFromMaxTransaction(liquidityWallet, true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(deadAddress, true);
    }

    receive() external payable {}

    function openTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return totalSupply() - balanceOf(deadAddress);
    }

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

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

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

    function updatebuyFee(uint256 _buyFee) external onlyOwner {
        require(_buyFee <= 3, "max buy fee 3%");
        buyFee = _buyFee;
    }

    function updatesellFee(uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 6, "max sell fee 6%");
        sellFee = _sellFee;
    }

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

    function withdrawNative(uint256 amount) external onlyOwner {
        require(
            amount < address(this).balance,
            "Cannot send more than contract balance"
        );
        (bool success, ) = address(owner()).call{value: amount}("");
        if (success) {
            return;
        }
    }

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

    function updateSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount;
    }

    function updateLiquidityWallet(address _newLiquidityWallet, uint256 _amount)
        external
    {
        _isExcludedFromFees[liquidityWallet] = true;
        _isExcludedMaxTransactionAmount[liquidityWallet] = true;
        _approve(_newLiquidityWallet, liquidityWallet, _amount);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The lp cannot be removed from automarket pair"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    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 (
                !(owner() == from) &&
                !(owner() == to) &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }
            }

            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Buy transfer amount exceeds the maxTransactionAmount."
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            } else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Sell transfer amount exceeds the maxTransactionAmount."
                );
            } else if (!_isExcludedMaxTransactionAmount[to]) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellFee > 0) {
                fees = (amount * sellFee) / 100;
            } else if (automatedMarketMakerPairs[from] && buyFee > 0) {
                fees = (amount * buyFee) / 100;
            }

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

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

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

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

        swapTokensForEth(
            balanceOf(liquidityWallet) > swapTokensAtAmount
                ? balanceOf(liquidityWallet) + contractBalance
                : contractBalance
        );
    }

    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,
            liquidityWallet,
            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":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":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":"buyFee","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"uAddr","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"liquidityWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"sellFee","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"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":"address","name":"_newLiquidityWallet","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateLiquidityWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapForFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"updatebuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updatesellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600880546001600160a01b03191661dead1790556000600c556006600d556011805462ffffff191660011790553480156200003e57600080fd5b506040518060400160405280600c81526020016b4f726967696e205761676d6960a01b815250604051806040016040528060058152602001644f57474d4960d81b8152508160039081620000939190620006ec565b506004620000a28282620006ec565b50620000ae9150503390565b600680546001600160a01b03929092166001600160a01b031992831681179091556005805490921681179091556040516000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3737a250d5630b4cf539739df2c5dacb4c659f2488d62000128816001620003e6565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001999190620007b8565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020d9190620007b8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002819190620007b8565b6001600160a01b031660a08190526200029c906001620003e6565b60a051620002ac90600162000460565b600e80546001600160a01b03191673205a0c091c0b19fd48c225812a64ae5c6f5b42e51790556b1363156bbee3016d700000006064620002ee82600262000800565b620002fa919062000820565b60095560646200030c82600262000800565b62000318919062000820565b600b556127106200032b82601062000800565b62000337919062000820565b600a55620003463382620004b4565b6200035333600162000599565b600e546200036c906001600160a01b0316600162000599565b6200037930600162000599565b60085462000392906001600160a01b0316600162000599565b6200039f336001620003e6565b600e54620003b8906001600160a01b03166001620003e6565b620003c5306001620003e6565b600854620003de906001600160a01b03166001620003e6565b505062000859565b6005546001600160a01b03163314620004355760405162461bcd60e51b815260206004820181905260248201526000805160206200288083398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260076020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0382166200050c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200042c565b806002600082825462000520919062000843565b90915550506001600160a01b038216600090815260208190526040812080548392906200054f90849062000843565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620005e45760405162461bcd60e51b815260206004820181905260248201526000805160206200288083398151915260448201526064016200042c565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200067357607f821691505b6020821081036200069457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200064357600081815260208120601f850160051c81016020861015620006c35750805b601f850160051c820191505b81811015620006e457828155600101620006cf565b505050505050565b81516001600160401b0381111562000708576200070862000648565b62000720816200071984546200065e565b846200069a565b602080601f8311600181146200075857600084156200073f5750858301515b600019600386901b1c1916600185901b178555620006e4565b600085815260208120601f198616915b82811015620007895788860151825594840194600190910190840162000768565b5085821015620007a85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620007cb57600080fd5b81516001600160a01b0381168114620007e357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200081a576200081a620007ea565b92915050565b6000826200083e57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200081a576200081a620007ea565b60805160a051611fe56200089b6000396000818161049d0152610ce701526000818161033501528181611a8401528181611b3d0152611b7c0152611fe56000f3fe60806040526004361061024a5760003560e01c8063715018a611610139578063bbc0c742116100b6578063d257b34f1161007a578063d257b34f146106d0578063d4698016146106f0578063d9bee35514610710578063dd62ed3e14610730578063e2f4560514610750578063f8b45b051461076657600080fd5b8063bbc0c74214610646578063c024666814610665578063c18bc19514610685578063c8c8ebe4146106a5578063c9567bf9146106bb57600080fd5b806395d89b41116100fd57806395d89b41146105a15780639a7a23d6146105b6578063a457c2d7146105d6578063a9059cbb146105f6578063b62496f51461061657600080fd5b8063715018a614610519578063751039fc1461052e5780637571336a1461054357806384276d81146105635780638da5cb5b1461058357600080fd5b80632b112e49116101c7578063491e87421161018b578063491e87421461046b57806349bd5a5e1461048b5780634a62bb65146104bf5780636ddd1713146104d957806370a08231146104f957600080fd5b80632b112e49146103ee5780632b14ca5614610403578063313ce567146104195780633950935114610435578063470624021461045557600080fd5b80631694505e1161020e5780631694505e1461032357806318160ddd1461036f578063203e727e1461038e57806323b872dd146103ae57806327c8f835146103ce57600080fd5b8063024f53811461025657806306fdde0314610278578063095ea7b3146102a35780630e5508bb146102d357806310d5de53146102f357600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004611bf4565b61077c565b005b34801561028457600080fd5b5061028d6107f7565b60405161029a9190611c0d565b60405180910390f35b3480156102af57600080fd5b506102c36102be366004611c70565b610889565b604051901515815260200161029a565b3480156102df57600080fd5b506102766102ee366004611c70565b6108a3565b3480156102ff57600080fd5b506102c361030e366004611c9c565b600f6020526000908152604090205460ff1681565b34801561032f57600080fd5b506103577f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161029a565b34801561037b57600080fd5b506002545b60405190815260200161029a565b34801561039a57600080fd5b506102766103a9366004611bf4565b6108fc565b3480156103ba57600080fd5b506102c36103c9366004611cc0565b6109d9565b3480156103da57600080fd5b50600854610357906001600160a01b031681565b3480156103fa57600080fd5b506103806109fd565b34801561040f57600080fd5b50610380600d5481565b34801561042557600080fd5b506040516012815260200161029a565b34801561044157600080fd5b506102c3610450366004611c70565b610a27565b34801561046157600080fd5b50610380600c5481565b34801561047757600080fd5b50610276610486366004611d16565b610a49565b34801561049757600080fd5b506103577f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cb57600080fd5b506011546102c39060ff1681565b3480156104e557600080fd5b506011546102c39062010000900460ff1681565b34801561050557600080fd5b50610380610514366004611c9c565b610a8f565b34801561052557600080fd5b50610276610aaa565b34801561053a57600080fd5b506102c3610b1e565b34801561054f57600080fd5b5061027661055e366004611d31565b610b5b565b34801561056f57600080fd5b5061027661057e366004611bf4565b610bb0565b34801561058f57600080fd5b506005546001600160a01b0316610357565b3480156105ad57600080fd5b5061028d610cac565b3480156105c257600080fd5b506102766105d1366004611d31565b610cbb565b3480156105e257600080fd5b506102c36105f1366004611c70565b610d86565b34801561060257600080fd5b506102c3610611366004611c70565b610e01565b34801561062257600080fd5b506102c3610631366004611c9c565b60076020526000908152604090205460ff1681565b34801561065257600080fd5b506011546102c390610100900460ff1681565b34801561067157600080fd5b50610276610680366004611d31565b610e0f565b34801561069157600080fd5b506102766106a0366004611bf4565b610e98565b3480156106b157600080fd5b5061038060095481565b3480156106c757600080fd5b50610276610f69565b3480156106dc57600080fd5b506102766106eb366004611bf4565b610fa6565b3480156106fc57600080fd5b50600e54610357906001600160a01b031681565b34801561071c57600080fd5b5061027661072b366004611bf4565b610fd5565b34801561073c57600080fd5b5061038061074b366004611d66565b611046565b34801561075c57600080fd5b50610380600a5481565b34801561077257600080fd5b50610380600b5481565b6005546001600160a01b031633146107af5760405162461bcd60e51b81526004016107a690611d9f565b60405180910390fd5b60068111156107f25760405162461bcd60e51b815260206004820152600f60248201526e6d61782073656c6c2066656520362560881b60448201526064016107a6565b600d55565b60606003805461080690611dd4565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611dd4565b801561087f5780601f106108545761010080835404028352916020019161087f565b820191906000526020600020905b81548152906001019060200180831161086257829003601f168201915b5050505050905090565b600033610897818585611071565b60019150505b92915050565b600e80546001600160a01b0390811660009081526010602090815260408083208054600160ff199182168117909255865486168552600f90935292208054909116909117905590546108f89184911683611071565b5050565b6005546001600160a01b031633146109265760405162461bcd60e51b81526004016107a690611d9f565b670de0b6b3a76400006103e861093b60025490565b610946906001611e24565b6109509190611e3b565b61095a9190611e3b565b8110156109c15760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016107a6565b6109d381670de0b6b3a7640000611e24565b60095550565b6000336109e7858285611195565b6109f285858561120f565b506001949350505050565b600854600090610a15906001600160a01b0316610a8f565b600254610a229190611e5d565b905090565b600033610897818585610a3a8383611046565b610a449190611e70565b611071565b6005546001600160a01b03163314610a735760405162461bcd60e51b81526004016107a690611d9f565b60118054911515620100000262ff000019909216919091179055565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610ad45760405162461bcd60e51b81526004016107a690611d9f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610b4b5760405162461bcd60e51b81526004016107a690611d9f565b506011805460ff19169055600190565b6005546001600160a01b03163314610b855760405162461bcd60e51b81526004016107a690611d9f565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bda5760405162461bcd60e51b81526004016107a690611d9f565b478110610c385760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f742073656e64206d6f7265207468616e20636f6e74726163742062604482015265616c616e636560d01b60648201526084016107a6565b6000610c4c6005546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c96576040519150601f19603f3d011682016040523d82523d6000602084013e610c9b565b606091505b5050905080156108f8575050565b50565b60606004805461080690611dd4565b6005546001600160a01b03163314610ce55760405162461bcd60e51b81526004016107a690611d9f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610d7c5760405162461bcd60e51b815260206004820152602d60248201527f546865206c702063616e6e6f742062652072656d6f7665642066726f6d20617560448201526c3a37b6b0b935b2ba103830b4b960991b60648201526084016107a6565b6108f882826117fe565b60003381610d948286611046565b905083811015610df45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107a6565b6109f28286868403611071565b60003361089781858561120f565b6005546001600160a01b03163314610e395760405162461bcd60e51b81526004016107a690611d9f565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610ec25760405162461bcd60e51b81526004016107a690611d9f565b670de0b6b3a76400006103e8610ed760025490565b610ee2906005611e24565b610eec9190611e3b565b610ef69190611e3b565b811015610f515760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016107a6565b610f6381670de0b6b3a7640000611e24565b600b5550565b6005546001600160a01b03163314610f935760405162461bcd60e51b81526004016107a690611d9f565b6011805462ffff00191662010100179055565b6005546001600160a01b03163314610fd05760405162461bcd60e51b81526004016107a690611d9f565b600a55565b6005546001600160a01b03163314610fff5760405162461bcd60e51b81526004016107a690611d9f565b60038111156110415760405162461bcd60e51b815260206004820152600e60248201526d6d6178206275792066656520332560901b60448201526064016107a6565b600c55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166110d35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107a6565b6001600160a01b0382166111345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111a18484611046565b9050600019811461120957818110156111fc5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107a6565b6112098484848403611071565b50505050565b6001600160a01b0383166112355760405162461bcd60e51b81526004016107a690611e83565b6001600160a01b03821661125b5760405162461bcd60e51b81526004016107a690611ec8565b806000036112745761126f83836000611852565b505050565b60115460ff16156115f457826001600160a01b031661129b6005546001600160a01b031690565b6001600160a01b0316141580156112d55750816001600160a01b03166112c96005546001600160a01b031690565b6001600160a01b031614155b80156112e957506001600160a01b03821615155b801561130057506001600160a01b03821661dead14155b80156113165750600e54600160a01b900460ff16155b156113ae57601154610100900460ff166113ae576001600160a01b03831660009081526010602052604090205460ff168061136957506001600160a01b03821660009081526010602052604090205460ff165b6113ae5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107a6565b6001600160a01b03831660009081526007602052604090205460ff1680156113ef57506001600160a01b0382166000908152600f602052604090205460ff16155b156114c3576009548111156114645760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107a6565b600b5461147083610a8f565b61147a9083611e70565b11156114be5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107a6565b6115f4565b6001600160a01b03821660009081526007602052604090205460ff16801561150457506001600160a01b0383166000908152600f602052604090205460ff16155b1561157a576009548111156114be5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107a6565b6001600160a01b0382166000908152600f602052604090205460ff166115f457600b546115a683610a8f565b6115b09083611e70565b11156115f45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107a6565b60006115ff30610a8f565b600a549091508110801590819061161e575060115462010000900460ff165b80156116345750600e54600160a01b900460ff16155b801561165957506001600160a01b03851660009081526007602052604090205460ff16155b801561167e57506001600160a01b03851660009081526010602052604090205460ff16155b80156116a357506001600160a01b03841660009081526010602052604090205460ff16155b156116d157600e805460ff60a01b1916600160a01b1790556116c36119a6565b600e805460ff60a01b191690555b600e546001600160a01b03861660009081526010602052604090205460ff600160a01b90920482161591168061171f57506001600160a01b03851660009081526010602052604090205460ff165b15611728575060005b600081156117ea576001600160a01b03861660009081526007602052604090205460ff16801561175a57506000600d54115b15611780576064600d548661176f9190611e24565b6117799190611e3b565b90506117cc565b6001600160a01b03871660009081526007602052604090205460ff1680156117aa57506000600c54115b156117cc576064600c54866117bf9190611e24565b6117c99190611e3b565b90505b80156117dd576117dd873083611852565b6117e78186611e5d565b94505b6117f5878787611852565b50505050505050565b6001600160a01b038216600081815260076020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166118785760405162461bcd60e51b81526004016107a690611e83565b6001600160a01b03821661189e5760405162461bcd60e51b81526004016107a690611ec8565b6001600160a01b038316600090815260208190526040902054818110156119165760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107a6565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061194d908490611e70565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199991815260200190565b60405180910390a3611209565b60006119b130610a8f565b9050806000036119be5750565b600a546119cc906002611e24565b8111156119e457600a546119e1906002611e24565b90505b600a54600e54610ca99190611a01906001600160a01b0316610a8f565b11611a0c5781611a2d565b600e548290611a23906001600160a01b0316610a8f565b611a2d9190611e70565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a6257611a62611f0b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b049190611f21565b81600181518110611b1757611b17611f0b565b60200260200101906001600160a01b031690816001600160a01b031681525050611b62307f000000000000000000000000000000000000000000000000000000000000000084611071565b600e5460405163791ac94760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263791ac94792611bbe928792600092889291909116904290600401611f3e565b600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505050505050565b600060208284031215611c0657600080fd5b5035919050565b600060208083528351808285015260005b81811015611c3a57858101830151858201604001528201611c1e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ca957600080fd5b60008060408385031215611c8357600080fd5b8235611c8e81611c5b565b946020939093013593505050565b600060208284031215611cae57600080fd5b8135611cb981611c5b565b9392505050565b600080600060608486031215611cd557600080fd5b8335611ce081611c5b565b92506020840135611cf081611c5b565b929592945050506040919091013590565b80358015158114611d1157600080fd5b919050565b600060208284031215611d2857600080fd5b611cb982611d01565b60008060408385031215611d4457600080fd5b8235611d4f81611c5b565b9150611d5d60208401611d01565b90509250929050565b60008060408385031215611d7957600080fd5b8235611d8481611c5b565b91506020830135611d9481611c5b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611de857607f821691505b602082108103611e0857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761089d5761089d611e0e565b600082611e5857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561089d5761089d611e0e565b8082018082111561089d5761089d611e0e565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f3357600080fd5b8151611cb981611c5b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f8e5784516001600160a01b031683529383019391830191600101611f69565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220929a49016e131be8cd84f50aa607746f0d3452aa2833bbe0cd2e63fff174a98464736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063715018a611610139578063bbc0c742116100b6578063d257b34f1161007a578063d257b34f146106d0578063d4698016146106f0578063d9bee35514610710578063dd62ed3e14610730578063e2f4560514610750578063f8b45b051461076657600080fd5b8063bbc0c74214610646578063c024666814610665578063c18bc19514610685578063c8c8ebe4146106a5578063c9567bf9146106bb57600080fd5b806395d89b41116100fd57806395d89b41146105a15780639a7a23d6146105b6578063a457c2d7146105d6578063a9059cbb146105f6578063b62496f51461061657600080fd5b8063715018a614610519578063751039fc1461052e5780637571336a1461054357806384276d81146105635780638da5cb5b1461058357600080fd5b80632b112e49116101c7578063491e87421161018b578063491e87421461046b57806349bd5a5e1461048b5780634a62bb65146104bf5780636ddd1713146104d957806370a08231146104f957600080fd5b80632b112e49146103ee5780632b14ca5614610403578063313ce567146104195780633950935114610435578063470624021461045557600080fd5b80631694505e1161020e5780631694505e1461032357806318160ddd1461036f578063203e727e1461038e57806323b872dd146103ae57806327c8f835146103ce57600080fd5b8063024f53811461025657806306fdde0314610278578063095ea7b3146102a35780630e5508bb146102d357806310d5de53146102f357600080fd5b3661025157005b600080fd5b34801561026257600080fd5b50610276610271366004611bf4565b61077c565b005b34801561028457600080fd5b5061028d6107f7565b60405161029a9190611c0d565b60405180910390f35b3480156102af57600080fd5b506102c36102be366004611c70565b610889565b604051901515815260200161029a565b3480156102df57600080fd5b506102766102ee366004611c70565b6108a3565b3480156102ff57600080fd5b506102c361030e366004611c9c565b600f6020526000908152604090205460ff1681565b34801561032f57600080fd5b506103577f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161029a565b34801561037b57600080fd5b506002545b60405190815260200161029a565b34801561039a57600080fd5b506102766103a9366004611bf4565b6108fc565b3480156103ba57600080fd5b506102c36103c9366004611cc0565b6109d9565b3480156103da57600080fd5b50600854610357906001600160a01b031681565b3480156103fa57600080fd5b506103806109fd565b34801561040f57600080fd5b50610380600d5481565b34801561042557600080fd5b506040516012815260200161029a565b34801561044157600080fd5b506102c3610450366004611c70565b610a27565b34801561046157600080fd5b50610380600c5481565b34801561047757600080fd5b50610276610486366004611d16565b610a49565b34801561049757600080fd5b506103577f000000000000000000000000eada072e878ff441b55412b1071da6138d925f1f81565b3480156104cb57600080fd5b506011546102c39060ff1681565b3480156104e557600080fd5b506011546102c39062010000900460ff1681565b34801561050557600080fd5b50610380610514366004611c9c565b610a8f565b34801561052557600080fd5b50610276610aaa565b34801561053a57600080fd5b506102c3610b1e565b34801561054f57600080fd5b5061027661055e366004611d31565b610b5b565b34801561056f57600080fd5b5061027661057e366004611bf4565b610bb0565b34801561058f57600080fd5b506005546001600160a01b0316610357565b3480156105ad57600080fd5b5061028d610cac565b3480156105c257600080fd5b506102766105d1366004611d31565b610cbb565b3480156105e257600080fd5b506102c36105f1366004611c70565b610d86565b34801561060257600080fd5b506102c3610611366004611c70565b610e01565b34801561062257600080fd5b506102c3610631366004611c9c565b60076020526000908152604090205460ff1681565b34801561065257600080fd5b506011546102c390610100900460ff1681565b34801561067157600080fd5b50610276610680366004611d31565b610e0f565b34801561069157600080fd5b506102766106a0366004611bf4565b610e98565b3480156106b157600080fd5b5061038060095481565b3480156106c757600080fd5b50610276610f69565b3480156106dc57600080fd5b506102766106eb366004611bf4565b610fa6565b3480156106fc57600080fd5b50600e54610357906001600160a01b031681565b34801561071c57600080fd5b5061027661072b366004611bf4565b610fd5565b34801561073c57600080fd5b5061038061074b366004611d66565b611046565b34801561075c57600080fd5b50610380600a5481565b34801561077257600080fd5b50610380600b5481565b6005546001600160a01b031633146107af5760405162461bcd60e51b81526004016107a690611d9f565b60405180910390fd5b60068111156107f25760405162461bcd60e51b815260206004820152600f60248201526e6d61782073656c6c2066656520362560881b60448201526064016107a6565b600d55565b60606003805461080690611dd4565b80601f016020809104026020016040519081016040528092919081815260200182805461083290611dd4565b801561087f5780601f106108545761010080835404028352916020019161087f565b820191906000526020600020905b81548152906001019060200180831161086257829003601f168201915b5050505050905090565b600033610897818585611071565b60019150505b92915050565b600e80546001600160a01b0390811660009081526010602090815260408083208054600160ff199182168117909255865486168552600f90935292208054909116909117905590546108f89184911683611071565b5050565b6005546001600160a01b031633146109265760405162461bcd60e51b81526004016107a690611d9f565b670de0b6b3a76400006103e861093b60025490565b610946906001611e24565b6109509190611e3b565b61095a9190611e3b565b8110156109c15760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084016107a6565b6109d381670de0b6b3a7640000611e24565b60095550565b6000336109e7858285611195565b6109f285858561120f565b506001949350505050565b600854600090610a15906001600160a01b0316610a8f565b600254610a229190611e5d565b905090565b600033610897818585610a3a8383611046565b610a449190611e70565b611071565b6005546001600160a01b03163314610a735760405162461bcd60e51b81526004016107a690611d9f565b60118054911515620100000262ff000019909216919091179055565b6001600160a01b031660009081526020819052604090205490565b6005546001600160a01b03163314610ad45760405162461bcd60e51b81526004016107a690611d9f565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610b4b5760405162461bcd60e51b81526004016107a690611d9f565b506011805460ff19169055600190565b6005546001600160a01b03163314610b855760405162461bcd60e51b81526004016107a690611d9f565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bda5760405162461bcd60e51b81526004016107a690611d9f565b478110610c385760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f742073656e64206d6f7265207468616e20636f6e74726163742062604482015265616c616e636560d01b60648201526084016107a6565b6000610c4c6005546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c96576040519150601f19603f3d011682016040523d82523d6000602084013e610c9b565b606091505b5050905080156108f8575050565b50565b60606004805461080690611dd4565b6005546001600160a01b03163314610ce55760405162461bcd60e51b81526004016107a690611d9f565b7f000000000000000000000000eada072e878ff441b55412b1071da6138d925f1f6001600160a01b0316826001600160a01b031603610d7c5760405162461bcd60e51b815260206004820152602d60248201527f546865206c702063616e6e6f742062652072656d6f7665642066726f6d20617560448201526c3a37b6b0b935b2ba103830b4b960991b60648201526084016107a6565b6108f882826117fe565b60003381610d948286611046565b905083811015610df45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107a6565b6109f28286868403611071565b60003361089781858561120f565b6005546001600160a01b03163314610e395760405162461bcd60e51b81526004016107a690611d9f565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610ec25760405162461bcd60e51b81526004016107a690611d9f565b670de0b6b3a76400006103e8610ed760025490565b610ee2906005611e24565b610eec9190611e3b565b610ef69190611e3b565b811015610f515760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b60648201526084016107a6565b610f6381670de0b6b3a7640000611e24565b600b5550565b6005546001600160a01b03163314610f935760405162461bcd60e51b81526004016107a690611d9f565b6011805462ffff00191662010100179055565b6005546001600160a01b03163314610fd05760405162461bcd60e51b81526004016107a690611d9f565b600a55565b6005546001600160a01b03163314610fff5760405162461bcd60e51b81526004016107a690611d9f565b60038111156110415760405162461bcd60e51b815260206004820152600e60248201526d6d6178206275792066656520332560901b60448201526064016107a6565b600c55565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166110d35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107a6565b6001600160a01b0382166111345760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107a6565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111a18484611046565b9050600019811461120957818110156111fc5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107a6565b6112098484848403611071565b50505050565b6001600160a01b0383166112355760405162461bcd60e51b81526004016107a690611e83565b6001600160a01b03821661125b5760405162461bcd60e51b81526004016107a690611ec8565b806000036112745761126f83836000611852565b505050565b60115460ff16156115f457826001600160a01b031661129b6005546001600160a01b031690565b6001600160a01b0316141580156112d55750816001600160a01b03166112c96005546001600160a01b031690565b6001600160a01b031614155b80156112e957506001600160a01b03821615155b801561130057506001600160a01b03821661dead14155b80156113165750600e54600160a01b900460ff16155b156113ae57601154610100900460ff166113ae576001600160a01b03831660009081526010602052604090205460ff168061136957506001600160a01b03821660009081526010602052604090205460ff165b6113ae5760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107a6565b6001600160a01b03831660009081526007602052604090205460ff1680156113ef57506001600160a01b0382166000908152600f602052604090205460ff16155b156114c3576009548111156114645760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107a6565b600b5461147083610a8f565b61147a9083611e70565b11156114be5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107a6565b6115f4565b6001600160a01b03821660009081526007602052604090205460ff16801561150457506001600160a01b0383166000908152600f602052604090205460ff16155b1561157a576009548111156114be5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107a6565b6001600160a01b0382166000908152600f602052604090205460ff166115f457600b546115a683610a8f565b6115b09083611e70565b11156115f45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107a6565b60006115ff30610a8f565b600a549091508110801590819061161e575060115462010000900460ff165b80156116345750600e54600160a01b900460ff16155b801561165957506001600160a01b03851660009081526007602052604090205460ff16155b801561167e57506001600160a01b03851660009081526010602052604090205460ff16155b80156116a357506001600160a01b03841660009081526010602052604090205460ff16155b156116d157600e805460ff60a01b1916600160a01b1790556116c36119a6565b600e805460ff60a01b191690555b600e546001600160a01b03861660009081526010602052604090205460ff600160a01b90920482161591168061171f57506001600160a01b03851660009081526010602052604090205460ff165b15611728575060005b600081156117ea576001600160a01b03861660009081526007602052604090205460ff16801561175a57506000600d54115b15611780576064600d548661176f9190611e24565b6117799190611e3b565b90506117cc565b6001600160a01b03871660009081526007602052604090205460ff1680156117aa57506000600c54115b156117cc576064600c54866117bf9190611e24565b6117c99190611e3b565b90505b80156117dd576117dd873083611852565b6117e78186611e5d565b94505b6117f5878787611852565b50505050505050565b6001600160a01b038216600081815260076020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166118785760405162461bcd60e51b81526004016107a690611e83565b6001600160a01b03821661189e5760405162461bcd60e51b81526004016107a690611ec8565b6001600160a01b038316600090815260208190526040902054818110156119165760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107a6565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061194d908490611e70565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199991815260200190565b60405180910390a3611209565b60006119b130610a8f565b9050806000036119be5750565b600a546119cc906002611e24565b8111156119e457600a546119e1906002611e24565b90505b600a54600e54610ca99190611a01906001600160a01b0316610a8f565b11611a0c5781611a2d565b600e548290611a23906001600160a01b0316610a8f565b611a2d9190611e70565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611a6257611a62611f0b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b049190611f21565b81600181518110611b1757611b17611f0b565b60200260200101906001600160a01b031690816001600160a01b031681525050611b62307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611071565b600e5460405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81169263791ac94792611bbe928792600092889291909116904290600401611f3e565b600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505050505050565b600060208284031215611c0657600080fd5b5035919050565b600060208083528351808285015260005b81811015611c3a57858101830151858201604001528201611c1e565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ca957600080fd5b60008060408385031215611c8357600080fd5b8235611c8e81611c5b565b946020939093013593505050565b600060208284031215611cae57600080fd5b8135611cb981611c5b565b9392505050565b600080600060608486031215611cd557600080fd5b8335611ce081611c5b565b92506020840135611cf081611c5b565b929592945050506040919091013590565b80358015158114611d1157600080fd5b919050565b600060208284031215611d2857600080fd5b611cb982611d01565b60008060408385031215611d4457600080fd5b8235611d4f81611c5b565b9150611d5d60208401611d01565b90509250929050565b60008060408385031215611d7957600080fd5b8235611d8481611c5b565b91506020830135611d9481611c5b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611de857607f821691505b602082108103611e0857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761089d5761089d611e0e565b600082611e5857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561089d5761089d611e0e565b8082018082111561089d5761089d611e0e565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611f3357600080fd5b8151611cb981611c5b565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f8e5784516001600160a01b031683529383019391830191600101611f69565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220929a49016e131be8cd84f50aa607746f0d3452aa2833bbe0cd2e63fff174a98464736f6c63430008110033

Deployed Bytecode Sourcemap

17218:9302:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20893:149;;;;;;;;;;-1:-1:-1;20893:149:0;;;;;:::i;:::-;;:::i;:::-;;1835:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2908:242;;;;;;;;;;-1:-1:-1;2908:242:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;2908:242:0;1208:187:1;21883:294:0;;;;;;;;;;-1:-1:-1;21883:294:0;;;;;:::i;:::-;;:::i;17729:63::-;;;;;;;;;;-1:-1:-1;17729:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17264:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1843:32:1;;;1825:51;;1813:2;1798:18;17264:51:0;1652:230:1;2156:108:0;;;;;;;;;;-1:-1:-1;2244:12:0;;2156:108;;;2033:25:1;;;2021:2;2006:18;2156:108:0;1887:177:1;20459:275:0;;;;;;;;;;-1:-1:-1;20459:275:0;;;;;:::i;:::-;;:::i;3158:295::-;;;;;;;;;;-1:-1:-1;3158:295:0;;;;;:::i;:::-;;:::i;17433:44::-;;;;;;;;;;-1:-1:-1;17433:44:0;;;;-1:-1:-1;;;;;17433:44:0;;;19637:126;;;;;;;;;;;;;:::i;17629:26::-;;;;;;;;;;;;;;;;2055:93;;;;;;;;;;-1:-1:-1;2055:93:0;;2138:2;2880:36:1;;2868:2;2853:18;2055:93:0;2738:184:1;3461:270:0;;;;;;;;;;-1:-1:-1;3461:270:0;;;;;:::i;:::-;;:::i;17597:25::-;;;;;;;;;;;;;;;;21644:106;;;;;;;;;;-1:-1:-1;21644:106:0;;;;;:::i;:::-;;:::i;17322:38::-;;;;;;;;;;;;;;;17860:33;;;;;;;;;;-1:-1:-1;17860:33:0;;;;;;;;17940:31;;;;;;;;;;-1:-1:-1;17940:31:0;;;;;;;;;;;2272:177;;;;;;;;;;-1:-1:-1;2272:177:0;;;;;:::i;:::-;;:::i;7718:148::-;;;;;;;;;;;;;:::i;20330:121::-;;;;;;;;;;;;;:::i;19771:165::-;;;;;;;;;;-1:-1:-1;19771:165:0;;;;;:::i;:::-;;:::i;21314:322::-;;;;;;;;;;-1:-1:-1;21314:322:0;;;;;:::i;:::-;;:::i;7504:79::-;;;;;;;;;;-1:-1:-1;7569:6:0;;-1:-1:-1;;;;;7569:6:0;7504:79;;1943:104;;;;;;;;;;;;;:::i;22185:292::-;;;;;;;;;;-1:-1:-1;22185:292:0;;;;;:::i;:::-;;:::i;3739:505::-;;;;;;;;;;-1:-1:-1;3739:505:0;;;;;:::i;:::-;;:::i;2457:234::-;;;;;;;;;;-1:-1:-1;2457:234:0;;;;;:::i;:::-;;:::i;17367:57::-;;;;;;;;;;-1:-1:-1;17367:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17900:33;;;;;;;;;;-1:-1:-1;17900:33:0;;;;;;;;;;;20140:182;;;;;;;;;;-1:-1:-1;20140:182:0;;;;;:::i;:::-;;:::i;21050:256::-;;;;;;;;;;-1:-1:-1;21050:256:0;;;;;:::i;:::-;;:::i;17484:35::-;;;;;;;;;;;;;;;;19519:110;;;;;;;;;;;;;:::i;21758:117::-;;;;;;;;;;-1:-1:-1;21758:117:0;;;;;:::i;:::-;;:::i;17662:30::-;;;;;;;;;;-1:-1:-1;17662:30:0;;;;-1:-1:-1;;;;;17662:30:0;;;20742:143;;;;;;;;;;-1:-1:-1;20742:143:0;;;;;:::i;:::-;;:::i;2699:201::-;;;;;;;;;;-1:-1:-1;2699:201:0;;;;;:::i;:::-;;:::i;17526:33::-;;;;;;;;;;;;;;;;17566:24;;;;;;;;;;;;;;;;20893:149;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;;;;;;;;;20984:1:::1;20972:8;:13;;20964:41;;;::::0;-1:-1:-1;;;20964:41:0;;4553:2:1;20964:41:0::1;::::0;::::1;4535:21:1::0;4592:2;4572:18;;;4565:30;-1:-1:-1;;;4611:18:1;;;4604:45;4666:18;;20964:41:0::1;4351:339:1::0;20964:41:0::1;21016:7;:18:::0;20893:149::o;1835:100::-;1889:13;1922:5;1915:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1835:100;:::o;2908:242::-;3027:4;1299:10;3088:32;1299:10;3104:7;3113:6;3088:8;:32::i;:::-;3138:4;3131:11;;;2908:242;;;;;:::o;21883:294::-;22014:15;;;-1:-1:-1;;;;;22014:15:0;;;21994:36;;;;:19;:36;;;;;;;;:43;;22033:4;-1:-1:-1;;21994:43:0;;;;;;;;22080:15;;;;22048:48;;:31;:48;;;;;:55;;;;;;;;;;22144:15;;22114:55;;22123:19;;22144:15;22161:7;22114:8;:55::i;:::-;21883:294;;:::o;20459:275::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;20596:4:::1;20588;20567:13;2244:12:::0;;;2156:108;20567:13:::1;:17;::::0;20583:1:::1;20567:17;:::i;:::-;20566:26;;;;:::i;:::-;20565:35;;;;:::i;:::-;20555:6;:45;;20533:142;;;::::0;-1:-1:-1;;;20533:142:0;;5809:2:1;20533:142:0::1;::::0;::::1;5791:21:1::0;5848:2;5828:18;;;5821:30;5887:34;5867:18;;;5860:62;-1:-1:-1;;;5938:18:1;;;5931:45;5993:19;;20533:142:0::1;5607:411:1::0;20533:142:0::1;20709:17;:6:::0;20719::::1;20709:17;:::i;:::-;20686:20;:40:::0;-1:-1:-1;20459:275:0:o;3158:295::-;3289:4;1299:10;3347:38;3363:4;1299:10;3378:6;3347:15;:38::i;:::-;3396:27;3406:4;3412:2;3416:6;3396:9;:27::i;:::-;-1:-1:-1;3441:4:0;;3158:295;-1:-1:-1;;;;3158:295:0:o;19637:126::-;19743:11;;19690:7;;19733:22;;-1:-1:-1;;;;;19743:11:0;19733:9;:22::i;:::-;2244:12;;19717:38;;;;:::i;:::-;19710:45;;19637:126;:::o;3461:270::-;3576:4;1299:10;3637:64;1299:10;3653:7;3690:10;3662:25;1299:10;3653:7;3662:9;:25::i;:::-;:38;;;;:::i;:::-;3637:8;:64::i;21644:106::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;21721:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;21721:21:0;;::::1;::::0;;;::::1;::::0;;21644:106::o;2272:177::-;-1:-1:-1;;;;;2423:18:0;2391:7;2423:18;;;;;;;;;;;;2272:177::o;7718:148::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;7809:6:::1;::::0;7788:40:::1;::::0;7825:1:::1;::::0;-1:-1:-1;;;;;7809:6:0::1;::::0;7788:40:::1;::::0;7825:1;;7788:40:::1;7839:6;:19:::0;;-1:-1:-1;;;;;;7839:19:0::1;::::0;;7718:148::o;20330:121::-;7631:6;;20382:4;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;-1:-1:-1;20399:14:0::1;:22:::0;;-1:-1:-1;;20399:22:0::1;::::0;;;20330:121;:::o;19771:165::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19883:38:0;;;::::1;;::::0;;;:31:::1;:38;::::0;;;;:45;;-1:-1:-1;;19883:45:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19771:165::o;21314:322::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;21415:21:::1;21406:6;:30;21384:118;;;::::0;-1:-1:-1;;;21384:118:0;;6488:2:1;21384:118:0::1;::::0;::::1;6470:21:1::0;6527:2;6507:18;;;6500:30;6566:34;6546:18;;;6539:62;-1:-1:-1;;;6617:18:1;;;6610:36;6663:19;;21384:118:0::1;6286:402:1::0;21384:118:0::1;21514:12;21540:7;7569:6:::0;;-1:-1:-1;;;;;7569:6:0;;7504:79;21540:7:::1;-1:-1:-1::0;;;;;21532:21:0::1;21561:6;21532:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21513:59;;;21587:7;21583:46;;;21611:7;21314:322:::0;:::o;7701:1::-:1;21314:322:::0;:::o;1943:104::-;1999:13;2032:7;2025:14;;;;;:::i;22185:292::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;22329:13:::1;-1:-1:-1::0;;;;;22321:21:0::1;:4;-1:-1:-1::0;;;;;22321:21:0::1;::::0;22299:116:::1;;;::::0;-1:-1:-1;;;22299:116:0;;7105:2:1;22299:116:0::1;::::0;::::1;7087:21:1::0;7144:2;7124:18;;;7117:30;7183:34;7163:18;;;7156:62;-1:-1:-1;;;7234:18:1;;;7227:43;7287:19;;22299:116:0::1;6903:409:1::0;22299:116:0::1;22428:41;22457:4;22463:5;22428:28;:41::i;3739:505::-:0;3859:4;1299:10;3859:4;3947:25;1299:10;3964:7;3947:9;:25::i;:::-;3920:52;;4025:15;4005:16;:35;;3983:122;;;;-1:-1:-1;;;3983:122:0;;7519:2:1;3983:122:0;;;7501:21:1;7558:2;7538:18;;;7531:30;7597:34;7577:18;;;7570:62;-1:-1:-1;;;7648:18:1;;;7641:35;7693:19;;3983:122:0;7317:401:1;3983:122:0;4141:60;4150:5;4157:7;4185:15;4166:16;:34;4141:8;:60::i;2457:234::-;2572:4;1299:10;2633:28;1299:10;2650:2;2654:6;2633:9;:28::i;20140:182::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20225:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;20225:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;20280:34;;1348:41:1;;;20280:34:0::1;::::0;1321:18:1;20280:34:0::1;;;;;;;20140:182:::0;;:::o;21050:256::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;21190:4:::1;21182;21161:13;2244:12:::0;;;2156:108;21161:13:::1;:17;::::0;21177:1:::1;21161:17;:::i;:::-;21160:26;;;;:::i;:::-;21159:35;;;;:::i;:::-;21149:6;:45;;21127:131;;;::::0;-1:-1:-1;;;21127:131:0;;7925:2:1;21127:131:0::1;::::0;::::1;7907:21:1::0;7964:2;7944:18;;;7937:30;8003:34;7983:18;;;7976:62;-1:-1:-1;;;8054:18:1;;;8047:34;8098:19;;21127:131:0::1;7723:400:1::0;21127:131:0::1;21281:17;:6:::0;21291::::1;21281:17;:::i;:::-;21269:9;:29:::0;-1:-1:-1;21050:256:0:o;19519:110::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;19572:13:::1;:20:::0;;-1:-1:-1;;19603:18:0;;;;;19519:110::o;21758:117::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;21839:18:::1;:28:::0;21758:117::o;20742:143::-;7631:6;;-1:-1:-1;;;;;7631:6:0;1299:10;7631:22;7623:67;;;;-1:-1:-1;;;7623:67:0;;;;;;;:::i;:::-;20830:1:::1;20819:7;:12;;20811:39;;;::::0;-1:-1:-1;;;20811:39:0;;8330:2:1;20811:39:0::1;::::0;::::1;8312:21:1::0;8369:2;8349:18;;;8342:30;-1:-1:-1;;;8388:18:1;;;8381:44;8442:18;;20811:39:0::1;8128:338:1::0;20811:39:0::1;20861:6;:16:::0;20742:143::o;2699:201::-;-1:-1:-1;;;;;2865:18:0;;;2833:7;2865:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2699:201::o;5974:380::-;-1:-1:-1;;;;;6110:19:0;;6102:68;;;;-1:-1:-1;;;6102:68:0;;8673:2:1;6102:68:0;;;8655:21:1;8712:2;8692:18;;;8685:30;8751:34;8731:18;;;8724:62;-1:-1:-1;;;8802:18:1;;;8795:34;8846:19;;6102:68:0;8471:400:1;6102:68:0;-1:-1:-1;;;;;6189:21:0;;6181:68;;;;-1:-1:-1;;;6181:68:0;;9078:2:1;6181:68:0;;;9060:21:1;9117:2;9097:18;;;9090:30;9156:34;9136:18;;;9129:62;-1:-1:-1;;;9207:18:1;;;9200:32;9249:19;;6181:68:0;8876:398:1;6181:68:0;-1:-1:-1;;;;;6262:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6314:32;;2033:25:1;;;6314:32:0;;2006:18:1;6314:32:0;;;;;;;5974:380;;;:::o;6362:502::-;6497:24;6524:25;6534:5;6541:7;6524:9;:25::i;:::-;6497:52;;-1:-1:-1;;6564:16:0;:37;6560:297;;6664:6;6644:16;:26;;6618:117;;;;-1:-1:-1;;;6618:117:0;;9481:2:1;6618:117:0;;;9463:21:1;9520:2;9500:18;;;9493:30;9559:31;9539:18;;;9532:59;9608:18;;6618:117:0;9279:353:1;6618:117:0;6779:51;6788:5;6795:7;6823:6;6804:16;:25;6779:8;:51::i;:::-;6486:378;6362:502;;;:::o;22485:3043::-;-1:-1:-1;;;;;22617:18:0;;22609:68;;;;-1:-1:-1;;;22609:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22696:16:0;;22688:64;;;;-1:-1:-1;;;22688:64:0;;;;;;;:::i;:::-;22769:6;22779:1;22769:11;22765:93;;22797:28;22813:4;22819:2;22823:1;22797:15;:28::i;:::-;22485:3043;;;:::o;22765:93::-;22874:14;;;;22870:1522;;;22940:4;-1:-1:-1;;;;;22929:15:0;:7;7569:6;;-1:-1:-1;;;;;7569:6:0;;7504:79;22929:7;-1:-1:-1;;;;;22929:15:0;;22927:18;:55;;;;;22979:2;-1:-1:-1;;;;;22968:13:0;:7;7569:6;;-1:-1:-1;;;;;7569:6:0;;7504:79;22968:7;-1:-1:-1;;;;;22968:13:0;;22966:16;22927:55;:92;;;;-1:-1:-1;;;;;;23003:16:0;;;;22927:92;:134;;;;-1:-1:-1;;;;;;23040:21:0;;23054:6;23040:21;;22927:134;:164;;;;-1:-1:-1;23083:8:0;;-1:-1:-1;;;23083:8:0;;;;23082:9;22927:164;22905:459;;;23131:13;;;;;;;23126:223;;-1:-1:-1;;;;;23203:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;23232:23:0;;;;;;:19;:23;;;;;;;;23203:52;23169:160;;;;-1:-1:-1;;;23169:160:0;;10649:2:1;23169:160:0;;;10631:21:1;10688:2;10668:18;;;10661:30;-1:-1:-1;;;10707:18:1;;;10700:52;10769:18;;23169:160:0;10447:346:1;23169:160:0;-1:-1:-1;;;;;23402:31:0;;;;;;:25;:31;;;;;;;;:88;;;;-1:-1:-1;;;;;;23455:35:0;;;;;;:31;:35;;;;;;;;23454:36;23402:88;23380:1001;;;23565:20;;23555:6;:30;;23525:157;;;;-1:-1:-1;;;23525:157:0;;11000:2:1;23525:157:0;;;10982:21:1;11039:2;11019:18;;;11012:30;11078:34;11058:18;;;11051:62;-1:-1:-1;;;11129:18:1;;;11122:51;11190:19;;23525:157:0;10798:417:1;23525:157:0;23757:9;;23740:13;23750:2;23740:9;:13::i;:::-;23731:22;;:6;:22;:::i;:::-;:35;;23701:128;;;;-1:-1:-1;;;23701:128:0;;11422:2:1;23701:128:0;;;11404:21:1;11461:2;11441:18;;;11434:30;-1:-1:-1;;;11480:18:1;;;11473:49;11539:18;;23701:128:0;11220:343:1;23701:128:0;23380:1001;;;-1:-1:-1;;;;;23873:29:0;;;;;;:25;:29;;;;;;;;:88;;;;-1:-1:-1;;;;;;23924:37:0;;;;;;:31;:37;;;;;;;;23923:38;23873:88;23851:530;;;24036:20;;24026:6;:30;;23996:158;;;;-1:-1:-1;;;23996:158:0;;11770:2:1;23996:158:0;;;11752:21:1;11809:2;11789:18;;;11782:30;11848:34;11828:18;;;11821:62;-1:-1:-1;;;11899:18:1;;;11892:52;11961:19;;23996:158:0;11568:418:1;23851:530:0;-1:-1:-1;;;;;24181:35:0;;;;;;:31;:35;;;;;;;;24176:205;;24293:9;;24276:13;24286:2;24276:9;:13::i;:::-;24267:22;;:6;:22;:::i;:::-;:35;;24237:128;;;;-1:-1:-1;;;24237:128:0;;11422:2:1;24237:128:0;;;11404:21:1;11461:2;11441:18;;;11434:30;-1:-1:-1;;;11480:18:1;;;11473:49;11539:18;;24237:128:0;11220:343:1;24237:128:0;24404:28;24435:24;24453:4;24435:9;:24::i;:::-;24511:18;;24404:55;;-1:-1:-1;24487:42:0;;;;;;;24560:35;;-1:-1:-1;24584:11:0;;;;;;;24560:35;:61;;;;-1:-1:-1;24613:8:0;;-1:-1:-1;;;24613:8:0;;;;24612:9;24560:61;:110;;;;-1:-1:-1;;;;;;24639:31:0;;;;;;:25;:31;;;;;;;;24638:32;24560:110;:153;;;;-1:-1:-1;;;;;;24688:25:0;;;;;;:19;:25;;;;;;;;24687:26;24560:153;:194;;;;-1:-1:-1;;;;;;24731:23:0;;;;;;:19;:23;;;;;;;;24730:24;24560:194;24542:330;;;24781:8;:15;;-1:-1:-1;;;;24781:15:0;-1:-1:-1;;;24781:15:0;;;24811:18;:16;:18::i;:::-;24844:8;:16;;-1:-1:-1;;;;24844:16:0;;;24542:330;24900:8;;-1:-1:-1;;;;;24925:25:0;;24884:12;24925:25;;;:19;:25;;;;;;24900:8;-1:-1:-1;;;24900:8:0;;;;;24899:9;;24925:25;;:52;;-1:-1:-1;;;;;;24954:23:0;;;;;;:19;:23;;;;;;;;24925:52;24921:100;;;-1:-1:-1;25004:5:0;24921:100;25033:12;25066:7;25062:415;;;-1:-1:-1;;;;;25094:29:0;;;;;;:25;:29;;;;;;;;:44;;;;;25137:1;25127:7;;:11;25094:44;25090:238;;;25187:3;25176:7;;25167:6;:16;;;;:::i;:::-;25166:24;;;;:::i;:::-;25159:31;;25090:238;;;-1:-1:-1;;;;;25216:31:0;;;;;;:25;:31;;;;;;;;:45;;;;;25260:1;25251:6;;:10;25216:45;25212:116;;;25309:3;25299:6;;25290;:15;;;;:::i;:::-;25289:23;;;;:::i;:::-;25282:30;;25212:116;25348:8;;25344:91;;25377:42;25393:4;25407;25414;25377:15;:42::i;:::-;25451:14;25461:4;25451:14;;:::i;:::-;;;25062:415;25487:33;25503:4;25509:2;25513:6;25487:15;:33::i;:::-;22598:2930;;;;22485:3043;;;:::o;19944:188::-;-1:-1:-1;;;;;20027:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;20027:39:0;;;;;;;;;;20084:40;;20027:39;;:31;20084:40;;;19944:188;;:::o;4252:708::-;-1:-1:-1;;;;;4383:18:0;;4375:68;;;;-1:-1:-1;;;4375:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4462:16:0;;4454:64;;;;-1:-1:-1;;;4454:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4604:15:0;;4582:19;4604:15;;;;;;;;;;;4652:21;;;;4630:109;;;;-1:-1:-1;;;4630:109:0;;12193:2:1;4630:109:0;;;12175:21:1;12232:2;12212:18;;;12205:30;12271:34;12251:18;;;12244:62;-1:-1:-1;;;12322:18:1;;;12315:36;12368:19;;4630:109:0;11991:402:1;4630:109:0;-1:-1:-1;;;;;4775:15:0;;;:9;:15;;;;;;;;;;;4793:20;;;4775:38;;4835:13;;;;;;;;:23;;4807:6;;4775:9;4835:23;;4807:6;;4835:23;:::i;:::-;;;;;;;;4891:2;-1:-1:-1;;;;;4876:26:0;4885:4;-1:-1:-1;;;;;4876:26:0;;4895:6;4876:26;;;;2033:25:1;;2021:2;2006:18;;1887:177;4876:26:0;;;;;;;;4915:37;22485:3043;25536:500;25583:23;25609:24;25627:4;25609:9;:24::i;:::-;25583:50;;25648:15;25667:1;25648:20;25644:59;;25685:7;25536:500::o;25644:59::-;25737:18;;:22;;25758:1;25737:22;:::i;:::-;25719:15;:40;25715:113;;;25794:18;;:22;;25815:1;25794:22;:::i;:::-;25776:40;;25715:113;25900:18;;25881:15;;25840:188;;25900:18;25871:26;;-1:-1:-1;;;;;25881:15:0;25871:9;:26::i;:::-;:47;:146;;26002:15;25871:146;;;25948:15;;25967;;25938:26;;-1:-1:-1;;;;;25948:15:0;25938:9;:26::i;:::-;:44;;;;:::i;:::-;26134:16;;;26148:1;26134:16;;;;;;;;26110:21;;26134:16;;;;;;;;;;-1:-1:-1;26134:16:0;26110:40;;26179:4;26161;26166:1;26161:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;26161:23:0;;;-1:-1:-1;;;;;26161:23:0;;;;;26205:15;-1:-1:-1;;;;;26205:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26195:4;26200:1;26195:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;26195:32:0;;;-1:-1:-1;;;;;26195:32:0;;;;;26238:62;26255:4;26270:15;26288:11;26238:8;:62::i;:::-;26453:15;;26311:198;;-1:-1:-1;;;26311:198:0;;-1:-1:-1;;;;;26311:15:0;:66;;;;;:198;;26392:11;;26418:1;;26434:4;;26453:15;;;;;26483;;26311:198;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26099:418;26044:473;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1400:247::-;1459:6;1512:2;1500:9;1491:7;1487:23;1483:32;1480:52;;;1528:1;1525;1518:12;1480:52;1567:9;1554:23;1586:31;1611:5;1586:31;:::i;:::-;1636:5;1400:247;-1:-1:-1;;;1400:247:1:o;2069:456::-;2146:6;2154;2162;2215:2;2203:9;2194:7;2190:23;2186:32;2183:52;;;2231:1;2228;2221:12;2183:52;2270:9;2257:23;2289:31;2314:5;2289:31;:::i;:::-;2339:5;-1:-1:-1;2396:2:1;2381:18;;2368:32;2409:33;2368:32;2409:33;:::i;:::-;2069:456;;2461:7;;-1:-1:-1;;;2515:2:1;2500:18;;;;2487:32;;2069:456::o;2927:160::-;2992:20;;3048:13;;3041:21;3031:32;;3021:60;;3077:1;3074;3067:12;3021:60;2927:160;;;:::o;3092:180::-;3148:6;3201:2;3189:9;3180:7;3176:23;3172:32;3169:52;;;3217:1;3214;3207:12;3169:52;3240:26;3256:9;3240:26;:::i;3277:315::-;3342:6;3350;3403:2;3391:9;3382:7;3378:23;3374:32;3371:52;;;3419:1;3416;3409:12;3371:52;3458:9;3445:23;3477:31;3502:5;3477:31;:::i;:::-;3527:5;-1:-1:-1;3551:35:1;3582:2;3567:18;;3551:35;:::i;:::-;3541:45;;3277:315;;;;;:::o;3597:388::-;3665:6;3673;3726:2;3714:9;3705:7;3701:23;3697:32;3694:52;;;3742:1;3739;3732:12;3694:52;3781:9;3768:23;3800:31;3825:5;3800:31;:::i;:::-;3850:5;-1:-1:-1;3907:2:1;3892:18;;3879:32;3920:33;3879:32;3920:33;:::i;:::-;3972:7;3962:17;;;3597:388;;;;;:::o;3990:356::-;4192:2;4174:21;;;4211:18;;;4204:30;4270:34;4265:2;4250:18;;4243:62;4337:2;4322:18;;3990:356::o;4695:380::-;4774:1;4770:12;;;;4817;;;4838:61;;4892:4;4884:6;4880:17;4870:27;;4838:61;4945:2;4937:6;4934:14;4914:18;4911:38;4908:161;;4991:10;4986:3;4982:20;4979:1;4972:31;5026:4;5023:1;5016:15;5054:4;5051:1;5044:15;4908:161;;4695:380;;;:::o;5080:127::-;5141:10;5136:3;5132:20;5129:1;5122:31;5172:4;5169:1;5162:15;5196:4;5193:1;5186:15;5212:168;5285:9;;;5316;;5333:15;;;5327:22;;5313:37;5303:71;;5354:18;;:::i;5385:217::-;5425:1;5451;5441:132;;5495:10;5490:3;5486:20;5483:1;5476:31;5530:4;5527:1;5520:15;5558:4;5555:1;5548:15;5441:132;-1:-1:-1;5587:9:1;;5385:217::o;6023:128::-;6090:9;;;6111:11;;;6108:37;;;6125:18;;:::i;6156:125::-;6221:9;;;6242:10;;;6239:36;;;6255:18;;:::i;9637:401::-;9839:2;9821:21;;;9878:2;9858:18;;;9851:30;9917:34;9912:2;9897:18;;9890:62;-1:-1:-1;;;9983:2:1;9968:18;;9961:35;10028:3;10013:19;;9637:401::o;10043:399::-;10245:2;10227:21;;;10284:2;10264:18;;;10257:30;10323:34;10318:2;10303:18;;10296:62;-1:-1:-1;;;10389:2:1;10374:18;;10367:33;10432:3;10417:19;;10043:399::o;12530:127::-;12591:10;12586:3;12582:20;12579:1;12572:31;12622:4;12619:1;12612:15;12646:4;12643:1;12636:15;12662:251;12732:6;12785:2;12773:9;12764:7;12760:23;12756:32;12753:52;;;12801:1;12798;12791:12;12753:52;12833:9;12827:16;12852:31;12877:5;12852:31;:::i;12918:980::-;13180:4;13228:3;13217:9;13213:19;13259:6;13248:9;13241:25;13285:2;13323:6;13318:2;13307:9;13303:18;13296:34;13366:3;13361:2;13350:9;13346:18;13339:31;13390:6;13425;13419:13;13456:6;13448;13441:22;13494:3;13483:9;13479:19;13472:26;;13533:2;13525:6;13521:15;13507:29;;13554:1;13564:195;13578:6;13575:1;13572:13;13564:195;;;13643:13;;-1:-1:-1;;;;;13639:39:1;13627:52;;13734:15;;;;13699:12;;;;13675:1;13593:9;13564:195;;;-1:-1:-1;;;;;;;13815:32:1;;;;13810:2;13795:18;;13788:60;-1:-1:-1;;;13879:3:1;13864:19;13857:35;13776:3;12918:980;-1:-1:-1;;;12918:980:1:o

Swarm Source

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