ETH Price: $2,458.28 (-2.63%)
Gas: 1.34 Gwei

Token

turbo in a memes world (TEW)
 

Overview

Max Total Supply

69,000,000,000 TEW

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
552,000,000 TEW

Value
$0.00
0x44a9e09778b606e73d649fb696081b0690d5d2a9
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:
TEW

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-28
*/

// SPDX-License-Identifier: MIT
/**

https://t.me/tewoneth

**/

pragma solidity ^0.8.16;

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 allPairsLength() external view returns (uint256);

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

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

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

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

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);

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

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
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 anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing 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);
    }
}

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

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

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

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

    /**
     * @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 value {ERC20} uses, unless this function is
     * 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 9;
    }

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

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

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

    /**
     * @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)
        external
        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
    ) external virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        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)
        external
        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 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)
        external
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /** @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");

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    /**
     * @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");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

    /**
     * @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);
    }

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    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 _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");

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

contract TEW is ERC20, Ownable {
    // TOKENOMICS START ==========================================================>
    string private _name = unicode"turbo in a memes world";
    string private _symbol = unicode"TEW";
    uint8 private _decimals = 9;
    uint256 private _supply = 69_000_000_000;
    uint256 public taxBuyForMarketing = 20;
    uint256 public taxSellForMarketing = 20;
    uint256 public maxWalletAmount = ((_supply * 1) / 100) * 10**_decimals; // init max wallet 1%
    address public marketingWallet = 0xE994c8cdE8398a573B84C248103a3a8725b3F1f8;
    // TOKENOMICS END ============================================================>

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    mapping(address => bool) private _isExcludedFromFee;

    uint256 private _numTokensSellToAddToETH =
        ((_supply * 2) / 1_000) * 10**_decimals;

    bool inSwapAndLiquify;

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

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20(_name, _symbol) {
        _mint(msg.sender, (_supply * 10**_decimals));
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    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(
            balanceOf(from) >= amount,
            "ERC20: transfer amount exceeds balance"
        );

        if (
            (from == uniswapV2Pair || to == uniswapV2Pair) && !inSwapAndLiquify
        ) {
            if (from != uniswapV2Pair) {
                uint256 contractLiquidityBalance = balanceOf(address(this));
                if ((contractLiquidityBalance) >= _numTokensSellToAddToETH) {
                    _swapTokensForEth(contractLiquidityBalance);

                    bool sent = payable(marketingWallet).send(
                        address(this).balance
                    );
                    require(sent, "Failed to send ETH");
                }
            }

            uint256 transferAmount;
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                transferAmount = amount;
            } else {
                if (from == uniswapV2Pair) {
                    require(
                        (amount + balanceOf(to)) <= maxWalletAmount,
                        "ERC20: balance amount exceeded max wallet amount limit"
                    );
                }
                uint256 marketingShare = 0;
                if (from == uniswapV2Pair) {
                    marketingShare = ((amount * taxBuyForMarketing) / 100);
                } else {
                    marketingShare = ((amount * taxSellForMarketing) / 100);
                }

                transferAmount = amount - (marketingShare);

                if (marketingShare > 0)
                    super._transfer(from, address(this), (marketingShare));
            }
            super._transfer(from, to, transferAmount);
        } else {
            super._transfer(from, to, amount);
        }
    }

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

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

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

    function changeMarketingWallet(address newWallet)
        public
        onlyOwner
        returns (bool)
    {
        marketingWallet = newWallet;
        return true;
    }

    function changeTaxForMarketing(
        uint256 _taxBuyForMarketing,
        uint256 _taxSellForMarketing
    ) public onlyOwner returns (bool) {
        require(
            (_taxBuyForMarketing) <= 10,
            "ERC20: total tax must not be greater than 70"
        );
        require(
            (_taxSellForMarketing) <= 10,
            "ERC20: total tax must not be greater than 70"
        );
        taxBuyForMarketing = _taxBuyForMarketing;
        taxSellForMarketing = _taxSellForMarketing;

        return true;
    }

    function removeLimit() public onlyOwner returns (bool) {
        maxWalletAmount = _supply * 10**_decimals;
        return true;
    }

    receive() external payable {}
}

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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxBuyForMarketing","type":"uint256"},{"internalType":"uint256","name":"_taxSellForMarketing","type":"uint256"}],"name":"changeTaxForMarketing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxBuyForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSellForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

610100604052601660c09081527f747572626f20696e2061206d656d657320776f726c640000000000000000000060e0526006906200003f9082620005f9565b5060408051808201909152600381526254455760e81b6020820152600790620000699082620005f9565b506008805460ff19166009908117909155641010b8720081556014600a818155600b919091556200009b9190620007d4565b60646009546001620000ae9190620007eb565b620000ba919062000805565b620000c69190620007eb565b600c55600d80546001600160a01b03191673e994c8cde8398a573b84c248103a3a8725b3f1f8179055600854620001029060ff16600a620007d4565b6103e86009546002620001169190620007eb565b62000122919062000805565b6200012e9190620007eb565b600f553480156200013d575f80fd5b50600680546200014d906200056f565b80601f01602080910402602001604051908101604052809291908181526020018280546200017b906200056f565b8015620001ca5780601f10620001a057610100808354040283529160200191620001ca565b820191905f5260205f20905b815481529060010190602001808311620001ac57829003601f168201915b505050505060078054620001de906200056f565b80601f01602080910402602001604051908101604052809291908181526020018280546200020c906200056f565b80156200025b5780601f1062000231576101008083540402835291602001916200025b565b820191905f5260205f20905b8154815290600101906020018083116200023d57829003601f168201915b50505050508160039081620002719190620005f9565b506004620002808282620005f9565b5050506200029d620002976200044260201b60201c565b62000446565b600854620002cc903390620002b79060ff16600a620007d4565b600954620002c69190620007eb565b62000497565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000321573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000347919062000825565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000393573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000825565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000404573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042a919062000825565b6001600160a01b0390811660a0521660805262000863565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004f25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546200050591906200084d565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200058457607f821691505b602082108103620005a357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005f457805f5260205f20601f840160051c81016020851015620005d05750805b601f840160051c820191505b81811015620005f1575f8155600101620005dc565b50505b505050565b81516001600160401b038111156200061557620006156200055b565b6200062d816200062684546200056f565b84620005a9565b602080601f83116001811462000663575f84156200064b5750858301515b5f19600386901b1c1916600185901b178555620006bd565b5f85815260208120601f198616915b82811015620006935788860151825594840194600190910190840162000672565b5085821015620006b157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200071957815f1904821115620006fd57620006fd620006c5565b808516156200070b57918102915b93841c9390800290620006de565b509250929050565b5f826200073157506001620007ce565b816200073f57505f620007ce565b8160018114620007585760028114620007635762000783565b6001915050620007ce565b60ff841115620007775762000777620006c5565b50506001821b620007ce565b5060208310610133831016604e8410600b8410161715620007a8575081810a620007ce565b620007b48383620006d9565b805f1904821115620007ca57620007ca620006c5565b0290505b92915050565b5f620007e460ff84168362000721565b9392505050565b8082028115828204841417620007ce57620007ce620006c5565b5f826200082057634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000836575f80fd5b81516001600160a01b0381168114620007e4575f80fd5b80820180821115620007ce57620007ce620006c5565b60805160a0516114a5620008bd5f395f81816102950152818161095f0152818161099a015281816109e401528181610af60152610bc201525f81816101b401528181610d7e01528181610e350152610e6401526114a55ff3fe60806040526004361061013f575f3560e01c8063715018a6116100b3578063aa4bde281161006d578063aa4bde28146103a3578063b60c30f9146103b8578063bb85c6d1146103cd578063d0e1d262146103ec578063dd62ed3e14610401578063f2fde38b14610420575f80fd5b8063715018a6146102ff57806375f0a874146103155780638da5cb5b1461033457806395d89b4114610351578063a457c2d714610365578063a9059cbb14610384575f80fd5b8063313ce56711610104578063313ce5671461022b5780633441f06f14610246578063395093511461026557806349bd5a5e1461028457806362256589146102b757806370a08231146102cb575f80fd5b806306fdde031461014a578063095ea7b3146101745780631694505e146101a357806318160ddd146101ee57806323b872dd1461020c575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61043f565b60405161016b9190610fde565b60405180910390f35b34801561017f575f80fd5b5061019361018e36600461103e565b6104cf565b604051901515815260200161016b565b3480156101ae575f80fd5b506101d67f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161016b565b3480156101f9575f80fd5b506002545b60405190815260200161016b565b348015610217575f80fd5b50610193610226366004611068565b6104e8565b348015610236575f80fd5b506040516009815260200161016b565b348015610251575f80fd5b506101936102603660046110a6565b61050b565b348015610270575f80fd5b5061019361027f36600461103e565b61056e565b34801561028f575f80fd5b506101d67f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c2575f80fd5b5061019361058f565b3480156102d6575f80fd5b506101fe6102e53660046110c6565b6001600160a01b03165f9081526020819052604090205490565b34801561030a575f80fd5b506103136105bf565b005b348015610320575f80fd5b50600d546101d6906001600160a01b031681565b34801561033f575f80fd5b506005546001600160a01b03166101d6565b34801561035c575f80fd5b5061015e6105d2565b348015610370575f80fd5b5061019361037f36600461103e565b6105e1565b34801561038f575f80fd5b5061019361039e36600461103e565b61065b565b3480156103ae575f80fd5b506101fe600c5481565b3480156103c3575f80fd5b506101fe600a5481565b3480156103d8575f80fd5b506101936103e73660046110c6565b610668565b3480156103f7575f80fd5b506101fe600b5481565b34801561040c575f80fd5b506101fe61041b3660046110e8565b610696565b34801561042b575f80fd5b5061031361043a3660046110c6565b6106c0565b60606003805461044e9061111f565b80601f016020809104026020016040519081016040528092919081815260200182805461047a9061111f565b80156104c55780601f1061049c576101008083540402835291602001916104c5565b820191905f5260205f20905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b5f336104dc818585610739565b60019150505b92915050565b5f336104f585828561085c565b6105008585856108d4565b506001949350505050565b5f610514610c71565b600a83111561053e5760405162461bcd60e51b815260040161053590611157565b60405180910390fd5b600a82111561055f5760405162461bcd60e51b815260040161053590611157565b50600a91909155600b55600190565b5f336104dc8185856105808383610696565b61058a91906111b7565b610739565b5f610598610c71565b6008546105a99060ff16600a6112aa565b6009546105b691906112b8565b600c5550600190565b6105c7610c71565b6105d05f610ccb565b565b60606004805461044e9061111f565b5f33816105ee8286610696565b90508381101561064e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610535565b6105008286868403610739565b5f336104dc8185856108d4565b5f610671610c71565b50600d80546001600160a01b0383166001600160a01b03199091161790556001919050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6106c8610c71565b6001600160a01b03811661072d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610535565b61073681610ccb565b50565b6001600160a01b03831661079b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610535565b6001600160a01b0382166107fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610535565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6108678484610696565b90505f1981146108ce57818110156108c15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610535565b6108ce8484848403610739565b50505050565b6001600160a01b0383166108fa5760405162461bcd60e51b8152600401610535906112cf565b6001600160a01b0382166109205760405162461bcd60e51b815260040161053590611314565b8061093f846001600160a01b03165f9081526020819052604090205490565b101561095d5760405162461bcd60e51b815260040161053590611357565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614806109ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316145b80156109dd575060105460ff16155b15610c61577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614610aab57305f90815260208190526040902054600f548110610aa957610a3c81610d1c565b600d546040515f916001600160a01b0316904780156108fc029184818181858888f19350505050905080610aa75760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606401610535565b505b505b6001600160a01b0383165f908152600e602052604081205460ff1680610ae857506001600160a01b0383165f908152600e602052604090205460ff165b15610af4575080610c56565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031603610bbf57600c546001600160a01b0384165f90815260208190526040902054610b5290846111b7565b1115610bbf5760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b6064820152608401610535565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603610c1a576064600a5484610c0991906112b8565b610c13919061139d565b9050610c37565b6064600b5484610c2a91906112b8565b610c34919061139d565b90505b610c4181846113bc565b91508015610c5457610c54853083610ef4565b505b6108ce848483610ef4565b610c6c838383610ef4565b505050565b6005546001600160a01b031633146105d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610535565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6010805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d5c57610d5c6113cf565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfc91906113e3565b81600181518110610e0f57610e0f6113cf565b60200260200101906001600160a01b031690816001600160a01b031681525050610e5a307f000000000000000000000000000000000000000000000000000000000000000084610739565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663791ac947835f8430610e994261012c6111b7565b6040518663ffffffff1660e01b8152600401610eb99594939291906113fe565b5f604051808303815f87803b158015610ed0575f80fd5b505af1158015610ee2573d5f803e3d5ffd5b50506010805460ff1916905550505050565b6001600160a01b038316610f1a5760405162461bcd60e51b8152600401610535906112cf565b6001600160a01b038216610f405760405162461bcd60e51b815260040161053590611314565b6001600160a01b0383165f9081526020819052604090205481811015610f785760405162461bcd60e51b815260040161053590611357565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b5f602080835283518060208501525f5b8181101561100a57858101830151858201604001528201610fee565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610736575f80fd5b5f806040838503121561104f575f80fd5b823561105a8161102a565b946020939093013593505050565b5f805f6060848603121561107a575f80fd5b83356110858161102a565b925060208401356110958161102a565b929592945050506040919091013590565b5f80604083850312156110b7575f80fd5b50508035926020909101359150565b5f602082840312156110d6575f80fd5b81356110e18161102a565b9392505050565b5f80604083850312156110f9575f80fd5b82356111048161102a565b915060208301356111148161102a565b809150509250929050565b600181811c9082168061113357607f821691505b60208210810361115157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560408201526b061746572207468616e2037360a41b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104e2576104e26111a3565b600181815b8085111561120457815f19048211156111ea576111ea6111a3565b808516156111f757918102915b93841c93908002906111cf565b509250929050565b5f8261121a575060016104e2565b8161122657505f6104e2565b816001811461123c576002811461124657611262565b60019150506104e2565b60ff841115611257576112576111a3565b50506001821b6104e2565b5060208310610133831016604e8410600b8410161715611285575081810a6104e2565b61128f83836111ca565b805f19048211156112a2576112a26111a3565b029392505050565b5f6110e160ff84168361120c565b80820281158282048414176104e2576104e26111a3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b5f826113b757634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104e2576104e26111a3565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113f3575f80fd5b81516110e18161102a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561144e5784516001600160a01b031683529383019391830191600101611429565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205ea912e7f3d23edcfde83266a39818352a49ec3ed3fe771f2e2f319d16813f3764736f6c63430008170033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063715018a6116100b3578063aa4bde281161006d578063aa4bde28146103a3578063b60c30f9146103b8578063bb85c6d1146103cd578063d0e1d262146103ec578063dd62ed3e14610401578063f2fde38b14610420575f80fd5b8063715018a6146102ff57806375f0a874146103155780638da5cb5b1461033457806395d89b4114610351578063a457c2d714610365578063a9059cbb14610384575f80fd5b8063313ce56711610104578063313ce5671461022b5780633441f06f14610246578063395093511461026557806349bd5a5e1461028457806362256589146102b757806370a08231146102cb575f80fd5b806306fdde031461014a578063095ea7b3146101745780631694505e146101a357806318160ddd146101ee57806323b872dd1461020c575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61043f565b60405161016b9190610fde565b60405180910390f35b34801561017f575f80fd5b5061019361018e36600461103e565b6104cf565b604051901515815260200161016b565b3480156101ae575f80fd5b506101d67f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161016b565b3480156101f9575f80fd5b506002545b60405190815260200161016b565b348015610217575f80fd5b50610193610226366004611068565b6104e8565b348015610236575f80fd5b506040516009815260200161016b565b348015610251575f80fd5b506101936102603660046110a6565b61050b565b348015610270575f80fd5b5061019361027f36600461103e565b61056e565b34801561028f575f80fd5b506101d67f000000000000000000000000d2172594d157edb85c920ba149ed6220de89c55b81565b3480156102c2575f80fd5b5061019361058f565b3480156102d6575f80fd5b506101fe6102e53660046110c6565b6001600160a01b03165f9081526020819052604090205490565b34801561030a575f80fd5b506103136105bf565b005b348015610320575f80fd5b50600d546101d6906001600160a01b031681565b34801561033f575f80fd5b506005546001600160a01b03166101d6565b34801561035c575f80fd5b5061015e6105d2565b348015610370575f80fd5b5061019361037f36600461103e565b6105e1565b34801561038f575f80fd5b5061019361039e36600461103e565b61065b565b3480156103ae575f80fd5b506101fe600c5481565b3480156103c3575f80fd5b506101fe600a5481565b3480156103d8575f80fd5b506101936103e73660046110c6565b610668565b3480156103f7575f80fd5b506101fe600b5481565b34801561040c575f80fd5b506101fe61041b3660046110e8565b610696565b34801561042b575f80fd5b5061031361043a3660046110c6565b6106c0565b60606003805461044e9061111f565b80601f016020809104026020016040519081016040528092919081815260200182805461047a9061111f565b80156104c55780601f1061049c576101008083540402835291602001916104c5565b820191905f5260205f20905b8154815290600101906020018083116104a857829003601f168201915b5050505050905090565b5f336104dc818585610739565b60019150505b92915050565b5f336104f585828561085c565b6105008585856108d4565b506001949350505050565b5f610514610c71565b600a83111561053e5760405162461bcd60e51b815260040161053590611157565b60405180910390fd5b600a82111561055f5760405162461bcd60e51b815260040161053590611157565b50600a91909155600b55600190565b5f336104dc8185856105808383610696565b61058a91906111b7565b610739565b5f610598610c71565b6008546105a99060ff16600a6112aa565b6009546105b691906112b8565b600c5550600190565b6105c7610c71565b6105d05f610ccb565b565b60606004805461044e9061111f565b5f33816105ee8286610696565b90508381101561064e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610535565b6105008286868403610739565b5f336104dc8185856108d4565b5f610671610c71565b50600d80546001600160a01b0383166001600160a01b03199091161790556001919050565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6106c8610c71565b6001600160a01b03811661072d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610535565b61073681610ccb565b50565b6001600160a01b03831661079b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610535565b6001600160a01b0382166107fc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610535565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6108678484610696565b90505f1981146108ce57818110156108c15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610535565b6108ce8484848403610739565b50505050565b6001600160a01b0383166108fa5760405162461bcd60e51b8152600401610535906112cf565b6001600160a01b0382166109205760405162461bcd60e51b815260040161053590611314565b8061093f846001600160a01b03165f9081526020819052604090205490565b101561095d5760405162461bcd60e51b815260040161053590611357565b7f000000000000000000000000d2172594d157edb85c920ba149ed6220de89c55b6001600160a01b0316836001600160a01b031614806109ce57507f000000000000000000000000d2172594d157edb85c920ba149ed6220de89c55b6001600160a01b0316826001600160a01b0316145b80156109dd575060105460ff16155b15610c61577f000000000000000000000000d2172594d157edb85c920ba149ed6220de89c55b6001600160a01b0316836001600160a01b031614610aab57305f90815260208190526040902054600f548110610aa957610a3c81610d1c565b600d546040515f916001600160a01b0316904780156108fc029184818181858888f19350505050905080610aa75760405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606401610535565b505b505b6001600160a01b0383165f908152600e602052604081205460ff1680610ae857506001600160a01b0383165f908152600e602052604090205460ff165b15610af4575080610c56565b7f000000000000000000000000d2172594d157edb85c920ba149ed6220de89c55b6001600160a01b0316846001600160a01b031603610bbf57600c546001600160a01b0384165f90815260208190526040902054610b5290846111b7565b1115610bbf5760405162461bcd60e51b815260206004820152603660248201527f45524332303a2062616c616e636520616d6f756e74206578636565646564206d604482015275185e081dd85b1b195d08185b5bdd5b9d081b1a5b5a5d60521b6064820152608401610535565b5f7f000000000000000000000000d2172594d157edb85c920ba149ed6220de89c55b6001600160a01b0316856001600160a01b031603610c1a576064600a5484610c0991906112b8565b610c13919061139d565b9050610c37565b6064600b5484610c2a91906112b8565b610c34919061139d565b90505b610c4181846113bc565b91508015610c5457610c54853083610ef4565b505b6108ce848483610ef4565b610c6c838383610ef4565b505050565b6005546001600160a01b031633146105d05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610535565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6010805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d5c57610d5c6113cf565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfc91906113e3565b81600181518110610e0f57610e0f6113cf565b60200260200101906001600160a01b031690816001600160a01b031681525050610e5a307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610739565b6001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac947835f8430610e994261012c6111b7565b6040518663ffffffff1660e01b8152600401610eb99594939291906113fe565b5f604051808303815f87803b158015610ed0575f80fd5b505af1158015610ee2573d5f803e3d5ffd5b50506010805460ff1916905550505050565b6001600160a01b038316610f1a5760405162461bcd60e51b8152600401610535906112cf565b6001600160a01b038216610f405760405162461bcd60e51b815260040161053590611314565b6001600160a01b0383165f9081526020819052604090205481811015610f785760405162461bcd60e51b815260040161053590611357565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b5f602080835283518060208501525f5b8181101561100a57858101830151858201604001528201610fee565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610736575f80fd5b5f806040838503121561104f575f80fd5b823561105a8161102a565b946020939093013593505050565b5f805f6060848603121561107a575f80fd5b83356110858161102a565b925060208401356110958161102a565b929592945050506040919091013590565b5f80604083850312156110b7575f80fd5b50508035926020909101359150565b5f602082840312156110d6575f80fd5b81356110e18161102a565b9392505050565b5f80604083850312156110f9575f80fd5b82356111048161102a565b915060208301356111148161102a565b809150509250929050565b600181811c9082168061113357607f821691505b60208210810361115157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252602c908201527f45524332303a20746f74616c20746178206d757374206e6f742062652067726560408201526b061746572207468616e2037360a41b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104e2576104e26111a3565b600181815b8085111561120457815f19048211156111ea576111ea6111a3565b808516156111f757918102915b93841c93908002906111cf565b509250929050565b5f8261121a575060016104e2565b8161122657505f6104e2565b816001811461123c576002811461124657611262565b60019150506104e2565b60ff841115611257576112576111a3565b50506001821b6104e2565b5060208310610133831016604e8410600b8410161715611285575081810a6104e2565b61128f83836111ca565b805f19048211156112a2576112a26111a3565b029392505050565b5f6110e160ff84168361120c565b80820281158282048414176104e2576104e26111a3565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b5f826113b757634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156104e2576104e26111a3565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113f3575f80fd5b81516110e18161102a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561144e5784516001600160a01b031683529383019391830191600101611429565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205ea912e7f3d23edcfde83266a39818352a49ec3ed3fe771f2e2f319d16813f3764736f6c63430008170033

Deployed Bytecode Sourcemap

23509:5262:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14424:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16698:244;;;;;;;;;;-1:-1:-1;16698:244:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16698:244:0;1023:187:1;24177:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;24177:51:0;1215:229:1;15562:110:0;;;;;;;;;;-1:-1:-1;15652:12:0;;15562:110;;;1595:25:1;;;1583:2;1568:18;15562:110:0;1449:177:1;17522:297:0;;;;;;;;;;-1:-1:-1;17522:297:0;;;;;:::i;:::-;;:::i;15405:92::-;;;;;;;;;;-1:-1:-1;15405:92:0;;15488:1;2234:36:1;;2222:2;2207:18;15405:92:0;2092:184:1;28038:548:0;;;;;;;;;;-1:-1:-1;28038:548:0;;;;;:::i;:::-;;:::i;19238:272::-;;;;;;;;;;-1:-1:-1;19238:272:0;;;;;:::i;:::-;;:::i;24235:38::-;;;;;;;;;;;;;;;28594:137;;;;;;;;;;;;;:::i;14589:177::-;;;;;;;;;;-1:-1:-1;14589:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;14740:18:0;14708:7;14740:18;;;;;;;;;;;;14589:177;12879:103;;;;;;;;;;;;;:::i;:::-;;24008:75;;;;;;;;;;-1:-1:-1;24008:75:0;;;;-1:-1:-1;;;;;24008:75:0;;;12231:87;;;;;;;;;;-1:-1:-1;12304:6:0;;-1:-1:-1;;;;;12304:6:0;12231:87;;14248:106;;;;;;;;;;;;;:::i;18322:507::-;;;;;;;;;;-1:-1:-1;18322:507:0;;;;;:::i;:::-;;:::i;16142:236::-;;;;;;;;;;-1:-1:-1;16142:236:0;;;;;:::i;:::-;;:::i;23909:70::-;;;;;;;;;;;;;;;;23818:38;;;;;;;;;;;;;;;;27848:182;;;;;;;;;;-1:-1:-1;27848:182:0;;;;;:::i;:::-;;:::i;23863:39::-;;;;;;;;;;;;;;;;15735:201;;;;;;;;;;-1:-1:-1;15735:201:0;;;;;:::i;:::-;;:::i;13137:238::-;;;;;;;;;;-1:-1:-1;13137:238:0;;;;;:::i;:::-;;:::i;14424:102::-;14480:13;14513:5;14506:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14424:102;:::o;16698:244::-;16819:4;11104:10;16880:32;11104:10;16896:7;16905:6;16880:8;:32::i;:::-;16930:4;16923:11;;;16698:244;;;;;:::o;17522:297::-;17655:4;11104:10;17713:38;17729:4;11104:10;17744:6;17713:15;:38::i;:::-;17762:27;17772:4;17778:2;17782:6;17762:9;:27::i;:::-;-1:-1:-1;17807:4:0;;17522:297;-1:-1:-1;;;;17522:297:0:o;28038:548::-;28179:4;12117:13;:11;:13::i;:::-;28243:2:::1;28219:19;28218:27;;28196:121;;;;-1:-1:-1::0;;;28196:121:0::1;;;;;;;:::i;:::-;;;;;;;;;28376:2;28351:20;28350:28;;28328:122;;;;-1:-1:-1::0;;;28328:122:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;28461:18:0::1;:40:::0;;;;28512:19:::1;:42:::0;28574:4:::1;::::0;28038:548::o;19238:272::-;19355:4;11104:10;19416:64;11104:10;19432:7;19469:10;19441:25;11104:10;19432:7;19441:9;:25::i;:::-;:38;;;;:::i;:::-;19416:8;:64::i;28594:137::-;28643:4;12117:13;:11;:13::i;:::-;28692:9:::1;::::0;28688:13:::1;::::0;28692:9:::1;;28688:2;:13;:::i;:::-;28678:7;;:23;;;;:::i;:::-;28660:15;:41:::0;-1:-1:-1;28719:4:0::1;28594:137:::0;:::o;12879:103::-;12117:13;:11;:13::i;:::-;12944:30:::1;12971:1;12944:18;:30::i;:::-;12879:103::o:0;14248:106::-;14306:13;14339:7;14332:14;;;;;:::i;18322:507::-;18444:4;11104:10;18444:4;18532:25;11104:10;18549:7;18532:9;:25::i;:::-;18505:52;;18610:15;18590:16;:35;;18568:122;;;;-1:-1:-1;;;18568:122:0;;6199:2:1;18568:122:0;;;6181:21:1;6238:2;6218:18;;;6211:30;6277:34;6257:18;;;6250:62;-1:-1:-1;;;6328:18:1;;;6321:35;6373:19;;18568:122:0;5997:401:1;18568:122:0;18726:60;18735:5;18742:7;18770:15;18751:16;:34;18726:8;:60::i;16142:236::-;16259:4;11104:10;16320:28;11104:10;16337:2;16341:6;16320:9;:28::i;27848:182::-;27951:4;12117:13;:11;:13::i;:::-;-1:-1:-1;27973:15:0::1;:27:::0;;-1:-1:-1;;;;;27973:27:0;::::1;-1:-1:-1::0;;;;;;27973:27:0;;::::1;;::::0;;;27848:182;;;:::o;15735:201::-;-1:-1:-1;;;;;15901:18:0;;;15869:7;15901:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15735:201::o;13137:238::-;12117:13;:11;:13::i;:::-;-1:-1:-1;;;;;13240:22:0;::::1;13218:110;;;::::0;-1:-1:-1;;;13218:110:0;;6605:2:1;13218:110:0::1;::::0;::::1;6587:21:1::0;6644:2;6624:18;;;6617:30;6683:34;6663:18;;;6656:62;-1:-1:-1;;;6734:18:1;;;6727:36;6780:19;;13218:110:0::1;6403:402:1::0;13218:110:0::1;13339:28;13358:8;13339:18;:28::i;:::-;13137:238:::0;:::o;21545:380::-;-1:-1:-1;;;;;21681:19:0;;21673:68;;;;-1:-1:-1;;;21673:68:0;;7012:2:1;21673:68:0;;;6994:21:1;7051:2;7031:18;;;7024:30;7090:34;7070:18;;;7063:62;-1:-1:-1;;;7141:18:1;;;7134:34;7185:19;;21673:68:0;6810:400:1;21673:68:0;-1:-1:-1;;;;;21760:21:0;;21752:68;;;;-1:-1:-1;;;21752:68:0;;7417:2:1;21752:68:0;;;7399:21:1;7456:2;7436:18;;;7429:30;7495:34;7475:18;;;7468:62;-1:-1:-1;;;7546:18:1;;;7539:32;7588:19;;21752:68:0;7215:398:1;21752:68:0;-1:-1:-1;;;;;21833:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21885:32;;1595:25:1;;;21885:32:0;;1568:18:1;21885:32:0;;;;;;;21545:380;;;:::o;22216:502::-;22351:24;22378:25;22388:5;22395:7;22378:9;:25::i;:::-;22351:52;;-1:-1:-1;;22418:16:0;:37;22414:297;;22518:6;22498:16;:26;;22472:117;;;;-1:-1:-1;;;22472:117:0;;7820:2:1;22472:117:0;;;7802:21:1;7859:2;7839:18;;;7832:30;7898:31;7878:18;;;7871:59;7947:18;;22472:117:0;7618:353:1;22472:117:0;22633:51;22642:5;22649:7;22677:6;22658:16;:25;22633:8;:51::i;:::-;22340:378;22216:502;;;:::o;25266:2070::-;-1:-1:-1;;;;;25398:18:0;;25390:68;;;;-1:-1:-1;;;25390:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25477:16:0;;25469:64;;;;-1:-1:-1;;;25469:64:0;;;;;;;:::i;:::-;25585:6;25566:15;25576:4;-1:-1:-1;;;;;14740:18:0;14708:7;14740:18;;;;;;;;;;;;14589:177;25566:15;:25;;25544:113;;;;-1:-1:-1;;;25544:113:0;;;;;;;:::i;:::-;25697:13;-1:-1:-1;;;;;25689:21:0;:4;-1:-1:-1;;;;;25689:21:0;;:44;;;;25720:13;-1:-1:-1;;;;;25714:19:0;:2;-1:-1:-1;;;;;25714:19:0;;25689:44;25688:67;;;;-1:-1:-1;25739:16:0;;;;25738:17;25688:67;25670:1659;;;25794:13;-1:-1:-1;;;;;25786:21:0;:4;-1:-1:-1;;;;;25786:21:0;;25782:480;;25881:4;25828:32;14740:18;;;;;;;;;;;25940:24;;25910:54;;25906:341;;25989:43;26007:24;25989:17;:43::i;:::-;26077:15;;26069:100;;26057:9;;-1:-1:-1;;;;;26077:15:0;;26125:21;26069:100;;;;;26057:9;26069:100;26057:9;26069:100;26125:21;26077:15;26069:100;;;;;;;26057:112;;26200:4;26192:35;;;;-1:-1:-1;;;26192:35:0;;9395:2:1;26192:35:0;;;9377:21:1;9434:2;9414:18;;;9407:30;-1:-1:-1;;;9453:18:1;;;9446:48;9511:18;;26192:35:0;9193:342:1;26192:35:0;25966:281;25906:341;25809:453;25782:480;-1:-1:-1;;;;;26319:24:0;;26278:22;26319:24;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;26347:22:0;;;;;;:18;:22;;;;;;;;26319:50;26315:881;;;-1:-1:-1;26407:6:0;26315:881;;;26466:13;-1:-1:-1;;;;;26458:21:0;:4;-1:-1:-1;;;;;26458:21:0;;26454:253;;26566:15;;-1:-1:-1;;;;;14740:18:0;;14708:7;14740:18;;;;;;;;;;;26539:22;;:6;:22;:::i;:::-;26538:43;;26504:183;;;;-1:-1:-1;;;26504:183:0;;9742:2:1;26504:183:0;;;9724:21:1;9781:2;9761:18;;;9754:30;9820:34;9800:18;;;9793:62;-1:-1:-1;;;9871:18:1;;;9864:52;9933:19;;26504:183:0;9540:418:1;26504:183:0;26725:22;26782:13;-1:-1:-1;;;;;26774:21:0;:4;-1:-1:-1;;;;;26774:21:0;;26770:228;;26870:3;26848:18;;26839:6;:27;;;;:::i;:::-;26838:35;;;;:::i;:::-;26820:54;;26770:228;;;26974:3;26951:19;;26942:6;:28;;;;:::i;:::-;26941:36;;;;:::i;:::-;26923:55;;26770:228;27035:25;27045:14;27035:6;:25;:::i;:::-;27018:42;-1:-1:-1;27085:18:0;;27081:99;;27126:54;27142:4;27156;27164:14;27126:15;:54::i;:::-;26435:761;26315:881;27210:41;27226:4;27232:2;27236:14;27210:15;:41::i;25670:1659::-;27284:33;27300:4;27306:2;27310:6;27284:15;:33::i;:::-;25266:2070;;;:::o;12396:132::-;12304:6;;-1:-1:-1;;;;;12304:6:0;11104:10;12460:23;12452:68;;;;-1:-1:-1;;;12452:68:0;;10520:2:1;12452:68:0;;;10502:21:1;;;10539:18;;;10532:30;10598:34;10578:18;;;10571:62;10650:18;;12452:68:0;10318:356:1;13535:191:0;13628:6;;;-1:-1:-1;;;;;13645:17:0;;;-1:-1:-1;;;;;;13645:17:0;;;;;;;13678:40;;13628:6;;;13645:17;13628:6;;13678:40;;13609:16;;13678:40;13598:128;13535:191;:::o;27344:496::-;24639:16;:23;;-1:-1:-1;;24639:23:0;24658:4;24639:23;;;27447:16:::1;::::0;;27461:1:::1;27447:16:::0;;;;;::::1;::::0;;-1:-1:-1;;27447:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;27447:16:0::1;27423:40;;27492:4;27474;27479:1;27474:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;27474:23:0::1;;;-1:-1:-1::0;;;;;27474:23:0::1;;;::::0;::::1;27518:15;-1:-1:-1::0;;;;;27518:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27508:4;27513:1;27508:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;27508:32:0::1;;;-1:-1:-1::0;;;;;27508:32:0::1;;;::::0;::::1;27553:62;27570:4;27585:15;27603:11;27553:8;:62::i;:::-;-1:-1:-1::0;;;;;27628:15:0::1;:66;;27709:11:::0;27735:1:::1;27751:4:::0;27778::::1;27799:21;:15;27817:3;27799:21;:::i;:::-;27628:204;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;24685:16:0;:24;;-1:-1:-1;;24685:24:0;;;-1:-1:-1;;;;27344:496:0:o;22726:776::-;-1:-1:-1;;;;;22857:18:0;;22849:68;;;;-1:-1:-1;;;22849:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22936:16:0;;22928:64;;;;-1:-1:-1;;;22928:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23027:15:0;;23005:19;23027:15;;;;;;;;;;;23075:21;;;;23053:109;;;;-1:-1:-1;;;23053:109:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23198:15:0;;;:9;:15;;;;;;;;;;;23216:20;;;23198:38;;23416:13;;;;;;;;;;:23;;;;;;23468:26;;1595:25:1;;;23416:13:0;;23468:26;;1568:18:1;23468:26:0;;;;;;;22838:664;22726:776;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:248::-;2349:6;2357;2410:2;2398:9;2389:7;2385:23;2381:32;2378:52;;;2426:1;2423;2416:12;2378:52;-1:-1:-1;;2449:23:1;;;2519:2;2504:18;;;2491:32;;-1:-1:-1;2281:248:1:o;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;:::-;2978:5;2742:247;-1:-1:-1;;;2742:247:1:o;2994:388::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3178:9;3165:23;3197:31;3222:5;3197:31;:::i;:::-;3247:5;-1:-1:-1;3304:2:1;3289:18;;3276:32;3317:33;3276:32;3317:33;:::i;:::-;3369:7;3359:17;;;2994:388;;;;;:::o;3387:380::-;3466:1;3462:12;;;;3509;;;3530:61;;3584:4;3576:6;3572:17;3562:27;;3530:61;3637:2;3629:6;3626:14;3606:18;3603:38;3600:161;;3683:10;3678:3;3674:20;3671:1;3664:31;3718:4;3715:1;3708:15;3746:4;3743:1;3736:15;3600:161;;3387:380;;;:::o;3772:408::-;3974:2;3956:21;;;4013:2;3993:18;;;3986:30;4052:34;4047:2;4032:18;;4025:62;-1:-1:-1;;;4118:2:1;4103:18;;4096:42;4170:3;4155:19;;3772:408::o;4185:127::-;4246:10;4241:3;4237:20;4234:1;4227:31;4277:4;4274:1;4267:15;4301:4;4298:1;4291:15;4317:125;4382:9;;;4403:10;;;4400:36;;;4416:18;;:::i;4447:416::-;4536:1;4573:5;4536:1;4587:270;4608:7;4598:8;4595:21;4587:270;;;4667:4;4663:1;4659:6;4655:17;4649:4;4646:27;4643:53;;;4676:18;;:::i;:::-;4726:7;4716:8;4712:22;4709:55;;;4746:16;;;;4709:55;4825:22;;;;4785:15;;;;4587:270;;;4591:3;4447:416;;;;;:::o;4868:806::-;4917:5;4947:8;4937:80;;-1:-1:-1;4988:1:1;5002:5;;4937:80;5036:4;5026:76;;-1:-1:-1;5073:1:1;5087:5;;5026:76;5118:4;5136:1;5131:59;;;;5204:1;5199:130;;;;5111:218;;5131:59;5161:1;5152:10;;5175:5;;;5199:130;5236:3;5226:8;5223:17;5220:43;;;5243:18;;:::i;:::-;-1:-1:-1;;5299:1:1;5285:16;;5314:5;;5111:218;;5413:2;5403:8;5400:16;5394:3;5388:4;5385:13;5381:36;5375:2;5365:8;5362:16;5357:2;5351:4;5348:12;5344:35;5341:77;5338:159;;;-1:-1:-1;5450:19:1;;;5482:5;;5338:159;5529:34;5554:8;5548:4;5529:34;:::i;:::-;5599:6;5595:1;5591:6;5587:19;5578:7;5575:32;5572:58;;;5610:18;;:::i;:::-;5648:20;;4868:806;-1:-1:-1;;;4868:806:1:o;5679:140::-;5737:5;5766:47;5807:4;5797:8;5793:19;5787:4;5766:47;:::i;5824:168::-;5897:9;;;5928;;5945:15;;;5939:22;;5925:37;5915:71;;5966:18;;:::i;7976:401::-;8178:2;8160:21;;;8217:2;8197:18;;;8190:30;8256:34;8251:2;8236:18;;8229:62;-1:-1:-1;;;8322:2:1;8307:18;;8300:35;8367:3;8352:19;;7976:401::o;8382:399::-;8584:2;8566:21;;;8623:2;8603:18;;;8596:30;8662:34;8657:2;8642:18;;8635:62;-1:-1:-1;;;8728:2:1;8713:18;;8706:33;8771:3;8756:19;;8382:399::o;8786:402::-;8988:2;8970:21;;;9027:2;9007:18;;;9000:30;9066:34;9061:2;9046:18;;9039:62;-1:-1:-1;;;9132:2:1;9117:18;;9110:36;9178:3;9163:19;;8786:402::o;9963:217::-;10003:1;10029;10019:132;;10073:10;10068:3;10064:20;10061:1;10054:31;10108:4;10105:1;10098:15;10136:4;10133:1;10126:15;10019:132;-1:-1:-1;10165:9:1;;9963:217::o;10185:128::-;10252:9;;;10273:11;;;10270:37;;;10287:18;;:::i;10811:127::-;10872:10;10867:3;10863:20;10860:1;10853:31;10903:4;10900:1;10893:15;10927:4;10924:1;10917:15;10943:251;11013:6;11066:2;11054:9;11045:7;11041:23;11037:32;11034:52;;;11082:1;11079;11072:12;11034:52;11114:9;11108:16;11133:31;11158:5;11133:31;:::i;11199:980::-;11461:4;11509:3;11498:9;11494:19;11540:6;11529:9;11522:25;11566:2;11604:6;11599:2;11588:9;11584:18;11577:34;11647:3;11642:2;11631:9;11627:18;11620:31;11671:6;11706;11700:13;11737:6;11729;11722:22;11775:3;11764:9;11760:19;11753:26;;11814:2;11806:6;11802:15;11788:29;;11835:1;11845:195;11859:6;11856:1;11853:13;11845:195;;;11924:13;;-1:-1:-1;;;;;11920:39:1;11908:52;;12015:15;;;;11980:12;;;;11956:1;11874:9;11845:195;;;-1:-1:-1;;;;;;;12096:32:1;;;;12091:2;12076:18;;12069:60;-1:-1:-1;;;12160:3:1;12145:19;12138:35;12057:3;11199:980;-1:-1:-1;;;11199:980:1:o

Swarm Source

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