ETH Price: $2,693.21 (-1.66%)

Token

JEET (JEET)
 

Overview

Max Total Supply

1,000,000,000,000 JEET

Holders

107

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,900,000,000 JEET

Value
$0.00
0x7970fe617d278f923897572599aee496e4223fa5
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:
LAUNCH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.19;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint 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 (uint);

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

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

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

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

    function transferFrom(
        address from,
        address to,
        uint 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 (uint);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);

    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 (uint);

    function price1CumulativeLast() external view returns (uint);

    function kLast() external view returns (uint);

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

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

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

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

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

    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(
        address recipient,
        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 `sender` to `recipient` 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 sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * 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 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 18;
    }

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

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

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, 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}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), 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}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        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) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(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) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, 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);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(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");

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

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(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 Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }

    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

library SafeMathUint {
    function toInt256Safe(uint256 a) internal pure returns (int256) {
        int256 b = int256(a);
        require(b >= 0);
        return b;
    }
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;
    uint256 public swapTokensAtAmount;

    bool private limitsInEffect = true;

    mapping(address => bool) private _blacklist;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

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

    constructor(
        string memory name,
        string memory ticker,
        uint256 _totalSupply,
        address _dexRouter,
        uint256 _maxTransactionAmount,
        uint256 _maxWallet
    ) ERC20(name, ticker) {
        uint256 totalSupply = _totalSupply * 1e18;

        maxTransactionAmount = (totalSupply * _maxTransactionAmount) / 1000;
        maxWallet = (totalSupply * _maxWallet) / 1000;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(_dexRouter);

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

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

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

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(address(owner()), totalSupply);
    }

    receive() external payable {}

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(
            !_blacklist[to] && !_blacklist[from],
            "You have been blacklisted from transfering tokens"
        );

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

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead)
            ) {
                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                    amount = 0;
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

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

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

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

    function excludeFromLimits(address wallet, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[wallet] = excluded;
    }

    function excludeFromList(address wallet, bool excluded) public onlyOwner {
        _blacklist[wallet] = excluded;
    }

    function restore(address token) external onlyOwner {
        if (token == 0x0000000000000000000000000000000000000000) {
            payable(msg.sender).call{value: address(this).balance}("");
        } else {
            IERC20 Token = IERC20(token);
            Token.transfer(msg.sender, Token.balanceOf(address(this)));
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"ticker","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"_dexRouter","type":"address"},{"internalType":"uint256","name":"_maxTransactionAmount","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","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":"wallet","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"restore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600b60006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162003c2038038062003c20833981810160405281019062000052919062000a7b565b8585816003908162000065919062000d96565b50806004908162000077919062000d96565b50505060006200008c6200046c60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000670de0b6b3a76400008562000143919062000eac565b90506103e8838262000156919062000eac565b62000162919062000f26565b6008819055506103e8828262000179919062000eac565b62000185919062000f26565b6009819055506000849050620001a38160016200047460201b60201c565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000230573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000256919062000f5e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e4919062000f5e565b6040518363ffffffff1660e01b81526004016200030392919062000fa1565b6020604051808303816000875af115801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062000f5e565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003be600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200047460201b60201c565b620003f3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200057160201b60201c565b62000415620004076200061260201b60201c565b60016200047460201b60201c565b620004283060016200047460201b60201c565b6200043d61dead60016200047460201b60201c565b6200045e620004516200061260201b60201c565b836200063c60201b60201c565b50505050505050506200119e565b600033905090565b620004846200046c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000516576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200050d906200102f565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006a590620010a1565b60405180910390fd5b620006c260008383620007e060201b60201c565b620006d981600254620007e560201b90919060201c565b60028190555062000732816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620007e560201b90919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007d49190620010d4565b60405180910390a35050565b505050565b6000808284620007f69190620010f1565b9050838110156200083e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000835906200117c565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620008b18262000866565b810181811067ffffffffffffffff82111715620008d357620008d262000877565b5b80604052505050565b6000620008e862000848565b9050620008f68282620008a6565b919050565b600067ffffffffffffffff82111562000919576200091862000877565b5b620009248262000866565b9050602081019050919050565b60005b838110156200095157808201518184015260208101905062000934565b60008484015250505050565b6000620009746200096e84620008fb565b620008dc565b90508281526020810184848401111562000993576200099262000861565b5b620009a084828562000931565b509392505050565b600082601f830112620009c057620009bf6200085c565b5b8151620009d28482602086016200095d565b91505092915050565b6000819050919050565b620009f081620009db565b8114620009fc57600080fd5b50565b60008151905062000a1081620009e5565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a438262000a16565b9050919050565b62000a558162000a36565b811462000a6157600080fd5b50565b60008151905062000a758162000a4a565b92915050565b60008060008060008060c0878903121562000a9b5762000a9a62000852565b5b600087015167ffffffffffffffff81111562000abc5762000abb62000857565b5b62000aca89828a01620009a8565b965050602087015167ffffffffffffffff81111562000aee5762000aed62000857565b5b62000afc89828a01620009a8565b955050604062000b0f89828a01620009ff565b945050606062000b2289828a0162000a64565b935050608062000b3589828a01620009ff565b92505060a062000b4889828a01620009ff565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ba857607f821691505b60208210810362000bbe5762000bbd62000b60565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000be9565b62000c34868362000be9565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000c7762000c7162000c6b84620009db565b62000c4c565b620009db565b9050919050565b6000819050919050565b62000c938362000c56565b62000cab62000ca28262000c7e565b84845462000bf6565b825550505050565b600090565b62000cc262000cb3565b62000ccf81848462000c88565b505050565b5b8181101562000cf75762000ceb60008262000cb8565b60018101905062000cd5565b5050565b601f82111562000d465762000d108162000bc4565b62000d1b8462000bd9565b8101602085101562000d2b578190505b62000d4362000d3a8562000bd9565b83018262000cd4565b50505b505050565b600082821c905092915050565b600062000d6b6000198460080262000d4b565b1980831691505092915050565b600062000d86838362000d58565b9150826002028217905092915050565b62000da18262000b55565b67ffffffffffffffff81111562000dbd5762000dbc62000877565b5b62000dc9825462000b8f565b62000dd682828562000cfb565b600060209050601f83116001811462000e0e576000841562000df9578287015190505b62000e05858262000d78565b86555062000e75565b601f19841662000e1e8662000bc4565b60005b8281101562000e485784890151825560018201915060208501945060208101905062000e21565b8683101562000e68578489015162000e64601f89168262000d58565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000eb982620009db565b915062000ec683620009db565b925082820262000ed681620009db565b9150828204841483151762000ef05762000eef62000e7d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f3382620009db565b915062000f4083620009db565b92508262000f535762000f5262000ef7565b5b828204905092915050565b60006020828403121562000f775762000f7662000852565b5b600062000f878482850162000a64565b91505092915050565b62000f9b8162000a36565b82525050565b600060408201905062000fb8600083018562000f90565b62000fc7602083018462000f90565b9392505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200101760208362000fce565b9150620010248262000fdf565b602082019050919050565b600060208201905081810360008301526200104a8162001008565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001089601f8362000fce565b9150620010968262001051565b602082019050919050565b60006020820190508181036000830152620010bc816200107a565b9050919050565b620010ce81620009db565b82525050565b6000602082019050620010eb6000830184620010c3565b92915050565b6000620010fe82620009db565b91506200110b83620009db565b925082820190508082111562001126576200112562000e7d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062001164601b8362000fce565b915062001171826200112c565b602082019050919050565b60006020820190508181036000830152620011978162001155565b9050919050565b612a7280620011ae6000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063c0a904a21161006f578063c0a904a2146104c7578063c8c8ebe4146104f0578063dd62ed3e1461051b578063e2f4560514610558578063f2fde38b14610583578063f8b45b05146105ac57610156565b8063715018a6146103b5578063751039fc146103cc5780638da5cb5b146103f757806395d89b4114610422578063a457c2d71461044d578063a9059cbb1461048a57610156565b806323b872dd1161010857806323b872dd1461027f578063313ce567146102bc57806339509351146102e757806349bd5a5e14610324578063651652271461034f57806370a082311461037857610156565b806306fdde031461015b578063080d2c7514610186578063095ea7b3146101af57806310d5de53146101ec5780631694505e1461022957806318160ddd1461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105d7565b60405161017d9190611ea9565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611f2e565b610669565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611f91565b6108a4565b6040516101e39190611fec565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190611f2e565b6108c2565b6040516102209190611fec565b60405180910390f35b34801561023557600080fd5b5061023e6108e2565b60405161024b9190612066565b60405180910390f35b34801561026057600080fd5b50610269610908565b6040516102769190612090565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a191906120ab565b610912565b6040516102b39190611fec565b60405180910390f35b3480156102c857600080fd5b506102d16109eb565b6040516102de919061211a565b60405180910390f35b3480156102f357600080fd5b5061030e60048036038101906103099190611f91565b6109f4565b60405161031b9190611fec565b60405180910390f35b34801561033057600080fd5b50610339610aa7565b6040516103469190612144565b60405180910390f35b34801561035b57600080fd5b506103766004803603810190610371919061218b565b610acd565b005b34801561038457600080fd5b5061039f600480360381019061039a9190611f2e565b610bbf565b6040516103ac9190612090565b60405180910390f35b3480156103c157600080fd5b506103ca610c07565b005b3480156103d857600080fd5b506103e1610d5f565b6040516103ee9190611fec565b60405180910390f35b34801561040357600080fd5b5061040c610e1a565b6040516104199190612144565b60405180910390f35b34801561042e57600080fd5b50610437610e44565b6040516104449190611ea9565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190611f91565b610ed6565b6040516104819190611fec565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190611f91565b610fa3565b6040516104be9190611fec565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e9919061218b565b610fc1565b005b3480156104fc57600080fd5b506105056110b3565b6040516105129190612090565b60405180910390f35b34801561052757600080fd5b50610542600480360381019061053d91906121cb565b6110b9565b60405161054f9190612090565b60405180910390f35b34801561056457600080fd5b5061056d611140565b60405161057a9190612090565b60405180910390f35b34801561058f57600080fd5b506105aa60048036038101906105a59190611f2e565b611146565b005b3480156105b857600080fd5b506105c161130c565b6040516105ce9190612090565b60405180910390f35b6060600380546105e69061223a565b80601f01602080910402602001604051908101604052809291908181526020018280546106129061223a565b801561065f5780601f106106345761010080835404028352916020019161065f565b820191906000526020600020905b81548152906001019060200180831161064257829003601f168201915b5050505050905090565b610671611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f7906122b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107a2573373ffffffffffffffffffffffffffffffffffffffff164760405161075890612308565b60006040518083038185875af1925050503d8060008114610795576040519150601f19603f3d011682016040523d82523d6000602084013e61079a565b606091505b5050506108a1565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107fd9190612144565b602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e9190612332565b6040518363ffffffff1660e01b815260040161085b92919061235f565b6020604051808303816000875af115801561087a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089e919061239d565b50505b50565b60006108b86108b1611312565b848461131a565b6001905092915050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600061091f8484846114e3565b6109e08461092b611312565b6109db856040518060600160405280602881526020016129f060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610991611312565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b61131a565b600190509392505050565b60006012905090565b6000610a9d610a01611312565b84610a988560016000610a12611312565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2390919063ffffffff16565b61131a565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad5611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b906122b7565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c0f611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c95906122b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610d69611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906122b7565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e539061223a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7f9061223a565b8015610ecc5780601f10610ea157610100808354040283529160200191610ecc565b820191906000526020600020905b815481529060010190602001808311610eaf57829003601f168201915b5050505050905090565b6000610f99610ee3611312565b84610f9485604051806060016040528060258152602001612a186025913960016000610f0d611312565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b61131a565b6001905092915050565b6000610fb7610fb0611312565b84846114e3565b6001905092915050565b610fc9611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f906122b7565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61114e611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906122b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361124c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112439061243c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611389576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611380906124ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612560565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d69190612090565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611549906125f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612684565b60405180910390fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116655750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90612716565b60405180910390fd5b600081036116bd576116b883836000611b81565b611aba565b600b60009054906101000a900460ff1615611aae576116da610e1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117485750611718610e1a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117815750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117bb575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aad57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118635750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561190a576008548111156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a4906127a8565b60405180910390fd5b6009546118b983610bbf565b826118c491906127f7565b1115611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc90612877565b60405180910390fd5b611aac565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119ad5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a00576008548111156119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ee90612909565b60405180910390fd5b60009050611aab565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611aaa57600954611a5d83610bbf565b82611a6891906127f7565b1115611aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa090612877565b60405180910390fd5b5b5b5b5b5b611ab9838383611b81565b5b505050565b6000838311158290611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe9190611ea9565b60405180910390fd5b5060008385611b169190612929565b9050809150509392505050565b6000808284611b3291906127f7565b905083811015611b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6e906129a9565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be7906125f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5690612684565b60405180910390fd5b611c6a838383611e14565b611cd5816040518060600160405280602681526020016129ca602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d68816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e079190612090565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e53578082015181840152602081019050611e38565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e7b82611e19565b611e858185611e24565b9350611e95818560208601611e35565b611e9e81611e5f565b840191505092915050565b60006020820190508181036000830152611ec38184611e70565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611efb82611ed0565b9050919050565b611f0b81611ef0565b8114611f1657600080fd5b50565b600081359050611f2881611f02565b92915050565b600060208284031215611f4457611f43611ecb565b5b6000611f5284828501611f19565b91505092915050565b6000819050919050565b611f6e81611f5b565b8114611f7957600080fd5b50565b600081359050611f8b81611f65565b92915050565b60008060408385031215611fa857611fa7611ecb565b5b6000611fb685828601611f19565b9250506020611fc785828601611f7c565b9150509250929050565b60008115159050919050565b611fe681611fd1565b82525050565b60006020820190506120016000830184611fdd565b92915050565b6000819050919050565b600061202c61202761202284611ed0565b612007565b611ed0565b9050919050565b600061203e82612011565b9050919050565b600061205082612033565b9050919050565b61206081612045565b82525050565b600060208201905061207b6000830184612057565b92915050565b61208a81611f5b565b82525050565b60006020820190506120a56000830184612081565b92915050565b6000806000606084860312156120c4576120c3611ecb565b5b60006120d286828701611f19565b93505060206120e386828701611f19565b92505060406120f486828701611f7c565b9150509250925092565b600060ff82169050919050565b612114816120fe565b82525050565b600060208201905061212f600083018461210b565b92915050565b61213e81611ef0565b82525050565b60006020820190506121596000830184612135565b92915050565b61216881611fd1565b811461217357600080fd5b50565b6000813590506121858161215f565b92915050565b600080604083850312156121a2576121a1611ecb565b5b60006121b085828601611f19565b92505060206121c185828601612176565b9150509250929050565b600080604083850312156121e2576121e1611ecb565b5b60006121f085828601611f19565b925050602061220185828601611f19565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061225257607f821691505b6020821081036122655761226461220b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122a1602083611e24565b91506122ac8261226b565b602082019050919050565b600060208201905081810360008301526122d081612294565b9050919050565b600081905092915050565b50565b60006122f26000836122d7565b91506122fd826122e2565b600082019050919050565b6000612313826122e5565b9150819050919050565b60008151905061232c81611f65565b92915050565b60006020828403121561234857612347611ecb565b5b60006123568482850161231d565b91505092915050565b60006040820190506123746000830185612135565b6123816020830184612081565b9392505050565b6000815190506123978161215f565b92915050565b6000602082840312156123b3576123b2611ecb565b5b60006123c184828501612388565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612426602683611e24565b9150612431826123ca565b604082019050919050565b6000602082019050818103600083015261245581612419565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124b8602483611e24565b91506124c38261245c565b604082019050919050565b600060208201905081810360008301526124e7816124ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061254a602283611e24565b9150612555826124ee565b604082019050919050565b600060208201905081810360008301526125798161253d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125dc602583611e24565b91506125e782612580565b604082019050919050565b6000602082019050818103600083015261260b816125cf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061266e602383611e24565b915061267982612612565b604082019050919050565b6000602082019050818103600083015261269d81612661565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460008201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b6000612700603183611e24565b915061270b826126a4565b604082019050919050565b6000602082019050818103600083015261272f816126f3565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000612792603583611e24565b915061279d82612736565b604082019050919050565b600060208201905081810360008301526127c181612785565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061280282611f5b565b915061280d83611f5b565b9250828201905080821115612825576128246127c8565b5b92915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612861601383611e24565b915061286c8261282b565b602082019050919050565b6000602082019050818103600083015261289081612854565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006128f3603683611e24565b91506128fe82612897565b604082019050919050565b60006020820190508181036000830152612922816128e6565b9050919050565b600061293482611f5b565b915061293f83611f5b565b9250828203905081811115612957576129566127c8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612993601b83611e24565b915061299e8261295d565b602082019050919050565b600060208201905081810360008301526129c281612986565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b141ee8f66e385f6d5ccd81ae7f8b635d141e43b458449e34ef15db972245bb64736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000e8d4a510000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a4545540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a45455400000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063c0a904a21161006f578063c0a904a2146104c7578063c8c8ebe4146104f0578063dd62ed3e1461051b578063e2f4560514610558578063f2fde38b14610583578063f8b45b05146105ac57610156565b8063715018a6146103b5578063751039fc146103cc5780638da5cb5b146103f757806395d89b4114610422578063a457c2d71461044d578063a9059cbb1461048a57610156565b806323b872dd1161010857806323b872dd1461027f578063313ce567146102bc57806339509351146102e757806349bd5a5e14610324578063651652271461034f57806370a082311461037857610156565b806306fdde031461015b578063080d2c7514610186578063095ea7b3146101af57806310d5de53146101ec5780631694505e1461022957806318160ddd1461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105d7565b60405161017d9190611ea9565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611f2e565b610669565b005b3480156101bb57600080fd5b506101d660048036038101906101d19190611f91565b6108a4565b6040516101e39190611fec565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190611f2e565b6108c2565b6040516102209190611fec565b60405180910390f35b34801561023557600080fd5b5061023e6108e2565b60405161024b9190612066565b60405180910390f35b34801561026057600080fd5b50610269610908565b6040516102769190612090565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a191906120ab565b610912565b6040516102b39190611fec565b60405180910390f35b3480156102c857600080fd5b506102d16109eb565b6040516102de919061211a565b60405180910390f35b3480156102f357600080fd5b5061030e60048036038101906103099190611f91565b6109f4565b60405161031b9190611fec565b60405180910390f35b34801561033057600080fd5b50610339610aa7565b6040516103469190612144565b60405180910390f35b34801561035b57600080fd5b506103766004803603810190610371919061218b565b610acd565b005b34801561038457600080fd5b5061039f600480360381019061039a9190611f2e565b610bbf565b6040516103ac9190612090565b60405180910390f35b3480156103c157600080fd5b506103ca610c07565b005b3480156103d857600080fd5b506103e1610d5f565b6040516103ee9190611fec565b60405180910390f35b34801561040357600080fd5b5061040c610e1a565b6040516104199190612144565b60405180910390f35b34801561042e57600080fd5b50610437610e44565b6040516104449190611ea9565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f9190611f91565b610ed6565b6040516104819190611fec565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190611f91565b610fa3565b6040516104be9190611fec565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e9919061218b565b610fc1565b005b3480156104fc57600080fd5b506105056110b3565b6040516105129190612090565b60405180910390f35b34801561052757600080fd5b50610542600480360381019061053d91906121cb565b6110b9565b60405161054f9190612090565b60405180910390f35b34801561056457600080fd5b5061056d611140565b60405161057a9190612090565b60405180910390f35b34801561058f57600080fd5b506105aa60048036038101906105a59190611f2e565b611146565b005b3480156105b857600080fd5b506105c161130c565b6040516105ce9190612090565b60405180910390f35b6060600380546105e69061223a565b80601f01602080910402602001604051908101604052809291908181526020018280546106129061223a565b801561065f5780601f106106345761010080835404028352916020019161065f565b820191906000526020600020905b81548152906001019060200180831161064257829003601f168201915b5050505050905090565b610671611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f7906122b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107a2573373ffffffffffffffffffffffffffffffffffffffff164760405161075890612308565b60006040518083038185875af1925050503d8060008114610795576040519150601f19603f3d011682016040523d82523d6000602084013e61079a565b606091505b5050506108a1565b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107fd9190612144565b602060405180830381865afa15801561081a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083e9190612332565b6040518363ffffffff1660e01b815260040161085b92919061235f565b6020604051808303816000875af115801561087a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089e919061239d565b50505b50565b60006108b86108b1611312565b848461131a565b6001905092915050565b600d6020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600061091f8484846114e3565b6109e08461092b611312565b6109db856040518060600160405280602881526020016129f060289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610991611312565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b61131a565b600190509392505050565b60006012905090565b6000610a9d610a01611312565b84610a988560016000610a12611312565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2390919063ffffffff16565b61131a565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad5611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b906122b7565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c0f611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c95906122b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000610d69611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906122b7565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610e539061223a565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7f9061223a565b8015610ecc5780601f10610ea157610100808354040283529160200191610ecc565b820191906000526020600020905b815481529060010190602001808311610eaf57829003601f168201915b5050505050905090565b6000610f99610ee3611312565b84610f9485604051806060016040528060258152602001612a186025913960016000610f0d611312565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b61131a565b6001905092915050565b6000610fb7610fb0611312565b84846114e3565b6001905092915050565b610fc9611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f906122b7565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61114e611312565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d4906122b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361124c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112439061243c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611389576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611380906124ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90612560565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114d69190612090565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611549906125f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b890612684565b60405180910390fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116655750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90612716565b60405180910390fd5b600081036116bd576116b883836000611b81565b611aba565b600b60009054906101000a900460ff1615611aae576116da610e1a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117485750611718610e1a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117815750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117bb575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611aad57600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156118635750600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561190a576008548111156118ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a4906127a8565b60405180910390fd5b6009546118b983610bbf565b826118c491906127f7565b1115611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc90612877565b60405180910390fd5b611aac565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156119ad5750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a00576008548111156119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ee90612909565b60405180910390fd5b60009050611aab565b600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611aaa57600954611a5d83610bbf565b82611a6891906127f7565b1115611aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa090612877565b60405180910390fd5b5b5b5b5b5b611ab9838383611b81565b5b505050565b6000838311158290611b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afe9190611ea9565b60405180910390fd5b5060008385611b169190612929565b9050809150509392505050565b6000808284611b3291906127f7565b905083811015611b77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6e906129a9565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be7906125f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5690612684565b60405180910390fd5b611c6a838383611e14565b611cd5816040518060600160405280602681526020016129ca602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abf9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d68816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e079190612090565b60405180910390a3505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e53578082015181840152602081019050611e38565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e7b82611e19565b611e858185611e24565b9350611e95818560208601611e35565b611e9e81611e5f565b840191505092915050565b60006020820190508181036000830152611ec38184611e70565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611efb82611ed0565b9050919050565b611f0b81611ef0565b8114611f1657600080fd5b50565b600081359050611f2881611f02565b92915050565b600060208284031215611f4457611f43611ecb565b5b6000611f5284828501611f19565b91505092915050565b6000819050919050565b611f6e81611f5b565b8114611f7957600080fd5b50565b600081359050611f8b81611f65565b92915050565b60008060408385031215611fa857611fa7611ecb565b5b6000611fb685828601611f19565b9250506020611fc785828601611f7c565b9150509250929050565b60008115159050919050565b611fe681611fd1565b82525050565b60006020820190506120016000830184611fdd565b92915050565b6000819050919050565b600061202c61202761202284611ed0565b612007565b611ed0565b9050919050565b600061203e82612011565b9050919050565b600061205082612033565b9050919050565b61206081612045565b82525050565b600060208201905061207b6000830184612057565b92915050565b61208a81611f5b565b82525050565b60006020820190506120a56000830184612081565b92915050565b6000806000606084860312156120c4576120c3611ecb565b5b60006120d286828701611f19565b93505060206120e386828701611f19565b92505060406120f486828701611f7c565b9150509250925092565b600060ff82169050919050565b612114816120fe565b82525050565b600060208201905061212f600083018461210b565b92915050565b61213e81611ef0565b82525050565b60006020820190506121596000830184612135565b92915050565b61216881611fd1565b811461217357600080fd5b50565b6000813590506121858161215f565b92915050565b600080604083850312156121a2576121a1611ecb565b5b60006121b085828601611f19565b92505060206121c185828601612176565b9150509250929050565b600080604083850312156121e2576121e1611ecb565b5b60006121f085828601611f19565b925050602061220185828601611f19565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061225257607f821691505b6020821081036122655761226461220b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122a1602083611e24565b91506122ac8261226b565b602082019050919050565b600060208201905081810360008301526122d081612294565b9050919050565b600081905092915050565b50565b60006122f26000836122d7565b91506122fd826122e2565b600082019050919050565b6000612313826122e5565b9150819050919050565b60008151905061232c81611f65565b92915050565b60006020828403121561234857612347611ecb565b5b60006123568482850161231d565b91505092915050565b60006040820190506123746000830185612135565b6123816020830184612081565b9392505050565b6000815190506123978161215f565b92915050565b6000602082840312156123b3576123b2611ecb565b5b60006123c184828501612388565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612426602683611e24565b9150612431826123ca565b604082019050919050565b6000602082019050818103600083015261245581612419565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006124b8602483611e24565b91506124c38261245c565b604082019050919050565b600060208201905081810360008301526124e7816124ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061254a602283611e24565b9150612555826124ee565b604082019050919050565b600060208201905081810360008301526125798161253d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006125dc602583611e24565b91506125e782612580565b604082019050919050565b6000602082019050818103600083015261260b816125cf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061266e602383611e24565b915061267982612612565b604082019050919050565b6000602082019050818103600083015261269d81612661565b9050919050565b7f596f752068617665206265656e20626c61636b6c69737465642066726f6d207460008201527f72616e73666572696e6720746f6b656e73000000000000000000000000000000602082015250565b6000612700603183611e24565b915061270b826126a4565b604082019050919050565b6000602082019050818103600083015261272f816126f3565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000612792603583611e24565b915061279d82612736565b604082019050919050565b600060208201905081810360008301526127c181612785565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061280282611f5b565b915061280d83611f5b565b9250828201905080821115612825576128246127c8565b5b92915050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000612861601383611e24565b915061286c8261282b565b602082019050919050565b6000602082019050818103600083015261289081612854565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b60006128f3603683611e24565b91506128fe82612897565b604082019050919050565b60006020820190508181036000830152612922816128e6565b9050919050565b600061293482611f5b565b915061293f83611f5b565b9250828203905081811115612957576129566127c8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612993601b83611e24565b915061299e8261295d565b602082019050919050565b600060208201905081810360008301526129c281612986565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b141ee8f66e385f6d5ccd81ae7f8b635d141e43b458449e34ef15db972245bb64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000e8d4a510000000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000044a4545540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a45455400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): JEET
Arg [1] : ticker (string): JEET
Arg [2] : _totalSupply (uint256): 1000000000000
Arg [3] : _dexRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [4] : _maxTransactionAmount (uint256): 5
Arg [5] : _maxWallet (uint256): 10

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 000000000000000000000000000000000000000000000000000000e8d4a51000
Arg [3] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4a45455400000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 4a45455400000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

30801:4857:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7929:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35310:345;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10162:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31170:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30877:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9049:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10838:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8891:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11701:293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30925:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35181:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9220:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22979:148;;;;;;;;;;;;;:::i;:::-;;34900:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22337:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8148:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12497:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9576:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;35029:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30962:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9839:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31035:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23282:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31004:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7929:100;7983:13;8016:5;8009:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7929:100;:::o;35310:345::-;22559:12;:10;:12::i;:::-;22549:22;;:6;;;;;;;;;;;:22;;;22541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;35385:42:::1;35376:51;;:5;:51;;::::0;35372:276:::1;;35452:10;35444:24;;35476:21;35444:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35372:276;;;35535:12;35557:5;35535:28;;35578:5;:14;;;35593:10;35605:5;:15;;;35629:4;35605:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35578:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;35520:128;35372:276;35310:345:::0;:::o;10162:194::-;10270:4;10287:39;10296:12;:10;:12::i;:::-;10310:7;10319:6;10287:8;:39::i;:::-;10344:4;10337:11;;10162:194;;;;:::o;31170:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;30877:41::-;;;;;;;;;;;;;:::o;9049:108::-;9110:7;9137:12;;9130:19;;9049:108;:::o;10838:454::-;10978:4;10995:36;11005:6;11013:9;11024:6;10995:9;:36::i;:::-;11042:220;11065:6;11086:12;:10;:12::i;:::-;11113:138;11169:6;11113:138;;;;;;;;;;;;;;;;;:11;:19;11125:6;11113:19;;;;;;;;;;;;;;;:33;11133:12;:10;:12::i;:::-;11113:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;11042:8;:220::i;:::-;11280:4;11273:11;;10838:454;;;;;:::o;8891:93::-;8949:5;8974:2;8967:9;;8891:93;:::o;11701:293::-;11814:4;11831:133;11854:12;:10;:12::i;:::-;11881:7;11903:50;11942:10;11903:11;:25;11915:12;:10;:12::i;:::-;11903:25;;;;;;;;;;;;;;;:34;11929:7;11903:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;11831:8;:133::i;:::-;11982:4;11975:11;;11701:293;;;;:::o;30925:28::-;;;;;;;;;;;;;:::o;35181:121::-;22559:12;:10;:12::i;:::-;22549:22;;:6;;;;;;;;;;;:22;;;22541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;35286:8:::1;35265:10;:18;35276:6;35265:18;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;35181:121:::0;;:::o;9220:143::-;9310:7;9337:9;:18;9347:7;9337:18;;;;;;;;;;;;;;;;9330:25;;9220:143;;;:::o;22979:148::-;22559:12;:10;:12::i;:::-;22549:22;;:6;;;;;;;;;;;:22;;;22541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23086:1:::1;23049:40;;23070:6;;;;;;;;;;;23049:40;;;;;;;;;;;;23117:1;23100:6;;:19;;;;;;;;;;;;;;;;;;22979:148::o:0;34900:121::-;34952:4;22559:12;:10;:12::i;:::-;22549:22;;:6;;;;;;;;;;;:22;;;22541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;34986:5:::1;34969:14;;:22;;;;;;;;;;;;;;;;;;35009:4;35002:11;;34900:121:::0;:::o;22337:79::-;22375:7;22402:6;;;;;;;;;;;22395:13;;22337:79;:::o;8148:104::-;8204:13;8237:7;8230:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8148:104;:::o;12497:393::-;12615:4;12632:228;12655:12;:10;:12::i;:::-;12682:7;12704:145;12761:15;12704:145;;;;;;;;;;;;;;;;;:11;:25;12716:12;:10;:12::i;:::-;12704:25;;;;;;;;;;;;;;;:34;12730:7;12704:34;;;;;;;;;;;;;;;;:38;;:145;;;;;:::i;:::-;12632:8;:228::i;:::-;12878:4;12871:11;;12497:393;;;;:::o;9576:200::-;9687:4;9704:42;9714:12;:10;:12::i;:::-;9728:9;9739:6;9704:9;:42::i;:::-;9764:4;9757:11;;9576:200;;;;:::o;35029:144::-;22559:12;:10;:12::i;:::-;22549:22;;:6;;;;;;;;;;;:22;;;22541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;35157:8:::1;35115:31;:39;35147:6;35115:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;35029:144:::0;;:::o;30962:35::-;;;;:::o;9839:176::-;9953:7;9980:11;:18;9992:5;9980:18;;;;;;;;;;;;;;;:27;9999:7;9980:27;;;;;;;;;;;;;;;;9973:34;;9839:176;;;;:::o;31035:33::-;;;;:::o;23282:281::-;22559:12;:10;:12::i;:::-;22549:22;;:6;;;;;;;;;;;:22;;;22541:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23405:1:::1;23385:22;;:8;:22;;::::0;23363:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23518:8;23489:38;;23510:6;;;;;;;;;;;23489:38;;;;;;;;;;;;23547:8;23538:6;;:17;;;;;;;;;;;;;;;;;;23282:281:::0;:::o;31004:24::-;;;;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;15881:380::-;16034:1;16017:19;;:5;:19;;;16009:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16115:1;16096:21;;:7;:21;;;16088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16199:6;16169:11;:18;16181:5;16169:18;;;;;;;;;;;;;;;:27;16188:7;16169:27;;;;;;;;;;;;;;;:36;;;;16237:7;16221:32;;16230:5;16221:32;;;16246:6;16221:32;;;;;;:::i;:::-;;;;;;;;15881:380;;;:::o;32660:2038::-;32808:1;32792:18;;:4;:18;;;32784:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;32885:1;32871:16;;:2;:16;;;32863:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;32961:10;:14;32972:2;32961:14;;;;;;;;;;;;;;;;;;;;;;;;;32960:15;:36;;;;;32980:10;:16;32991:4;32980:16;;;;;;;;;;;;;;;;;;;;;;;;;32979:17;32960:36;32938:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;33100:1;33090:6;:11;33086:93;;33118:28;33134:4;33140:2;33144:1;33118:15;:28::i;:::-;33161:7;;33086:93;33195:14;;;;;;;;;;;33191:1454;;;33256:7;:5;:7::i;:::-;33248:15;;:4;:15;;;;:49;;;;;33290:7;:5;:7::i;:::-;33284:13;;:2;:13;;;;33248:49;:86;;;;;33332:1;33318:16;;:2;:16;;;;33248:86;:128;;;;;33369:6;33355:21;;:2;:21;;;;33248:128;33226:1408;;;33465:25;:31;33491:4;33465:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;33522:31;:35;33554:2;33522:35;;;;;;;;;;;;;;;;;;;;;;;;;33521:36;33465:92;33439:1180;;;33644:20;;33634:6;:30;;33600:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;33852:9;;33835:13;33845:2;33835:9;:13::i;:::-;33826:6;:22;;;;:::i;:::-;:35;;33792:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;33439:1180;;;34030:25;:29;34056:2;34030:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;34085:31;:37;34117:4;34085:37;;;;;;;;;;;;;;;;;;;;;;;;;34084:38;34030:92;34004:615;;;34209:20;;34199:6;:30;;34165:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;34367:1;34358:10;;34004:615;;;34399:31;:35;34431:2;34399:35;;;;;;;;;;;;;;;;;;;;;;;;;34394:225;;34519:9;;34502:13;34512:2;34502:9;:13::i;:::-;34493:6;:22;;;;:::i;:::-;:35;;34459:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;34394:225;34004:615;33439:1180;33226:1408;33191:1454;34657:33;34673:4;34679:2;34683:6;34657:15;:33::i;:::-;32660:2038;;;;:::o;18162:226::-;18282:7;18315:1;18310;:6;;18318:12;18302:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;18342:9;18358:1;18354;:5;;;;:::i;:::-;18342:17;;18379:1;18372:8;;;18162:226;;;;;:::o;17259:181::-;17317:7;17337:9;17353:1;17349;:5;;;;:::i;:::-;17337:17;;17378:1;17373;:6;;17365:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17431:1;17424:8;;;17259:181;;;;:::o;13380:610::-;13538:1;13520:20;;:6;:20;;;13512:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13622:1;13601:23;;:9;:23;;;13593:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13677:47;13698:6;13706:9;13717:6;13677:20;:47::i;:::-;13757:108;13793:6;13757:108;;;;;;;;;;;;;;;;;:9;:17;13767:6;13757:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;13737:9;:17;13747:6;13737:17;;;;;;;;;;;;;;;:128;;;;13899:32;13924:6;13899:9;:20;13909:9;13899:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13876:9;:20;13886:9;13876:20;;;;;;;;;;;;;;;:55;;;;13964:9;13947:35;;13956:6;13947:35;;;13975:6;13947:35;;;;;;:::i;:::-;;;;;;;;13380:610;;;:::o;16864:125::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:329::-;2242:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:119;;;2297:79;;:::i;:::-;2259:119;2417:1;2442:53;2487:7;2478:6;2467:9;2463:22;2442:53;:::i;:::-;2432:63;;2388:117;2183:329;;;;:::o;2518:77::-;2555:7;2584:5;2573:16;;2518:77;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:619::-;5188:6;5196;5204;5253:2;5241:9;5232:7;5228:23;5224:32;5221:119;;;5259:79;;:::i;:::-;5221:119;5379:1;5404:53;5449:7;5440:6;5429:9;5425:22;5404:53;:::i;:::-;5394:63;;5350:117;5506:2;5532:53;5577:7;5568:6;5557:9;5553:22;5532:53;:::i;:::-;5522:63;;5477:118;5634:2;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5605:118;5111:619;;;;;:::o;5736:86::-;5771:7;5811:4;5804:5;5800:16;5789:27;;5736:86;;;:::o;5828:112::-;5911:22;5927:5;5911:22;:::i;:::-;5906:3;5899:35;5828:112;;:::o;5946:214::-;6035:4;6073:2;6062:9;6058:18;6050:26;;6086:67;6150:1;6139:9;6135:17;6126:6;6086:67;:::i;:::-;5946:214;;;;:::o;6166:118::-;6253:24;6271:5;6253:24;:::i;:::-;6248:3;6241:37;6166:118;;:::o;6290:222::-;6383:4;6421:2;6410:9;6406:18;6398:26;;6434:71;6502:1;6491:9;6487:17;6478:6;6434:71;:::i;:::-;6290:222;;;;:::o;6518:116::-;6588:21;6603:5;6588:21;:::i;:::-;6581:5;6578:32;6568:60;;6624:1;6621;6614:12;6568:60;6518:116;:::o;6640:133::-;6683:5;6721:6;6708:20;6699:29;;6737:30;6761:5;6737:30;:::i;:::-;6640:133;;;;:::o;6779:468::-;6844:6;6852;6901:2;6889:9;6880:7;6876:23;6872:32;6869:119;;;6907:79;;:::i;:::-;6869:119;7027:1;7052:53;7097:7;7088:6;7077:9;7073:22;7052:53;:::i;:::-;7042:63;;6998:117;7154:2;7180:50;7222:7;7213:6;7202:9;7198:22;7180:50;:::i;:::-;7170:60;;7125:115;6779:468;;;;;:::o;7253:474::-;7321:6;7329;7378:2;7366:9;7357:7;7353:23;7349:32;7346:119;;;7384:79;;:::i;:::-;7346:119;7504:1;7529:53;7574:7;7565:6;7554:9;7550:22;7529:53;:::i;:::-;7519:63;;7475:117;7631:2;7657:53;7702:7;7693:6;7682:9;7678:22;7657:53;:::i;:::-;7647:63;;7602:118;7253:474;;;;;:::o;7733:180::-;7781:77;7778:1;7771:88;7878:4;7875:1;7868:15;7902:4;7899:1;7892:15;7919:320;7963:6;8000:1;7994:4;7990:12;7980:22;;8047:1;8041:4;8037:12;8068:18;8058:81;;8124:4;8116:6;8112:17;8102:27;;8058:81;8186:2;8178:6;8175:14;8155:18;8152:38;8149:84;;8205:18;;:::i;:::-;8149:84;7970:269;7919:320;;;:::o;8245:182::-;8385:34;8381:1;8373:6;8369:14;8362:58;8245:182;:::o;8433:366::-;8575:3;8596:67;8660:2;8655:3;8596:67;:::i;:::-;8589:74;;8672:93;8761:3;8672:93;:::i;:::-;8790:2;8785:3;8781:12;8774:19;;8433:366;;;:::o;8805:419::-;8971:4;9009:2;8998:9;8994:18;8986:26;;9058:9;9052:4;9048:20;9044:1;9033:9;9029:17;9022:47;9086:131;9212:4;9086:131;:::i;:::-;9078:139;;8805:419;;;:::o;9230:147::-;9331:11;9368:3;9353:18;;9230:147;;;;:::o;9383:114::-;;:::o;9503:398::-;9662:3;9683:83;9764:1;9759:3;9683:83;:::i;:::-;9676:90;;9775:93;9864:3;9775:93;:::i;:::-;9893:1;9888:3;9884:11;9877:18;;9503:398;;;:::o;9907:379::-;10091:3;10113:147;10256:3;10113:147;:::i;:::-;10106:154;;10277:3;10270:10;;9907:379;;;:::o;10292:143::-;10349:5;10380:6;10374:13;10365:22;;10396:33;10423:5;10396:33;:::i;:::-;10292:143;;;;:::o;10441:351::-;10511:6;10560:2;10548:9;10539:7;10535:23;10531:32;10528:119;;;10566:79;;:::i;:::-;10528:119;10686:1;10711:64;10767:7;10758:6;10747:9;10743:22;10711:64;:::i;:::-;10701:74;;10657:128;10441:351;;;;:::o;10798:332::-;10919:4;10957:2;10946:9;10942:18;10934:26;;10970:71;11038:1;11027:9;11023:17;11014:6;10970:71;:::i;:::-;11051:72;11119:2;11108:9;11104:18;11095:6;11051:72;:::i;:::-;10798:332;;;;;:::o;11136:137::-;11190:5;11221:6;11215:13;11206:22;;11237:30;11261:5;11237:30;:::i;:::-;11136:137;;;;:::o;11279:345::-;11346:6;11395:2;11383:9;11374:7;11370:23;11366:32;11363:119;;;11401:79;;:::i;:::-;11363:119;11521:1;11546:61;11599:7;11590:6;11579:9;11575:22;11546:61;:::i;:::-;11536:71;;11492:125;11279:345;;;;:::o;11630:225::-;11770:34;11766:1;11758:6;11754:14;11747:58;11839:8;11834:2;11826:6;11822:15;11815:33;11630:225;:::o;11861:366::-;12003:3;12024:67;12088:2;12083:3;12024:67;:::i;:::-;12017:74;;12100:93;12189:3;12100:93;:::i;:::-;12218:2;12213:3;12209:12;12202:19;;11861:366;;;:::o;12233:419::-;12399:4;12437:2;12426:9;12422:18;12414:26;;12486:9;12480:4;12476:20;12472:1;12461:9;12457:17;12450:47;12514:131;12640:4;12514:131;:::i;:::-;12506:139;;12233:419;;;:::o;12658:223::-;12798:34;12794:1;12786:6;12782:14;12775:58;12867:6;12862:2;12854:6;12850:15;12843:31;12658:223;:::o;12887:366::-;13029:3;13050:67;13114:2;13109:3;13050:67;:::i;:::-;13043:74;;13126:93;13215:3;13126:93;:::i;:::-;13244:2;13239:3;13235:12;13228:19;;12887:366;;;:::o;13259:419::-;13425:4;13463:2;13452:9;13448:18;13440:26;;13512:9;13506:4;13502:20;13498:1;13487:9;13483:17;13476:47;13540:131;13666:4;13540:131;:::i;:::-;13532:139;;13259:419;;;:::o;13684:221::-;13824:34;13820:1;13812:6;13808:14;13801:58;13893:4;13888:2;13880:6;13876:15;13869:29;13684:221;:::o;13911:366::-;14053:3;14074:67;14138:2;14133:3;14074:67;:::i;:::-;14067:74;;14150:93;14239:3;14150:93;:::i;:::-;14268:2;14263:3;14259:12;14252:19;;13911:366;;;:::o;14283:419::-;14449:4;14487:2;14476:9;14472:18;14464:26;;14536:9;14530:4;14526:20;14522:1;14511:9;14507:17;14500:47;14564:131;14690:4;14564:131;:::i;:::-;14556:139;;14283:419;;;:::o;14708:224::-;14848:34;14844:1;14836:6;14832:14;14825:58;14917:7;14912:2;14904:6;14900:15;14893:32;14708:224;:::o;14938:366::-;15080:3;15101:67;15165:2;15160:3;15101:67;:::i;:::-;15094:74;;15177:93;15266:3;15177:93;:::i;:::-;15295:2;15290:3;15286:12;15279:19;;14938:366;;;:::o;15310:419::-;15476:4;15514:2;15503:9;15499:18;15491:26;;15563:9;15557:4;15553:20;15549:1;15538:9;15534:17;15527:47;15591:131;15717:4;15591:131;:::i;:::-;15583:139;;15310:419;;;:::o;15735:222::-;15875:34;15871:1;15863:6;15859:14;15852:58;15944:5;15939:2;15931:6;15927:15;15920:30;15735:222;:::o;15963:366::-;16105:3;16126:67;16190:2;16185:3;16126:67;:::i;:::-;16119:74;;16202:93;16291:3;16202:93;:::i;:::-;16320:2;16315:3;16311:12;16304:19;;15963:366;;;:::o;16335:419::-;16501:4;16539:2;16528:9;16524:18;16516:26;;16588:9;16582:4;16578:20;16574:1;16563:9;16559:17;16552:47;16616:131;16742:4;16616:131;:::i;:::-;16608:139;;16335:419;;;:::o;16760:236::-;16900:34;16896:1;16888:6;16884:14;16877:58;16969:19;16964:2;16956:6;16952:15;16945:44;16760:236;:::o;17002:366::-;17144:3;17165:67;17229:2;17224:3;17165:67;:::i;:::-;17158:74;;17241:93;17330:3;17241:93;:::i;:::-;17359:2;17354:3;17350:12;17343:19;;17002:366;;;:::o;17374:419::-;17540:4;17578:2;17567:9;17563:18;17555:26;;17627:9;17621:4;17617:20;17613:1;17602:9;17598:17;17591:47;17655:131;17781:4;17655:131;:::i;:::-;17647:139;;17374:419;;;:::o;17799:240::-;17939:34;17935:1;17927:6;17923:14;17916:58;18008:23;18003:2;17995:6;17991:15;17984:48;17799:240;:::o;18045:366::-;18187:3;18208:67;18272:2;18267:3;18208:67;:::i;:::-;18201:74;;18284:93;18373:3;18284:93;:::i;:::-;18402:2;18397:3;18393:12;18386:19;;18045:366;;;:::o;18417:419::-;18583:4;18621:2;18610:9;18606:18;18598:26;;18670:9;18664:4;18660:20;18656:1;18645:9;18641:17;18634:47;18698:131;18824:4;18698:131;:::i;:::-;18690:139;;18417:419;;;:::o;18842:180::-;18890:77;18887:1;18880:88;18987:4;18984:1;18977:15;19011:4;19008:1;19001:15;19028:191;19068:3;19087:20;19105:1;19087:20;:::i;:::-;19082:25;;19121:20;19139:1;19121:20;:::i;:::-;19116:25;;19164:1;19161;19157:9;19150:16;;19185:3;19182:1;19179:10;19176:36;;;19192:18;;:::i;:::-;19176:36;19028:191;;;;:::o;19225:169::-;19365:21;19361:1;19353:6;19349:14;19342:45;19225:169;:::o;19400:366::-;19542:3;19563:67;19627:2;19622:3;19563:67;:::i;:::-;19556:74;;19639:93;19728:3;19639:93;:::i;:::-;19757:2;19752:3;19748:12;19741:19;;19400:366;;;:::o;19772:419::-;19938:4;19976:2;19965:9;19961:18;19953:26;;20025:9;20019:4;20015:20;20011:1;20000:9;19996:17;19989:47;20053:131;20179:4;20053:131;:::i;:::-;20045:139;;19772:419;;;:::o;20197:241::-;20337:34;20333:1;20325:6;20321:14;20314:58;20406:24;20401:2;20393:6;20389:15;20382:49;20197:241;:::o;20444:366::-;20586:3;20607:67;20671:2;20666:3;20607:67;:::i;:::-;20600:74;;20683:93;20772:3;20683:93;:::i;:::-;20801:2;20796:3;20792:12;20785:19;;20444:366;;;:::o;20816:419::-;20982:4;21020:2;21009:9;21005:18;20997:26;;21069:9;21063:4;21059:20;21055:1;21044:9;21040:17;21033:47;21097:131;21223:4;21097:131;:::i;:::-;21089:139;;20816:419;;;:::o;21241:194::-;21281:4;21301:20;21319:1;21301:20;:::i;:::-;21296:25;;21335:20;21353:1;21335:20;:::i;:::-;21330:25;;21379:1;21376;21372:9;21364:17;;21403:1;21397:4;21394:11;21391:37;;;21408:18;;:::i;:::-;21391:37;21241:194;;;;:::o;21441:177::-;21581:29;21577:1;21569:6;21565:14;21558:53;21441:177;:::o;21624:366::-;21766:3;21787:67;21851:2;21846:3;21787:67;:::i;:::-;21780:74;;21863:93;21952:3;21863:93;:::i;:::-;21981:2;21976:3;21972:12;21965:19;;21624:366;;;:::o;21996:419::-;22162:4;22200:2;22189:9;22185:18;22177:26;;22249:9;22243:4;22239:20;22235:1;22224:9;22220:17;22213:47;22277:131;22403:4;22277:131;:::i;:::-;22269:139;;21996:419;;;:::o

Swarm Source

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