ETH Price: $2,413.08 (-0.19%)

Token

DOGE for President (POTUS)
 

Overview

Max Total Supply

1,000,000 POTUS

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,674.402548013497883354 POTUS

Value
$0.00
0xa57d5b21c9b70fb3c8d2087554a6fc1ac6822fb1
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:
DogeForPresident

Compiler Version
v0.8.18+commit.87f61d96

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-05
*/

/* https://t.me/dogeforpresidentportal
*/

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

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

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

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

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

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

// File: @openzeppelin/contracts/utils/math/SafeMath.sol

// OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // 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 (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @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) {
        return a + b;
    }

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

    /**
     * @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) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting 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 a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting 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) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * 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) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

// File: @openzeppelin/contracts/utils/Context.sol

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol

// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

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

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual 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 {
        _transferOwnership(address(0));
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol

pragma solidity >=0.6.2;

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

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol

pragma solidity >=0.6.2;

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

// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol

pragma solidity >=0.5.0;

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

contract DogeForPresident is Context, IERC20, Ownable {
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;
    uint256 private constant MAX = ~uint256(0);
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 10**6 * 10**_decimals;
    uint256 private constant maxSwap = 1000000 * 10**_decimals;
    uint256 public maxTxAmount = maxSwap;

    uint256 private _tax;
    uint256 public buyTax = 5;
    uint256 public sellTax = 5;

    uint256 private launchBlock;
    uint256 private blockDelay = 2;

    string private constant _name = "DOGE for President";
    string private constant _symbol = "POTUS";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address payable public marketingWallet;

    bool private launch = false;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        marketingWallet = payable(0x6a7bCbf178d9C137d07D995defc38e147D583b81);
        _balance[msg.sender] = _totalSupply;

        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[0x6a7bCbf178d9C137d07D995defc38e147D583b81] = true;
        _isExcludedFromFeeWallet[address(this)] = true;

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[account];
    }

    function transfer(address recipient, uint256 amount)public override returns (bool){
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function enableTrading() external onlyOwner {
        launch = true;
        launchBlock = block.number;
    }
	
	function addPair() external onlyOwner {
		IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
		_approve(address(this), address(uniswapV2Router), _totalSupply);
		uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
		uniswapV2Router.addLiquidityETH{value: address(this).balance}
			(address(this),
			balanceOf(address(this)),
			0,
			0,
			owner(),
			block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
	}

    function addExcludedWallet(address wallet) external onlyOwner {
        _isExcludedFromFeeWallet[wallet] = true;
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = _totalSupply;
    }

    function newBlockDelay(uint256 number) external onlyOwner {
        blockDelay = number;
    }

    function changeTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

      function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function _tokenTransfer(address from, address to, uint256 amount) private {
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

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

        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _tax = 0;
        } else {
            require(launch, "Wait till launch");
            require(amount <= maxTxAmount, "Max TxAmount 2% at launch");
            if (block.number < launchBlock + blockDelay) {_tax=99;} else {
                if (from == uniswapV2Pair) {
                    _tax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                        if (tokensToSwap > maxSwap) {
                            tokensToSwap = maxSwap;
                        }
                        swapTokensForEth(tokensToSwap);
                    _tax = sellTax;
                } else {
                    _tax = 0;
                }
            }
        }
        _tokenTransfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"wallet","type":"address"}],"name":"addExcludedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addPair","outputs":[],"stateMutability":"nonpayable","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":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"changeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"number","type":"uint256"}],"name":"newBlockDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620005aa565b620f4240620000249190620005fb565b6004556005600655600560075560026009556000600c60146101000a81548160ff0219169083151502179055503480156200005e57600080fd5b506200007f620000736200034460201b60201c565b6200034c60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736a7bcbf178d9c137d07d995defc38e147d583b81600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620001399190620005aa565b620f4240620001499190620005fb565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000736a7bcbf178d9c137d07d995defc38e147d583b8173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002b86200034460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620003179190620005aa565b620f4240620003279190620005fb565b60405162000336919062000657565b60405180910390a362000674565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200049e5780860481111562000476576200047562000410565b5b6001851615620004865780820291505b808102905062000496856200043f565b945062000456565b94509492505050565b600082620004b957600190506200058c565b81620004c957600090506200058c565b8160018114620004e25760028114620004ed5762000523565b60019150506200058c565b60ff84111562000502576200050162000410565b5b8360020a9150848211156200051c576200051b62000410565b5b506200058c565b5060208310610133831016604e8410600b84101617156200055d5782820a90508381111562000557576200055662000410565b5b6200058c565b6200056c84848460016200044c565b9250905081840481111562000586576200058562000410565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005b78262000593565b9150620005c4836200059d565b9250620005f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004a7565b905092915050565b6000620006088262000593565b9150620006158362000593565b9250828202620006258162000593565b915082820484148315176200063f576200063e62000410565b5b5092915050565b620006518162000593565b82525050565b60006020820190506200066e600083018462000646565b92915050565b612a5f80620006846000396000f3fe60806040526004361061014f5760003560e01c806375f0a874116100b657806395d89b411161006f57806395d89b4114610441578063a9059cbb1461046c578063cc1776d3146104a9578063dba9d420146104d4578063dd62ed3e146104fd578063f2fde38b1461053a57610156565b806375f0a874146103695780638a8c523c146103945780638c0b5e22146103ab5780638da5cb5b146103d65780638f08638a146104015780639036ed4d1461041857610156565b80634f7041a5116101085780634f7041a5146102815780635d098b38146102ac57806370a08231146102d557806370d8c9ec14610312578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063313ce5671461022b57806349bd5a5e1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d9190611cfb565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611db6565b6105a0565b6040516101ba9190611e11565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190611e3b565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611e56565b6105e1565b6040516102229190611e11565b60405180910390f35b34801561023757600080fd5b50610240610699565b60405161024d9190611ec5565b60405180910390f35b34801561026257600080fd5b5061026b6106a2565b6040516102789190611eef565b60405180910390f35b34801561028d57600080fd5b506102966106c8565b6040516102a39190611e3b565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611f0a565b6106ce565b005b3480156102e157600080fd5b506102fc60048036038101906102f79190611f0a565b61078e565b6040516103099190611e3b565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190611f37565b6107d7565b005b34801561034757600080fd5b5061035061085d565b005b34801561035e57600080fd5b506103676108e5565b005b34801561037557600080fd5b5061037e610985565b60405161038b9190611f85565b60405180910390f35b3480156103a057600080fd5b506103a96109ab565b005b3480156103b757600080fd5b506103c0610a4b565b6040516103cd9190611e3b565b60405180910390f35b3480156103e257600080fd5b506103eb610a51565b6040516103f89190611eef565b60405180910390f35b34801561040d57600080fd5b50610416610a7a565b005b34801561042457600080fd5b5061043f600480360381019061043a9190611fa0565b610ed4565b005b34801561044d57600080fd5b50610456610f62565b6040516104639190611cfb565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190611db6565b610f9f565b6040516104a09190611e11565b60405180910390f35b3480156104b557600080fd5b506104be610fbd565b6040516104cb9190611e3b565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190611f0a565b610fc3565b005b34801561050957600080fd5b50610524600480360381019061051f9190611fe0565b61109a565b6040516105319190611e3b565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190611f0a565b611121565b005b60606040518060400160405280601281526020017f444f474520666f7220507265736964656e740000000000000000000000000000815250905090565b60006105b46105ad611218565b8484611220565b6001905092915050565b60006012600a6105ce9190612182565b620f42406105dc91906121cd565b905090565b60006105ee8484846113e9565b61068e846105fa611218565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610644611218565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610689919061220f565b611220565b600190509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6106d6611218565b73ffffffffffffffffffffffffffffffffffffffff166106f4610a51565b73ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107419061228f565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107df611218565b73ffffffffffffffffffffffffffffffffffffffff166107fd610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a9061228f565b60405180910390fd5b8060098190555050565b610865611218565b73ffffffffffffffffffffffffffffffffffffffff16610883610a51565b73ffffffffffffffffffffffffffffffffffffffff16146108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d09061228f565b60405180910390fd5b6108e360006116fe565b565b6108ed611218565b73ffffffffffffffffffffffffffffffffffffffff1661090b610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610961576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109589061228f565b60405180910390fd5b6012600a61096f9190612182565b620f424061097d91906121cd565b600481905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b3611218565b73ffffffffffffffffffffffffffffffffffffffff166109d1610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e9061228f565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600881905550565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a82611218565b73ffffffffffffffffffffffffffffffffffffffff16610aa0610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed9061228f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b859190612182565b620f4240610b9391906121cd565b611220565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0791906122c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9291906122c4565b6040518363ffffffff1660e01b8152600401610caf9291906122f1565b6020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf291906122c4565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d7b3061078e565b600080610d86610a51565b426040518863ffffffff1660e01b8152600401610da89695949392919061235f565b60606040518083038185885af1158015610dc6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610deb91906123d5565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e8d929190612428565b6020604051808303816000875af1158015610eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed0919061247d565b5050565b610edc611218565b73ffffffffffffffffffffffffffffffffffffffff16610efa610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061228f565b60405180910390fd5b81600681905550806007819055505050565b60606040518060400160405280600581526020017f504f545553000000000000000000000000000000000000000000000000000000815250905090565b6000610fb3610fac611218565b84846113e9565b6001905092915050565b60075481565b610fcb611218565b73ffffffffffffffffffffffffffffffffffffffff16610fe9610a51565b73ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110369061228f565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611129611218565b73ffffffffffffffffffffffffffffffffffffffff16611147610a51565b73ffffffffffffffffffffffffffffffffffffffff161461119d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111949061228f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061251c565b60405180910390fd5b611215816116fe565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611286906125ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612640565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113dc9190611e3b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f906126d2565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114f95750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561150b5760006005819055506116ee565b600c60149054906101000a900460ff1661155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115519061273e565b60405180910390fd5b60045481111561159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906127aa565b60405180910390fd5b6009546008546115af91906127ca565b4310156115c35760636005819055506116ed565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611626576006546005819055506116ec565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e25760006116863061078e565b90506012600a6116969190612182565b620f42406116a491906121cd565b8111156116ca576012600a6116b99190612182565b620f42406116c791906121cd565b90505b6116d3816117c2565b600754600581905550506116eb565b60006005819055505b5b5b5b6116f9838383611a27565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff8111156117df576117de6127fe565b5b60405190808252806020026020018201604052801561180d5781602001602082028036833780820191505090505b50905030816000815181106118255761182461282d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f091906122c4565b816001815181106119045761190361282d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061196b30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611220565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016119f195949392919061296f565b600060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b505050505050565b6000606460055483611a3991906121cd565b611a4391906129f8565b905060008183611a53919061220f565b905082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa0919061220f565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2e91906127ca565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbc91906127ca565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5c9190611e3b565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ca5578082015181840152602081019050611c8a565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ccd82611c6b565b611cd78185611c76565b9350611ce7818560208601611c87565b611cf081611cb1565b840191505092915050565b60006020820190508181036000830152611d158184611cc2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d4d82611d22565b9050919050565b611d5d81611d42565b8114611d6857600080fd5b50565b600081359050611d7a81611d54565b92915050565b6000819050919050565b611d9381611d80565b8114611d9e57600080fd5b50565b600081359050611db081611d8a565b92915050565b60008060408385031215611dcd57611dcc611d1d565b5b6000611ddb85828601611d6b565b9250506020611dec85828601611da1565b9150509250929050565b60008115159050919050565b611e0b81611df6565b82525050565b6000602082019050611e266000830184611e02565b92915050565b611e3581611d80565b82525050565b6000602082019050611e506000830184611e2c565b92915050565b600080600060608486031215611e6f57611e6e611d1d565b5b6000611e7d86828701611d6b565b9350506020611e8e86828701611d6b565b9250506040611e9f86828701611da1565b9150509250925092565b600060ff82169050919050565b611ebf81611ea9565b82525050565b6000602082019050611eda6000830184611eb6565b92915050565b611ee981611d42565b82525050565b6000602082019050611f046000830184611ee0565b92915050565b600060208284031215611f2057611f1f611d1d565b5b6000611f2e84828501611d6b565b91505092915050565b600060208284031215611f4d57611f4c611d1d565b5b6000611f5b84828501611da1565b91505092915050565b6000611f6f82611d22565b9050919050565b611f7f81611f64565b82525050565b6000602082019050611f9a6000830184611f76565b92915050565b60008060408385031215611fb757611fb6611d1d565b5b6000611fc585828601611da1565b9250506020611fd685828601611da1565b9150509250929050565b60008060408385031215611ff757611ff6611d1d565b5b600061200585828601611d6b565b925050602061201685828601611d6b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120a65780860481111561208257612081612020565b5b60018516156120915780820291505b808102905061209f8561204f565b9450612066565b94509492505050565b6000826120bf576001905061217b565b816120cd576000905061217b565b81600181146120e357600281146120ed5761211c565b600191505061217b565b60ff8411156120ff576120fe612020565b5b8360020a91508482111561211657612115612020565b5b5061217b565b5060208310610133831016604e8410600b84101617156121515782820a90508381111561214c5761214b612020565b5b61217b565b61215e848484600161205c565b9250905081840481111561217557612174612020565b5b81810290505b9392505050565b600061218d82611d80565b915061219883611ea9565b92506121c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120af565b905092915050565b60006121d882611d80565b91506121e383611d80565b92508282026121f181611d80565b9150828204841483151761220857612207612020565b5b5092915050565b600061221a82611d80565b915061222583611d80565b925082820390508181111561223d5761223c612020565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612279602083611c76565b915061228482612243565b602082019050919050565b600060208201905081810360008301526122a88161226c565b9050919050565b6000815190506122be81611d54565b92915050565b6000602082840312156122da576122d9611d1d565b5b60006122e8848285016122af565b91505092915050565b60006040820190506123066000830185611ee0565b6123136020830184611ee0565b9392505050565b6000819050919050565b6000819050919050565b600061234961234461233f8461231a565b612324565b611d80565b9050919050565b6123598161232e565b82525050565b600060c0820190506123746000830189611ee0565b6123816020830188611e2c565b61238e6040830187612350565b61239b6060830186612350565b6123a86080830185611ee0565b6123b560a0830184611e2c565b979650505050505050565b6000815190506123cf81611d8a565b92915050565b6000806000606084860312156123ee576123ed611d1d565b5b60006123fc868287016123c0565b935050602061240d868287016123c0565b925050604061241e868287016123c0565b9150509250925092565b600060408201905061243d6000830185611ee0565b61244a6020830184611e2c565b9392505050565b61245a81611df6565b811461246557600080fd5b50565b60008151905061247781612451565b92915050565b60006020828403121561249357612492611d1d565b5b60006124a184828501612468565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612506602683611c76565b9150612511826124aa565b604082019050919050565b60006020820190508181036000830152612535816124f9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612598602483611c76565b91506125a38261253c565b604082019050919050565b600060208201905081810360008301526125c78161258b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061262a602283611c76565b9150612635826125ce565b604082019050919050565b600060208201905081810360008301526126598161261d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126bc602583611c76565b91506126c782612660565b604082019050919050565b600060208201905081810360008301526126eb816126af565b9050919050565b7f576169742074696c6c206c61756e636800000000000000000000000000000000600082015250565b6000612728601083611c76565b9150612733826126f2565b602082019050919050565b600060208201905081810360008301526127578161271b565b9050919050565b7f4d6178205478416d6f756e74203225206174206c61756e636800000000000000600082015250565b6000612794601983611c76565b915061279f8261275e565b602082019050919050565b600060208201905081810360008301526127c381612787565b9050919050565b60006127d582611d80565b91506127e083611d80565b92508282019050808211156127f8576127f7612020565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61289181611d42565b82525050565b60006128a38383612888565b60208301905092915050565b6000602082019050919050565b60006128c78261285c565b6128d18185612867565b93506128dc83612878565b8060005b8381101561290d5781516128f48882612897565b97506128ff836128af565b9250506001810190506128e0565b5085935050505092915050565b600061293561293061292b84611d22565b612324565b611d22565b9050919050565b60006129478261291a565b9050919050565b60006129598261293c565b9050919050565b6129698161294e565b82525050565b600060a0820190506129846000830188611e2c565b6129916020830187612350565b81810360408301526129a381866128bc565b90506129b26060830185612960565b6129bf6080830184611e2c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a0382611d80565b9150612a0e83611d80565b925082612a1e57612a1d6129c9565b5b82820490509291505056fea2646970667358221220a8904cd8a01f2643428d492489d02a0922766462526a8ba42bbd1485702bfc2764736f6c63430008120033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806375f0a874116100b657806395d89b411161006f57806395d89b4114610441578063a9059cbb1461046c578063cc1776d3146104a9578063dba9d420146104d4578063dd62ed3e146104fd578063f2fde38b1461053a57610156565b806375f0a874146103695780638a8c523c146103945780638c0b5e22146103ab5780638da5cb5b146103d65780638f08638a146104015780639036ed4d1461041857610156565b80634f7041a5116101085780634f7041a5146102815780635d098b38146102ac57806370a08231146102d557806370d8c9ec14610312578063715018a61461033b578063751039fc1461035257610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063313ce5671461022b57806349bd5a5e1461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610563565b60405161017d9190611cfb565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190611db6565b6105a0565b6040516101ba9190611e11565b60405180910390f35b3480156101cf57600080fd5b506101d86105be565b6040516101e59190611e3b565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190611e56565b6105e1565b6040516102229190611e11565b60405180910390f35b34801561023757600080fd5b50610240610699565b60405161024d9190611ec5565b60405180910390f35b34801561026257600080fd5b5061026b6106a2565b6040516102789190611eef565b60405180910390f35b34801561028d57600080fd5b506102966106c8565b6040516102a39190611e3b565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611f0a565b6106ce565b005b3480156102e157600080fd5b506102fc60048036038101906102f79190611f0a565b61078e565b6040516103099190611e3b565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190611f37565b6107d7565b005b34801561034757600080fd5b5061035061085d565b005b34801561035e57600080fd5b506103676108e5565b005b34801561037557600080fd5b5061037e610985565b60405161038b9190611f85565b60405180910390f35b3480156103a057600080fd5b506103a96109ab565b005b3480156103b757600080fd5b506103c0610a4b565b6040516103cd9190611e3b565b60405180910390f35b3480156103e257600080fd5b506103eb610a51565b6040516103f89190611eef565b60405180910390f35b34801561040d57600080fd5b50610416610a7a565b005b34801561042457600080fd5b5061043f600480360381019061043a9190611fa0565b610ed4565b005b34801561044d57600080fd5b50610456610f62565b6040516104639190611cfb565b60405180910390f35b34801561047857600080fd5b50610493600480360381019061048e9190611db6565b610f9f565b6040516104a09190611e11565b60405180910390f35b3480156104b557600080fd5b506104be610fbd565b6040516104cb9190611e3b565b60405180910390f35b3480156104e057600080fd5b506104fb60048036038101906104f69190611f0a565b610fc3565b005b34801561050957600080fd5b50610524600480360381019061051f9190611fe0565b61109a565b6040516105319190611e3b565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190611f0a565b611121565b005b60606040518060400160405280601281526020017f444f474520666f7220507265736964656e740000000000000000000000000000815250905090565b60006105b46105ad611218565b8484611220565b6001905092915050565b60006012600a6105ce9190612182565b620f42406105dc91906121cd565b905090565b60006105ee8484846113e9565b61068e846105fa611218565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610644611218565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610689919061220f565b611220565b600190509392505050565b60006012905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6106d6611218565b73ffffffffffffffffffffffffffffffffffffffff166106f4610a51565b73ffffffffffffffffffffffffffffffffffffffff161461074a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107419061228f565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107df611218565b73ffffffffffffffffffffffffffffffffffffffff166107fd610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a9061228f565b60405180910390fd5b8060098190555050565b610865611218565b73ffffffffffffffffffffffffffffffffffffffff16610883610a51565b73ffffffffffffffffffffffffffffffffffffffff16146108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d09061228f565b60405180910390fd5b6108e360006116fe565b565b6108ed611218565b73ffffffffffffffffffffffffffffffffffffffff1661090b610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610961576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109589061228f565b60405180910390fd5b6012600a61096f9190612182565b620f424061097d91906121cd565b600481905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109b3611218565b73ffffffffffffffffffffffffffffffffffffffff166109d1610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e9061228f565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555043600881905550565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a82611218565b73ffffffffffffffffffffffffffffffffffffffff16610aa0610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aed9061228f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9830600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610b859190612182565b620f4240610b9391906121cd565b611220565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0791906122c4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9291906122c4565b6040518363ffffffff1660e01b8152600401610caf9291906122f1565b6020604051808303816000875af1158015610cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf291906122c4565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d7b3061078e565b600080610d86610a51565b426040518863ffffffff1660e01b8152600401610da89695949392919061235f565b60606040518083038185885af1158015610dc6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610deb91906123d5565b505050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e8d929190612428565b6020604051808303816000875af1158015610eac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed0919061247d565b5050565b610edc611218565b73ffffffffffffffffffffffffffffffffffffffff16610efa610a51565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061228f565b60405180910390fd5b81600681905550806007819055505050565b60606040518060400160405280600581526020017f504f545553000000000000000000000000000000000000000000000000000000815250905090565b6000610fb3610fac611218565b84846113e9565b6001905092915050565b60075481565b610fcb611218565b73ffffffffffffffffffffffffffffffffffffffff16610fe9610a51565b73ffffffffffffffffffffffffffffffffffffffff161461103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110369061228f565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611129611218565b73ffffffffffffffffffffffffffffffffffffffff16611147610a51565b73ffffffffffffffffffffffffffffffffffffffff161461119d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111949061228f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061251c565b60405180910390fd5b611215816116fe565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611286906125ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612640565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113dc9190611e3b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144f906126d2565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114f95750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561150b5760006005819055506116ee565b600c60149054906101000a900460ff1661155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115519061273e565b60405180910390fd5b60045481111561159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906127aa565b60405180910390fd5b6009546008546115af91906127ca565b4310156115c35760636005819055506116ed565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611626576006546005819055506116ec565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116e25760006116863061078e565b90506012600a6116969190612182565b620f42406116a491906121cd565b8111156116ca576012600a6116b99190612182565b620f42406116c791906121cd565b90505b6116d3816117c2565b600754600581905550506116eb565b60006005819055505b5b5b5b6116f9838383611a27565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600267ffffffffffffffff8111156117df576117de6127fe565b5b60405190808252806020026020018201604052801561180d5781602001602082028036833780820191505090505b50905030816000815181106118255761182461282d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118f091906122c4565b816001815181106119045761190361282d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061196b30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611220565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016119f195949392919061296f565b600060405180830381600087803b158015611a0b57600080fd5b505af1158015611a1f573d6000803e3d6000fd5b505050505050565b6000606460055483611a3991906121cd565b611a4391906129f8565b905060008183611a53919061220f565b905082600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa0919061220f565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b2e91906127ca565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bbc91906127ca565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5c9190611e3b565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ca5578082015181840152602081019050611c8a565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ccd82611c6b565b611cd78185611c76565b9350611ce7818560208601611c87565b611cf081611cb1565b840191505092915050565b60006020820190508181036000830152611d158184611cc2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d4d82611d22565b9050919050565b611d5d81611d42565b8114611d6857600080fd5b50565b600081359050611d7a81611d54565b92915050565b6000819050919050565b611d9381611d80565b8114611d9e57600080fd5b50565b600081359050611db081611d8a565b92915050565b60008060408385031215611dcd57611dcc611d1d565b5b6000611ddb85828601611d6b565b9250506020611dec85828601611da1565b9150509250929050565b60008115159050919050565b611e0b81611df6565b82525050565b6000602082019050611e266000830184611e02565b92915050565b611e3581611d80565b82525050565b6000602082019050611e506000830184611e2c565b92915050565b600080600060608486031215611e6f57611e6e611d1d565b5b6000611e7d86828701611d6b565b9350506020611e8e86828701611d6b565b9250506040611e9f86828701611da1565b9150509250925092565b600060ff82169050919050565b611ebf81611ea9565b82525050565b6000602082019050611eda6000830184611eb6565b92915050565b611ee981611d42565b82525050565b6000602082019050611f046000830184611ee0565b92915050565b600060208284031215611f2057611f1f611d1d565b5b6000611f2e84828501611d6b565b91505092915050565b600060208284031215611f4d57611f4c611d1d565b5b6000611f5b84828501611da1565b91505092915050565b6000611f6f82611d22565b9050919050565b611f7f81611f64565b82525050565b6000602082019050611f9a6000830184611f76565b92915050565b60008060408385031215611fb757611fb6611d1d565b5b6000611fc585828601611da1565b9250506020611fd685828601611da1565b9150509250929050565b60008060408385031215611ff757611ff6611d1d565b5b600061200585828601611d6b565b925050602061201685828601611d6b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156120a65780860481111561208257612081612020565b5b60018516156120915780820291505b808102905061209f8561204f565b9450612066565b94509492505050565b6000826120bf576001905061217b565b816120cd576000905061217b565b81600181146120e357600281146120ed5761211c565b600191505061217b565b60ff8411156120ff576120fe612020565b5b8360020a91508482111561211657612115612020565b5b5061217b565b5060208310610133831016604e8410600b84101617156121515782820a90508381111561214c5761214b612020565b5b61217b565b61215e848484600161205c565b9250905081840481111561217557612174612020565b5b81810290505b9392505050565b600061218d82611d80565b915061219883611ea9565b92506121c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846120af565b905092915050565b60006121d882611d80565b91506121e383611d80565b92508282026121f181611d80565b9150828204841483151761220857612207612020565b5b5092915050565b600061221a82611d80565b915061222583611d80565b925082820390508181111561223d5761223c612020565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612279602083611c76565b915061228482612243565b602082019050919050565b600060208201905081810360008301526122a88161226c565b9050919050565b6000815190506122be81611d54565b92915050565b6000602082840312156122da576122d9611d1d565b5b60006122e8848285016122af565b91505092915050565b60006040820190506123066000830185611ee0565b6123136020830184611ee0565b9392505050565b6000819050919050565b6000819050919050565b600061234961234461233f8461231a565b612324565b611d80565b9050919050565b6123598161232e565b82525050565b600060c0820190506123746000830189611ee0565b6123816020830188611e2c565b61238e6040830187612350565b61239b6060830186612350565b6123a86080830185611ee0565b6123b560a0830184611e2c565b979650505050505050565b6000815190506123cf81611d8a565b92915050565b6000806000606084860312156123ee576123ed611d1d565b5b60006123fc868287016123c0565b935050602061240d868287016123c0565b925050604061241e868287016123c0565b9150509250925092565b600060408201905061243d6000830185611ee0565b61244a6020830184611e2c565b9392505050565b61245a81611df6565b811461246557600080fd5b50565b60008151905061247781612451565b92915050565b60006020828403121561249357612492611d1d565b5b60006124a184828501612468565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612506602683611c76565b9150612511826124aa565b604082019050919050565b60006020820190508181036000830152612535816124f9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612598602483611c76565b91506125a38261253c565b604082019050919050565b600060208201905081810360008301526125c78161258b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061262a602283611c76565b9150612635826125ce565b604082019050919050565b600060208201905081810360008301526126598161261d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126bc602583611c76565b91506126c782612660565b604082019050919050565b600060208201905081810360008301526126eb816126af565b9050919050565b7f576169742074696c6c206c61756e636800000000000000000000000000000000600082015250565b6000612728601083611c76565b9150612733826126f2565b602082019050919050565b600060208201905081810360008301526127578161271b565b9050919050565b7f4d6178205478416d6f756e74203225206174206c61756e636800000000000000600082015250565b6000612794601983611c76565b915061279f8261275e565b602082019050919050565b600060208201905081810360008301526127c381612787565b9050919050565b60006127d582611d80565b91506127e083611d80565b92508282019050808211156127f8576127f7612020565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61289181611d42565b82525050565b60006128a38383612888565b60208301905092915050565b6000602082019050919050565b60006128c78261285c565b6128d18185612867565b93506128dc83612878565b8060005b8381101561290d5781516128f48882612897565b97506128ff836128af565b9250506001810190506128e0565b5085935050505092915050565b600061293561293061292b84611d22565b612324565b611d22565b9050919050565b60006129478261291a565b9050919050565b60006129598261293c565b9050919050565b6129698161294e565b82525050565b600060a0820190506129846000830188611e2c565b6129916020830187612350565b81810360408301526129a381866128bc565b90506129b26060830185612960565b6129bf6080830184611e2c565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a0382611d80565b9150612a0e83611d80565b925082612a1e57612a1d6129c9565b5b82820490509291505056fea2646970667358221220a8904cd8a01f2643428d492489d02a0922766462526a8ba42bbd1485702bfc2764736f6c63430008120033

Deployed Bytecode Sourcemap

19095:6472:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20571:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21405:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20848:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21573:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20757:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19941:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19643:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23422:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20956:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23163:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12453:103;;;;;;;;;;;;;:::i;:::-;;23067:88;;;;;;;;;;;;;:::i;:::-;;19976:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22188:113;;;;;;;;;;;;;:::i;:::-;;19571:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11802:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22307:624;;;;;;;;;;;;;:::i;:::-;;23267:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20662:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21082:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19675:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22939:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21255:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12711:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20571:83;20608:13;20641:5;;;;;;;;;;;;;;;;;20634:12;;20571:83;:::o;21405:160::-;21480:4;21496:39;21505:12;:10;:12::i;:::-;21519:7;21528:6;21496:8;:39::i;:::-;21553:4;21546:11;;21405:160;;;;:::o;20848:100::-;20901:7;19429:2;19486;:13;;;;:::i;:::-;19478:5;:21;;;;:::i;:::-;20921:19;;20848:100;:::o;21573:264::-;21671:4;21688:36;21698:6;21706:9;21717:6;21688:9;:36::i;:::-;21735:72;21744:6;21751:12;:10;:12::i;:::-;21800:6;21764:11;:19;21776:6;21764:19;;;;;;;;;;;;;;;:33;21784:12;:10;:12::i;:::-;21764:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;21735:8;:72::i;:::-;21825:4;21818:11;;21573:264;;;;;:::o;20757:83::-;20798:5;19429:2;20816:16;;20757:83;:::o;19941:28::-;;;;;;;;;;;;;:::o;19643:25::-;;;;:::o;23422:135::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23532:16:::1;23506:15;;:43;;;;;;;;;;;;;;;;;;23422:135:::0;:::o;20956:118::-;21022:7;21049:8;:17;21058:7;21049:17;;;;;;;;;;;;;;;;21042:24;;20956:118;;;:::o;23163:96::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23245:6:::1;23232:10;:19;;;;23163:96:::0;:::o;12453:103::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12518:30:::1;12545:1;12518:18;:30::i;:::-;12453:103::o:0;23067:88::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19429:2:::1;19486;:13;;;;:::i;:::-;19478:5;:21;;;;:::i;:::-;23121:11;:26;;;;23067:88::o:0;19976:38::-;;;;;;;;;;;;;:::o;22188:113::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22252:4:::1;22243:6;;:13;;;;;;;;;;;;;;;;;;22281:12;22267:11;:26;;;;22188:113::o:0;19571:36::-;;;;:::o;11802:87::-;11848:7;11875:6;;;;;;;;;;;11868:13;;11802:87;:::o;22307:624::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22350:35:::1;22407:42;22350:100;;22479:16;22461:15;;:34;;;;;;;;;;;;;;;;;;22500:63;22517:4;22532:15;;;;;;;;;;;19429:2;19486;:13;;;;:::i;:::-;19478:5;:21;;;;:::i;:::-;22500:8;:63::i;:::-;22602:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22584:56;;;22649:4;22656:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22584:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22568:13;;:112;;;;;;;;;;;;;;;;;;22685:15;;;;;;;;;;;:31;;;22724:21;22760:4;22771:24;22789:4;22771:9;:24::i;:::-;22801:1;22808::::0;22815:7:::1;:5;:7::i;:::-;22828:15;22685:159;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22862:13;;;;;;;;;;;22855:29;;;22893:15;;;;;;;;;;;22911:14;22855:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22345:586;22307:624::o:0;23267:145::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23364:9:::1;23355:6;:18;;;;23394:10;23384:7;:20;;;;23267:145:::0;;:::o;20662:87::-;20701:13;20734:7;;;;;;;;;;;;;;;;;20727:14;;20662:87;:::o;21082:165::-;21159:4;21175:42;21185:12;:10;:12::i;:::-;21199:9;21210:6;21175:9;:42::i;:::-;21235:4;21228:11;;21082:165;;;;:::o;19675:26::-;;;;:::o;22939:120::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23047:4:::1;23012:24;:32;23037:6;23012:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22939:120:::0;:::o;21255:142::-;21336:7;21362:11;:18;21374:5;21362:18;;;;;;;;;;;;;;;:27;21381:7;21362:27;;;;;;;;;;;;;;;;21355:34;;21255:142;;;;:::o;12711:201::-;12033:12;:10;:12::i;:::-;12022:23;;:7;:5;:7::i;:::-;:23;;;12014:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12820:1:::1;12800:22;;:8;:22;;::::0;12792:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12876:28;12895:8;12876:18;:28::i;:::-;12711:201:::0;:::o;10530:98::-;10583:7;10610:10;10603:17;;10530:98;:::o;21845:335::-;21955:1;21938:19;;:5;:19;;;21930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22036:1;22017:21;;:7;:21;;;22009:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22118:6;22088:11;:18;22100:5;22088:18;;;;;;;;;;;;;;;:27;22107:7;22088:27;;;;;;;;;;;;;;;:36;;;;22156:7;22140:32;;22149:5;22140:32;;;22165:6;22140:32;;;;;;:::i;:::-;;;;;;;;21845:335;;;:::o;23993:1055::-;24097:1;24081:18;;:4;:18;;;24073:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24158:24;:30;24183:4;24158:30;;;;;;;;;;;;;;;;;;;;;;;;;:62;;;;24192:24;:28;24217:2;24192:28;;;;;;;;;;;;;;;;;;;;;;;;;24158:62;24154:844;;;24244:1;24237:4;:8;;;;24154:844;;;24286:6;;;;;;;;;;;24278:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;24346:11;;24336:6;:21;;24328:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;24435:10;;24421:11;;:24;;;;:::i;:::-;24406:12;:39;24402:585;;;24453:2;24448:4;:7;;;;24402:585;;;24494:13;;;;;;;;;;;24486:21;;:4;:21;;;24482:490;;24539:6;;24532:4;:13;;;;24482:490;;;24581:13;;;;;;;;;;;24575:19;;:2;:19;;;24571:401;;24619:20;24642:24;24660:4;24642:9;:24::i;:::-;24619:47;;19429:2;19551;:13;;;;:::i;:::-;19541:7;:23;;;;:::i;:::-;24697:12;:22;24693:109;;;19429:2;19551;:13;;;;:::i;:::-;19541:7;:23;;;;:::i;:::-;24752:22;;24693:109;24828:30;24845:12;24828:16;:30::i;:::-;24888:7;;24881:4;:14;;;;24596:319;24571:401;;;24951:1;24944:4;:8;;;;24571:401;24482:490;24402:585;24154:844;25008:32;25023:4;25029:2;25033:6;25008:14;:32::i;:::-;23993:1055;;;:::o;13072:191::-;13146:16;13165:6;;;;;;;;;;;13146:25;;13191:8;13182:6;;:17;;;;;;;;;;;;;;;;;;13246:8;13215:40;;13236:8;13215:40;;;;;;;;;;;;13135:128;13072:191;:::o;25056:473::-;25122:21;25160:1;25146:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25122:40;;25191:4;25173;25178:1;25173:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25217:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25207:4;25212:1;25207:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25250:62;25267:4;25282:15;;;;;;;;;;;25300:11;25250:8;:62::i;:::-;25323:15;;;;;;;;;;;:66;;;25404:11;25430:1;25446:4;25465:15;;;;;;;;;;;25495;25323:198;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25111:418;25056:473;:::o;23565:420::-;23650:17;23688:3;23680:4;;23671:6;:13;;;;:::i;:::-;23670:21;;;;:::i;:::-;23650:41;;23702:22;23736:9;23727:6;:18;;;;:::i;:::-;23702:43;;23792:6;23775:8;:14;23784:4;23775:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;23758:8;:14;23767:4;23758:14;;;;;;;;;;;;;;;:40;;;;23839:14;23824:8;:12;23833:2;23824:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;23809:8;:12;23818:2;23809:12;;;;;;;;;;;;;;;:44;;;;23916:9;23890:8;:23;23907:4;23890:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;23864:8;:23;23881:4;23864:23;;;;;;;;;;;;;;;:61;;;;23958:2;23943:34;;23952:4;23943:34;;;23962:14;23943:34;;;;;;:::i;:::-;;;;;;;;23639:346;;23565:420;;;:::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:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:104::-;5920:7;5949:24;5967:5;5949:24;:::i;:::-;5938:35;;5875:104;;;:::o;5985:142::-;6088:32;6114:5;6088:32;:::i;:::-;6083:3;6076:45;5985:142;;:::o;6133:254::-;6242:4;6280:2;6269:9;6265:18;6257:26;;6293:87;6377:1;6366:9;6362:17;6353:6;6293:87;:::i;:::-;6133:254;;;;:::o;6393:474::-;6461:6;6469;6518:2;6506:9;6497:7;6493:23;6489:32;6486:119;;;6524:79;;:::i;:::-;6486:119;6644:1;6669:53;6714:7;6705:6;6694:9;6690:22;6669:53;:::i;:::-;6659:63;;6615:117;6771:2;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6742:118;6393:474;;;;;:::o;6873:::-;6941:6;6949;6998:2;6986:9;6977:7;6973:23;6969:32;6966:119;;;7004:79;;:::i;:::-;6966:119;7124:1;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7095:117;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;6873:474;;;;;:::o;7353:180::-;7401:77;7398:1;7391:88;7498:4;7495:1;7488:15;7522:4;7519:1;7512:15;7539:102;7581:8;7628:5;7625:1;7621:13;7600:34;;7539:102;;;:::o;7647:848::-;7708:5;7715:4;7739:6;7730:15;;7763:5;7754:14;;7777:712;7798:1;7788:8;7785:15;7777:712;;;7893:4;7888:3;7884:14;7878:4;7875:24;7872:50;;;7902:18;;:::i;:::-;7872:50;7952:1;7942:8;7938:16;7935:451;;;8367:4;8360:5;8356:16;8347:25;;7935:451;8417:4;8411;8407:15;8399:23;;8447:32;8470:8;8447:32;:::i;:::-;8435:44;;7777:712;;;7647:848;;;;;;;:::o;8501:1073::-;8555:5;8746:8;8736:40;;8767:1;8758:10;;8769:5;;8736:40;8795:4;8785:36;;8812:1;8803:10;;8814:5;;8785:36;8881:4;8929:1;8924:27;;;;8965:1;8960:191;;;;8874:277;;8924:27;8942:1;8933:10;;8944:5;;;8960:191;9005:3;8995:8;8992:17;8989:43;;;9012:18;;:::i;:::-;8989:43;9061:8;9058:1;9054:16;9045:25;;9096:3;9089:5;9086:14;9083:40;;;9103:18;;:::i;:::-;9083:40;9136:5;;;8874:277;;9260:2;9250:8;9247:16;9241:3;9235:4;9232:13;9228:36;9210:2;9200:8;9197:16;9192:2;9186:4;9183:12;9179:35;9163:111;9160:246;;;9316:8;9310:4;9306:19;9297:28;;9351:3;9344:5;9341:14;9338:40;;;9358:18;;:::i;:::-;9338:40;9391:5;;9160:246;9431:42;9469:3;9459:8;9453:4;9450:1;9431:42;:::i;:::-;9416:57;;;;9505:4;9500:3;9496:14;9489:5;9486:25;9483:51;;;9514:18;;:::i;:::-;9483:51;9563:4;9556:5;9552:16;9543:25;;8501:1073;;;;;;:::o;9580:281::-;9638:5;9662:23;9680:4;9662:23;:::i;:::-;9654:31;;9706:25;9722:8;9706:25;:::i;:::-;9694:37;;9750:104;9787:66;9777:8;9771:4;9750:104;:::i;:::-;9741:113;;9580:281;;;;:::o;9867:410::-;9907:7;9930:20;9948:1;9930:20;:::i;:::-;9925:25;;9964:20;9982:1;9964:20;:::i;:::-;9959:25;;10019:1;10016;10012:9;10041:30;10059:11;10041:30;:::i;:::-;10030:41;;10220:1;10211:7;10207:15;10204:1;10201:22;10181:1;10174:9;10154:83;10131:139;;10250:18;;:::i;:::-;10131:139;9915:362;9867:410;;;;:::o;10283:194::-;10323:4;10343:20;10361:1;10343:20;:::i;:::-;10338:25;;10377:20;10395:1;10377:20;:::i;:::-;10372:25;;10421:1;10418;10414:9;10406:17;;10445:1;10439:4;10436:11;10433:37;;;10450:18;;:::i;:::-;10433:37;10283:194;;;;:::o;10483:182::-;10623:34;10619:1;10611:6;10607:14;10600:58;10483:182;:::o;10671:366::-;10813:3;10834:67;10898:2;10893:3;10834:67;:::i;:::-;10827:74;;10910:93;10999:3;10910:93;:::i;:::-;11028:2;11023:3;11019:12;11012:19;;10671:366;;;:::o;11043:419::-;11209:4;11247:2;11236:9;11232:18;11224:26;;11296:9;11290:4;11286:20;11282:1;11271:9;11267:17;11260:47;11324:131;11450:4;11324:131;:::i;:::-;11316:139;;11043:419;;;:::o;11468:143::-;11525:5;11556:6;11550:13;11541:22;;11572:33;11599:5;11572:33;:::i;:::-;11468:143;;;;:::o;11617:351::-;11687:6;11736:2;11724:9;11715:7;11711:23;11707:32;11704:119;;;11742:79;;:::i;:::-;11704:119;11862:1;11887:64;11943:7;11934:6;11923:9;11919:22;11887:64;:::i;:::-;11877:74;;11833:128;11617:351;;;;:::o;11974:332::-;12095:4;12133:2;12122:9;12118:18;12110:26;;12146:71;12214:1;12203:9;12199:17;12190:6;12146:71;:::i;:::-;12227:72;12295:2;12284:9;12280:18;12271:6;12227:72;:::i;:::-;11974:332;;;;;:::o;12312:85::-;12357:7;12386:5;12375:16;;12312:85;;;:::o;12403:60::-;12431:3;12452:5;12445:12;;12403:60;;;:::o;12469:158::-;12527:9;12560:61;12578:42;12587:32;12613:5;12587:32;:::i;:::-;12578:42;:::i;:::-;12560:61;:::i;:::-;12547:74;;12469:158;;;:::o;12633:147::-;12728:45;12767:5;12728:45;:::i;:::-;12723:3;12716:58;12633:147;;:::o;12786:807::-;13035:4;13073:3;13062:9;13058:19;13050:27;;13087:71;13155:1;13144:9;13140:17;13131:6;13087:71;:::i;:::-;13168:72;13236:2;13225:9;13221:18;13212:6;13168:72;:::i;:::-;13250:80;13326:2;13315:9;13311:18;13302:6;13250:80;:::i;:::-;13340;13416:2;13405:9;13401:18;13392:6;13340:80;:::i;:::-;13430:73;13498:3;13487:9;13483:19;13474:6;13430:73;:::i;:::-;13513;13581:3;13570:9;13566:19;13557:6;13513:73;:::i;:::-;12786:807;;;;;;;;;:::o;13599:143::-;13656:5;13687:6;13681:13;13672:22;;13703:33;13730:5;13703:33;:::i;:::-;13599:143;;;;:::o;13748:663::-;13836:6;13844;13852;13901:2;13889:9;13880:7;13876:23;13872:32;13869:119;;;13907:79;;:::i;:::-;13869:119;14027:1;14052:64;14108:7;14099:6;14088:9;14084:22;14052:64;:::i;:::-;14042:74;;13998:128;14165:2;14191:64;14247:7;14238:6;14227:9;14223:22;14191:64;:::i;:::-;14181:74;;14136:129;14304:2;14330:64;14386:7;14377:6;14366:9;14362:22;14330:64;:::i;:::-;14320:74;;14275:129;13748:663;;;;;:::o;14417:332::-;14538:4;14576:2;14565:9;14561:18;14553:26;;14589:71;14657:1;14646:9;14642:17;14633:6;14589:71;:::i;:::-;14670:72;14738:2;14727:9;14723:18;14714:6;14670:72;:::i;:::-;14417:332;;;;;:::o;14755:116::-;14825:21;14840:5;14825:21;:::i;:::-;14818:5;14815:32;14805:60;;14861:1;14858;14851:12;14805:60;14755:116;:::o;14877:137::-;14931:5;14962:6;14956:13;14947:22;;14978:30;15002:5;14978:30;:::i;:::-;14877:137;;;;:::o;15020:345::-;15087:6;15136:2;15124:9;15115:7;15111:23;15107:32;15104:119;;;15142:79;;:::i;:::-;15104:119;15262:1;15287:61;15340:7;15331:6;15320:9;15316:22;15287:61;:::i;:::-;15277:71;;15233:125;15020:345;;;;:::o;15371:225::-;15511:34;15507:1;15499:6;15495:14;15488:58;15580:8;15575:2;15567:6;15563:15;15556:33;15371:225;:::o;15602:366::-;15744:3;15765:67;15829:2;15824:3;15765:67;:::i;:::-;15758:74;;15841:93;15930:3;15841:93;:::i;:::-;15959:2;15954:3;15950:12;15943:19;;15602:366;;;:::o;15974:419::-;16140:4;16178:2;16167:9;16163:18;16155:26;;16227:9;16221:4;16217:20;16213:1;16202:9;16198:17;16191:47;16255:131;16381:4;16255:131;:::i;:::-;16247:139;;15974:419;;;:::o;16399:223::-;16539:34;16535:1;16527:6;16523:14;16516:58;16608:6;16603:2;16595:6;16591:15;16584:31;16399:223;:::o;16628:366::-;16770:3;16791:67;16855:2;16850:3;16791:67;:::i;:::-;16784:74;;16867:93;16956:3;16867:93;:::i;:::-;16985:2;16980:3;16976:12;16969:19;;16628:366;;;:::o;17000:419::-;17166:4;17204:2;17193:9;17189:18;17181:26;;17253:9;17247:4;17243:20;17239:1;17228:9;17224:17;17217:47;17281:131;17407:4;17281:131;:::i;:::-;17273:139;;17000:419;;;:::o;17425:221::-;17565:34;17561:1;17553:6;17549:14;17542:58;17634:4;17629:2;17621:6;17617:15;17610:29;17425:221;:::o;17652:366::-;17794:3;17815:67;17879:2;17874:3;17815:67;:::i;:::-;17808:74;;17891:93;17980:3;17891:93;:::i;:::-;18009:2;18004:3;18000:12;17993:19;;17652:366;;;:::o;18024:419::-;18190:4;18228:2;18217:9;18213:18;18205:26;;18277:9;18271:4;18267:20;18263:1;18252:9;18248:17;18241:47;18305:131;18431:4;18305:131;:::i;:::-;18297:139;;18024:419;;;:::o;18449:224::-;18589:34;18585:1;18577:6;18573:14;18566:58;18658:7;18653:2;18645:6;18641:15;18634:32;18449:224;:::o;18679:366::-;18821:3;18842:67;18906:2;18901:3;18842:67;:::i;:::-;18835:74;;18918:93;19007:3;18918:93;:::i;:::-;19036:2;19031:3;19027:12;19020:19;;18679:366;;;:::o;19051:419::-;19217:4;19255:2;19244:9;19240:18;19232:26;;19304:9;19298:4;19294:20;19290:1;19279:9;19275:17;19268:47;19332:131;19458:4;19332:131;:::i;:::-;19324:139;;19051:419;;;:::o;19476:166::-;19616:18;19612:1;19604:6;19600:14;19593:42;19476:166;:::o;19648:366::-;19790:3;19811:67;19875:2;19870:3;19811:67;:::i;:::-;19804:74;;19887:93;19976:3;19887:93;:::i;:::-;20005:2;20000:3;19996:12;19989:19;;19648:366;;;:::o;20020:419::-;20186:4;20224:2;20213:9;20209:18;20201:26;;20273:9;20267:4;20263:20;20259:1;20248:9;20244:17;20237:47;20301:131;20427:4;20301:131;:::i;:::-;20293:139;;20020:419;;;:::o;20445:175::-;20585:27;20581:1;20573:6;20569:14;20562:51;20445:175;:::o;20626:366::-;20768:3;20789:67;20853:2;20848:3;20789:67;:::i;:::-;20782:74;;20865:93;20954:3;20865:93;:::i;:::-;20983:2;20978:3;20974:12;20967:19;;20626:366;;;:::o;20998:419::-;21164:4;21202:2;21191:9;21187:18;21179:26;;21251:9;21245:4;21241:20;21237:1;21226:9;21222:17;21215:47;21279:131;21405:4;21279:131;:::i;:::-;21271:139;;20998:419;;;:::o;21423:191::-;21463:3;21482:20;21500:1;21482:20;:::i;:::-;21477:25;;21516:20;21534:1;21516:20;:::i;:::-;21511:25;;21559:1;21556;21552:9;21545:16;;21580:3;21577:1;21574:10;21571:36;;;21587:18;;:::i;:::-;21571:36;21423:191;;;;:::o;21620:180::-;21668:77;21665:1;21658:88;21765:4;21762:1;21755:15;21789:4;21786:1;21779:15;21806:180;21854:77;21851:1;21844:88;21951:4;21948:1;21941:15;21975:4;21972:1;21965:15;21992:114;22059:6;22093:5;22087:12;22077:22;;21992:114;;;:::o;22112:184::-;22211:11;22245:6;22240:3;22233:19;22285:4;22280:3;22276:14;22261:29;;22112:184;;;;:::o;22302:132::-;22369:4;22392:3;22384:11;;22422:4;22417:3;22413:14;22405:22;;22302:132;;;:::o;22440:108::-;22517:24;22535:5;22517:24;:::i;:::-;22512:3;22505:37;22440:108;;:::o;22554:179::-;22623:10;22644:46;22686:3;22678:6;22644:46;:::i;:::-;22722:4;22717:3;22713:14;22699:28;;22554:179;;;;:::o;22739:113::-;22809:4;22841;22836:3;22832:14;22824:22;;22739:113;;;:::o;22888:732::-;23007:3;23036:54;23084:5;23036:54;:::i;:::-;23106:86;23185:6;23180:3;23106:86;:::i;:::-;23099:93;;23216:56;23266:5;23216:56;:::i;:::-;23295:7;23326:1;23311:284;23336:6;23333:1;23330:13;23311:284;;;23412:6;23406:13;23439:63;23498:3;23483:13;23439:63;:::i;:::-;23432:70;;23525:60;23578:6;23525:60;:::i;:::-;23515:70;;23371:224;23358:1;23355;23351:9;23346:14;;23311:284;;;23315:14;23611:3;23604:10;;23012:608;;;22888:732;;;;:::o;23626:142::-;23676:9;23709:53;23727:34;23736:24;23754:5;23736:24;:::i;:::-;23727:34;:::i;:::-;23709:53;:::i;:::-;23696:66;;23626:142;;;:::o;23774:126::-;23824:9;23857:37;23888:5;23857:37;:::i;:::-;23844:50;;23774:126;;;:::o;23906:134::-;23964:9;23997:37;24028:5;23997:37;:::i;:::-;23984:50;;23906:134;;;:::o;24046:147::-;24141:45;24180:5;24141:45;:::i;:::-;24136:3;24129:58;24046:147;;:::o;24199:847::-;24470:4;24508:3;24497:9;24493:19;24485:27;;24522:71;24590:1;24579:9;24575:17;24566:6;24522:71;:::i;:::-;24603:80;24679:2;24668:9;24664:18;24655:6;24603:80;:::i;:::-;24730:9;24724:4;24720:20;24715:2;24704:9;24700:18;24693:48;24758:108;24861:4;24852:6;24758:108;:::i;:::-;24750:116;;24876:80;24952:2;24941:9;24937:18;24928:6;24876:80;:::i;:::-;24966:73;25034:3;25023:9;25019:19;25010:6;24966:73;:::i;:::-;24199:847;;;;;;;;:::o;25052:180::-;25100:77;25097:1;25090:88;25197:4;25194:1;25187:15;25221:4;25218:1;25211:15;25238:185;25278:1;25295:20;25313:1;25295:20;:::i;:::-;25290:25;;25329:20;25347:1;25329:20;:::i;:::-;25324:25;;25368:1;25358:35;;25373:18;;:::i;:::-;25358:35;25415:1;25412;25408:9;25403:14;;25238:185;;;;:::o

Swarm Source

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