ETH Price: $2,532.39 (-0.05%)

Token

Jigen (JIG)
 

Overview

Max Total Supply

100,000,000 JIG

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,042 JIG

Value
$0.00
0xf4edb5b705cda8e41280cb6591f2ce8f262a6d19
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:
Jigen

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 5 of 7: Jigen.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import { EIP712 } from "./draft-EIP712.sol";
import { ECDSA } from "./ECDSA.sol";

import { IERC20 } from "./IERC20.sol";
import { Ownable } from "./Ownable.sol";
import { TransactionThrottler } from "./TransactionThrottler.sol";
import { Constants } from "./Constants.sol";

contract Jigen is IERC20, EIP712, Ownable, TransactionThrottler {
    uint256 private _totalSupply;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    // solhint-disable-next-line var-name-mixedcase
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint256) public override nonces;

    constructor(address _admin) EIP712(Constants.getName(), "1") {
        _setOwner(_admin);
        _mint(_admin, 100_000_000 * 10**18);
    }

    function name() external pure returns (string memory) {
        return Constants.getName();
    }

    function symbol() external pure returns (string memory) {
        return Constants.getSymbol();
    }

    function decimals() external pure override returns (uint8) {
        return Constants.getDecimals();
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function _mint(address account, uint256 amount) private {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function burn(uint256 amount) external override returns (bool) {
        _burn(msg.sender, amount);
        return true;
    }

    function burnFrom(address account, uint256 amount) external override returns (bool) {
        uint256 currentAllowance = _allowances[account][msg.sender];
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        unchecked {
            _approve(account, msg.sender, currentAllowance - amount);
        }
        _burn(account, amount);
        return true;
    }

    function _burn(address account, uint256 amount) private {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        if (currentAllowance < type(uint256).max) {
            // DEXes can use max allowance
            _approve(sender, msg.sender, currentAllowance - amount);
        }
        _transfer(sender, recipient, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) private transactionThrottler(sender, recipient, amount) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount is 0");
        require(_balances[sender] >= amount, "ERC20: transfer amount exceeds balance");

        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

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

    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view override returns (bytes32) {
        return _domainSeparatorV4();
    }

    function permit(
        address _owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external override {
        // Revert faster here then later on signature (gas saving for user)
        require(_owner != address(0), "ERC20Permit: Permit from zero address");
        // solhint-disable-next-line not-rely-on-time
        require(block.timestamp <= deadline, "ERC20Permit: expired deadline");

        bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, _owner, spender, value, nonces[_owner]++, deadline));
        bytes32 hash = _hashTypedDataV4(structHash);

        address signer = ECDSA.recover(hash, v, r, s);
        require(signer == _owner, "ERC20Permit: invalid signature");

        _approve(_owner, spender, value);
    }
}

File 1 of 7: Constants.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

library Constants {
    string private constant _name = "Jigen";
    string private constant _symbol = "JIG";
    uint8 private constant _decimals = 18;

    function getName() internal pure returns (string memory) {
        return _name;
    }

    function getSymbol() internal pure returns (string memory) {
        return _symbol;
    }

    function getDecimals() internal pure returns (uint8) {
        return _decimals;
    }
}

File 2 of 7: draft-EIP712.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import "./ECDSA.sol";

/**
 * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.
 *
 * The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,
 * thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding
 * they need in their contracts using a combination of `abi.encode` and `keccak256`.
 *
 * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding
 * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA
 * ({_hashTypedDataV4}).
 *
 * The implementation of the domain separator was designed to be as efficient as possible while still properly updating
 * the chain id to protect against replay attacks on an eventual fork of the chain.
 *
 * NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method
 * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].
 *
 * _Available since v3.4._
 */
abstract contract EIP712 {
    /* solhint-disable var-name-mixedcase */
    // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to
    // invalidate the cached domain separator if the chain id changes.
    bytes32 private immutable _CACHED_DOMAIN_SEPARATOR;
    uint256 private immutable _CACHED_CHAIN_ID;

    bytes32 private immutable _HASHED_NAME;
    bytes32 private immutable _HASHED_VERSION;
    bytes32 private immutable _TYPE_HASH;

    /* solhint-enable var-name-mixedcase */

    /**
     * @dev Initializes the domain separator and parameter caches.
     *
     * The meaning of `name` and `version` is specified in
     * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:
     *
     * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.
     * - `version`: the current major version of the signing domain.
     *
     * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart
     * contract upgrade].
     */
    constructor(string memory name, string memory version) {
        bytes32 hashedName = keccak256(bytes(name));
        bytes32 hashedVersion = keccak256(bytes(version));
        bytes32 typeHash = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
        _HASHED_NAME = hashedName;
        _HASHED_VERSION = hashedVersion;
        _CACHED_CHAIN_ID = block.chainid;
        _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(typeHash, hashedName, hashedVersion);
        _TYPE_HASH = typeHash;
    }

    /**
     * @dev Returns the domain separator for the current chain.
     */
    function _domainSeparatorV4() internal view returns (bytes32) {
        if (block.chainid == _CACHED_CHAIN_ID) {
            return _CACHED_DOMAIN_SEPARATOR;
        } else {
            return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION);
        }
    }

    function _buildDomainSeparator(
        bytes32 typeHash,
        bytes32 name,
        bytes32 version
    ) private view returns (bytes32) {
        return keccak256(abi.encode(typeHash, name, version, block.chainid, address(this)));
    }

    /**
     * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this
     * function returns the hash of the fully encoded EIP712 message for this domain.
     *
     * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:
     *
     * ```solidity
     * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(
     *     keccak256("Mail(address to,string contents)"),
     *     mailTo,
     *     keccak256(bytes(mailContents))
     * )));
     * address signer = ECDSA.recover(digest, signature);
     * ```
     */
    function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {
        return ECDSA.toTypedDataHash(_domainSeparatorV4(), structHash);
    }
}

File 3 of 7: ECDSA.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

/**
 * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
 *
 * These functions can be used to verify that a message was signed by the holder
 * of the private keys of a given address.
 */
library ECDSA {
    /**
     * @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) {
        // Divide the signature in r, s and v variables
        bytes32 r;
        bytes32 s;
        uint8 v;

        // Check the signature length
        // - case 65: r,s,v signature (standard)
        // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._
        if (signature.length == 65) {
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            // solhint-disable-next-line no-inline-assembly
            assembly {
                r := mload(add(signature, 0x20))
                s := mload(add(signature, 0x40))
                v := byte(0, mload(add(signature, 0x60)))
            }
        } else if (signature.length == 64) {
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            // solhint-disable-next-line no-inline-assembly
            assembly {
                let vs := mload(add(signature, 0x40))
                r := mload(add(signature, 0x20))
                s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
                v := add(shr(255, vs), 27)
            }
        } else {
            revert("ECDSA: invalid signature length");
        }

        return recover(hash, v, r, s);
    }

    /**
     * @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) {
        // 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 (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): 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.
        require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value");
        require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value");

        // If the signature is valid (and not malleable), return the signer address
        address signer = ecrecover(hash, v, r, s);
        require(signer != address(0), "ECDSA: invalid signature");

        return signer;
    }

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

File 4 of 7: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function balanceOf(address account) external view returns (uint256);

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

    function approve(address spender, uint256 amount) external returns (bool);

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

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function burn(uint256 amount) external returns (bool);

    function burnFrom(address account, uint256 amount) external returns (bool);

    // EIP 2612
    // solhint-disable-next-line func-name-mixedcase
    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function nonces(address owner) external view returns (uint256);

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

File 6 of 7: Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

contract OwnableData {
    address public owner;
    address public pendingOwner;
}

contract Ownable is OwnableData {
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev `owner` defaults to msg.sender on construction.
     */
    constructor() {
        _setOwner(msg.sender);
    }

    /**
     * @dev Transfers ownership to `newOwner`. Either directly or claimable by the new pending owner.
     *      Can only be invoked by the current `owner`.
     * @param _newOwner Address of the new owner.
     * @param _direct True if `_newOwner` should be set immediately. False if `_newOwner` needs to use `claimOwnership`.
     * @param _renounce Allows the `_newOwner` to be `address(0)` if `_direct` and `_renounce` is True. Has no effect otherwise
     */
    function transferOwnership(
        address _newOwner,
        bool _direct,
        bool _renounce
    ) external onlyOwner {
        if (_direct) {
            require(_newOwner != address(0) || _renounce, "zero address");

            emit OwnershipTransferred(owner, _newOwner);
            owner = _newOwner;
            pendingOwner = address(0);
        } else {
            pendingOwner = _newOwner;
        }
    }

    /**
     * @dev Needs to be called by `pendingOwner` to claim ownership.
     */
    function claimOwnership() external {
        address _pendingOwner = pendingOwner;
        require(msg.sender == _pendingOwner, "caller != pending owner");

        emit OwnershipTransferred(owner, _pendingOwner);
        owner = _pendingOwner;
        pendingOwner = address(0);
    }

    /**
     * @dev Throws if called by any account other than the Owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "caller is not the owner");
        _;
    }

    function _setOwner(address newOwner) internal {
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 7 of 7: TransactionThrottler.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.10;

import { Ownable } from "./Ownable.sol";

contract TransactionThrottler is Ownable {
    bool public _initialized;
    bool public _restrictionActive;
    uint256 public _tradingStart;
    uint256 public _maxTransferAmount;
    uint256 private constant _delayBetweenTx = 30;
    mapping(address => bool) private _isWhitelisted;
    mapping(address => bool) private _isUnthrottled;
    mapping(address => uint256) private _previousTx;

    event TradingTimeChanged(uint256 tradingTime);
    event RestrictionActiveChanged(bool active);
    event MaxTransferAmountChanged(uint256 maxTransferAmount);
    event MarkedWhitelisted(address indexed account, bool isWhitelisted);
    event MarkedUnthrottled(address indexed account, bool isUnthrottled);

    function initAntibot() external onlyOwner {
        require(!_initialized, "Protection: Already initialized");
        _initialized = true;
        _isUnthrottled[owner] = true;
        _tradingStart = 1643032800;
        _maxTransferAmount = 50_000 * 10**18;
        _restrictionActive = true;

        emit MarkedUnthrottled(owner, true);
        emit TradingTimeChanged(_tradingStart);
        emit MaxTransferAmountChanged(_maxTransferAmount);
        emit RestrictionActiveChanged(_restrictionActive);
    }

    function setTradingStart(uint256 _time) external onlyOwner {
        require(_tradingStart > block.timestamp, "Protection: To late");
        _tradingStart = _time;
        emit TradingTimeChanged(_tradingStart);
    }

    function setMaxTransferAmount(uint256 _amount) external onlyOwner {
        _maxTransferAmount = _amount;
        emit MaxTransferAmountChanged(_maxTransferAmount);
    }

    function setRestrictionActive(bool _active) external onlyOwner {
        _restrictionActive = _active;
        emit RestrictionActiveChanged(_restrictionActive);
    }

    function unthrottleAccount(address _account, bool _unthrottled) external onlyOwner {
        require(_account != address(0), "Zero address");
        _isUnthrottled[_account] = _unthrottled;
        emit MarkedUnthrottled(_account, _unthrottled);
    }

    function isUnthrottled(address account) external view returns (bool) {
        return _isUnthrottled[account];
    }

    function whitelistAccount(address _account, bool _whitelisted) external onlyOwner {
        require(_account != address(0), "Zero address");
        _isWhitelisted[_account] = _whitelisted;
        emit MarkedWhitelisted(_account, _whitelisted);
    }

    function isWhitelisted(address account) external view returns (bool) {
        return _isWhitelisted[account];
    }

    modifier transactionThrottler(
        address sender,
        address recipient,
        uint256 amount
    ) {
        if (_restrictionActive && !_isUnthrottled[recipient] && !_isUnthrottled[sender]) {
            require(block.timestamp >= _tradingStart, "Protection: Transfers disabled");

            if (_maxTransferAmount > 0) {
                require(amount <= _maxTransferAmount, "Protection: Limit exceeded");
            }

            if (!_isWhitelisted[recipient]) {
                require(_previousTx[recipient] + _delayBetweenTx <= block.timestamp, "Protection: 30 sec/tx allowed");
                _previousTx[recipient] = block.timestamp;
            }

            if (!_isWhitelisted[sender]) {
                require(_previousTx[sender] + _delayBetweenTx <= block.timestamp, "Protection: 30 sec/tx allowed");
                _previousTx[sender] = block.timestamp;
            }
        }
        _;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isUnthrottled","type":"bool"}],"name":"MarkedUnthrottled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isWhitelisted","type":"bool"}],"name":"MarkedWhitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransferAmount","type":"uint256"}],"name":"MaxTransferAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"active","type":"bool"}],"name":"RestrictionActiveChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tradingTime","type":"uint256"}],"name":"TradingTimeChanged","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":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_restrictionActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradingStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isUnthrottled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTransferAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"name":"setRestrictionActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"setTradingStart","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":"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"},{"internalType":"bool","name":"_direct","type":"bool"},{"internalType":"bool","name":"_renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_unthrottled","type":"bool"}],"name":"unthrottleAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_whitelisted","type":"bool"}],"name":"whitelistAccount","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6101206040523480156200001257600080fd5b50604051620044903803806200449083398181016040528101906200003891906200043f565b6200004d6200014660201b62001ba31760201c565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260c081815250508160e081815250504660a08181525050620000eb8184846200018360201b60201c565b6080818152505080610100818152505050505050506200011133620001bf60201b60201c565b6200012281620001bf60201b60201c565b6200013f816a52b7d2dcc80cd2e40000006200028360201b60201c565b5062000641565b60606040518060400160405280600581526020017f4a6967656e000000000000000000000000000000000000000000000000000000815250905090565b60008383834630604051602001620001a0959493929190620004b8565b6040516020818303038152906040528051906020012090509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ed9062000576565b60405180910390fd5b80600760008282546200030a9190620005c7565b9250508190555080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620003629190620005c7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003c9919062000624565b60405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200040782620003da565b9050919050565b6200041981620003fa565b81146200042557600080fd5b50565b60008151905062000439816200040e565b92915050565b600060208284031215620004585762000457620003d5565b5b6000620004688482850162000428565b91505092915050565b6000819050919050565b620004868162000471565b82525050565b6000819050919050565b620004a1816200048c565b82525050565b620004b281620003fa565b82525050565b600060a082019050620004cf60008301886200047b565b620004de60208301876200047b565b620004ed60408301866200047b565b620004fc606083018562000496565b6200050b6080830184620004a7565b9695505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200055e601f8362000515565b91506200056b8262000526565b602082019050919050565b6000602082019050818103600083015262000591816200054f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005d4826200048c565b9150620005e1836200048c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000619576200061862000598565b5b828201905092915050565b60006020820190506200063b600083018462000496565b92915050565b60805160a05160c05160e05161010051613e0a62000686600039600061246c015260006124ae0152600061248d01526000612419015260006124410152613e0a6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063a457c2d7116100ad578063dc4aa0591161007c578063dc4aa059146105c6578063dd62ed3e146105f6578063e30c397814610626578063f3a4b4bb14610644578063fba6fea614610662576101fb565b8063a457c2d714610540578063a9059cbb14610570578063d505accf146105a0578063db694675146105bc576101fb565b80638bf55409116100e95780638bf55409146104cc5780638da5cb5b146104e857806395d89b411461050657806399c8df1814610524576101fb565b806370a08231146104205780637419683c1461045057806379cc67901461046c5780637ecebe001461049c576101fb565b806330adf81f116101925780633af32abf116101615780633af32abf1461039a57806342966c68146103ca5780634af640d1146103fa5780634e71e0c814610416576101fb565b806330adf81f14610310578063313ce5671461032e5780633644e5151461034c578063395093511461036a576101fb565b806318160ddd116101ce57806318160ddd146102865780631f976b7e146102a457806323b872dd146102c25780633072cf60146102f2576101fb565b806306fdde0314610200578063078dfbe71461021e578063095ea7b31461023a5780630c8d9d7b1461026a575b600080fd5b610208610680565b6040516102159190612981565b60405180910390f35b61023860048036038101906102339190612a3e565b61068f565b005b610254600480360381019061024f9190612ac7565b6108e3565b6040516102619190612b16565b60405180910390f35b610284600480360381019061027f9190612b31565b6108fa565b005b61028e610aa1565b60405161029b9190612b80565b60405180910390f35b6102ac610aab565b6040516102b99190612b80565b60405180910390f35b6102dc60048036038101906102d79190612b9b565b610ab1565b6040516102e99190612b16565b60405180910390f35b6102fa610bcc565b6040516103079190612b16565b60405180910390f35b610318610bdf565b6040516103259190612c07565b60405180910390f35b610336610c06565b6040516103439190612c3e565b60405180910390f35b610354610c15565b6040516103619190612c07565b60405180910390f35b610384600480360381019061037f9190612ac7565b610c24565b6040516103919190612b16565b60405180910390f35b6103b460048036038101906103af9190612c59565b610cc2565b6040516103c19190612b16565b60405180910390f35b6103e460048036038101906103df9190612c86565b610d18565b6040516103f19190612b16565b60405180910390f35b610414600480360381019061040f9190612cb3565b610d2d565b005b61041e610e1e565b005b61043a60048036038101906104359190612c59565b610fb2565b6040516104479190612b80565b60405180910390f35b61046a60048036038101906104659190612c86565b610ffb565b005b61048660048036038101906104819190612ac7565b611110565b6040516104939190612b16565b60405180910390f35b6104b660048036038101906104b19190612c59565b6111f7565b6040516104c39190612b80565b60405180910390f35b6104e660048036038101906104e19190612c86565b61120f565b005b6104f06112e0565b6040516104fd9190612cef565b60405180910390f35b61050e611304565b60405161051b9190612981565b60405180910390f35b61053e60048036038101906105399190612b31565b611313565b005b61055a60048036038101906105559190612ac7565b6114ba565b6040516105679190612b16565b60405180910390f35b61058a60048036038101906105859190612ac7565b6115a0565b6040516105979190612b16565b60405180910390f35b6105ba60048036038101906105b59190612d62565b6115b7565b005b6105c46117b7565b005b6105e060048036038101906105db9190612c59565b611a87565b6040516105ed9190612b16565b60405180910390f35b610610600480360381019061060b9190612e04565b611add565b60405161061d9190612b80565b60405180910390f35b61062e611b64565b60405161063b9190612cef565b60405180910390f35b61064c611b8a565b6040516106599190612b16565b60405180910390f35b61066a611b9d565b6040516106779190612b80565b60405180910390f35b606061068a611ba3565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071490612e90565b60405180910390fd5b811561089c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158061075c5750805b61079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612efc565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108de565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b60006108f0338484611be0565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f90612e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90612f68565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f032b60b621d5620ebed4224d2af054acf250833415d69a1a90b9c0de47c951f182604051610a959190612b16565b60405180910390a25050565b6000600754905090565b60035481565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612ffa565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610bb557610bb485338584610baf9190613049565b611be0565b5b610bc0858585611dab565b60019150509392505050565b600160149054906101000a900460ff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b6000610c1061240c565b905090565b6000610c1f612415565b905090565b6000610cb8338484600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cb3919061307d565b611be0565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610d2433836124d8565b60019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db290612e90565b60405180910390fd5b80600160156101000a81548160ff0219169083151502179055507ff19da345eb86d7718a0c6e1d1e68d0c70e9fb40e7f54bfaaa1110c5dd5942eaa600160159054906101000a900460ff16604051610e139190612b16565b60405180910390a150565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061311f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090612e90565b60405180910390fd5b42600254116110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c49061318b565b60405180910390fd5b806002819055507feb0dd367985442b0f5a817b2cee27fa94416adda70f365044808a6552418fec66002546040516111059190612b80565b60405180910390a150565b600080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc9061321d565b60405180910390fd5b6111e28433858403611be0565b6111ec84846124d8565b600191505092915050565b600a6020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612e90565b60405180910390fd5b806003819055507ff81e49436a9468d4e5a18ec3a66d9a51fd5eb03de3ddddd43bd85f6ae1b072b36003546040516112d59190612b80565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061130e612699565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612f68565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fc1f37bd5d85be2239236c010011c8837e596c2c28d94d45893872fb5064e75ce826040516114ae9190612b16565b60405180910390a25050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561157f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611576906132af565b60405180910390fd5b611595338585846115909190613049565b611be0565b600191505092915050565b60006115ad338484611dab565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613341565b60405180910390fd5b8342111561166a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611661906133ad565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b888888600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906116e3906133cd565b91905055896040516020016116fd96959493929190613416565b6040516020818303038152906040528051906020012090506000611720826126d6565b90506000611730828787876126f0565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906134c3565b60405180910390fd5b6117ab8a8a8a611be0565b50505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90612e90565b60405180910390fd5b600160149054906101000a900460ff1615611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c9061352f565b60405180910390fd5b60018060146101000a81548160ff0219169083151502179055506001600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506361eeb0e0600281905550690a968163f0a57b40000060038190555060018060156101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f032b60b621d5620ebed4224d2af054acf250833415d69a1a90b9c0de47c951f160016040516119c59190612b16565b60405180910390a27feb0dd367985442b0f5a817b2cee27fa94416adda70f365044808a6552418fec66002546040516119fe9190612b80565b60405180910390a17ff81e49436a9468d4e5a18ec3a66d9a51fd5eb03de3ddddd43bd85f6ae1b072b3600354604051611a379190612b80565b60405180910390a17ff19da345eb86d7718a0c6e1d1e68d0c70e9fb40e7f54bfaaa1110c5dd5942eaa600160159054906101000a900460ff16604051611a7d9190612b16565b60405180910390a1565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160159054906101000a900460ff1681565b60025481565b60606040518060400160405280600581526020017f4a6967656e000000000000000000000000000000000000000000000000000000815250905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c47906135c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613653565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d9e9190612b80565b60405180910390a3505050565b828282600160159054906101000a900460ff168015611e145750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e6a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214e57600254421015611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab906136bf565b60405180910390fd5b60006003541115611f0557600354811115611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb9061372b565b60405180910390fd5b5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120295742601e600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa3919061307d565b1115611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb90613797565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661214d5742601e600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c7919061307d565b1115612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff90613797565b60405180910390fd5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b590613829565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561222e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612225906138bb565b60405180910390fd5b60008411612271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226890613927565b60405180910390fd5b83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea906139b9565b60405180910390fd5b83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123429190613049565b9250508190555083600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612398919061307d565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516123fc9190612b80565b60405180910390a3505050505050565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000000461415612467577f000000000000000000000000000000000000000000000000000000000000000090506124d5565b6124d27f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061287b565b90505b90565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f90613a4b565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c690613add565b60405180910390fd5b818103600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008282546126279190613049565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268c9190612b80565b60405180910390a3505050565b60606040518060400160405280600381526020017f4a49470000000000000000000000000000000000000000000000000000000000815250905090565b60006126e96126e3612415565b836128b5565b9050919050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115612758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274f90613b6f565b60405180910390fd5b601b8460ff16148061276d5750601c8460ff16145b6127ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a390613c01565b60405180910390fd5b6000600186868686604051600081526020016040526040516127d19493929190613c21565b6020604051602081039080840390855afa1580156127f3573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613cb2565b60405180910390fd5b80915050949350505050565b60008383834630604051602001612896959493929190613cd2565b6040516020818303038152906040528051906020012090509392505050565b600082826040516020016128ca929190613d9d565b60405160208183030381529060405280519060200120905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612922578082015181840152602081019050612907565b83811115612931576000848401525b50505050565b6000601f19601f8301169050919050565b6000612953826128e8565b61295d81856128f3565b935061296d818560208601612904565b61297681612937565b840191505092915050565b6000602082019050818103600083015261299b8184612948565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129d3826129a8565b9050919050565b6129e3816129c8565b81146129ee57600080fd5b50565b600081359050612a00816129da565b92915050565b60008115159050919050565b612a1b81612a06565b8114612a2657600080fd5b50565b600081359050612a3881612a12565b92915050565b600080600060608486031215612a5757612a566129a3565b5b6000612a65868287016129f1565b9350506020612a7686828701612a29565b9250506040612a8786828701612a29565b9150509250925092565b6000819050919050565b612aa481612a91565b8114612aaf57600080fd5b50565b600081359050612ac181612a9b565b92915050565b60008060408385031215612ade57612add6129a3565b5b6000612aec858286016129f1565b9250506020612afd85828601612ab2565b9150509250929050565b612b1081612a06565b82525050565b6000602082019050612b2b6000830184612b07565b92915050565b60008060408385031215612b4857612b476129a3565b5b6000612b56858286016129f1565b9250506020612b6785828601612a29565b9150509250929050565b612b7a81612a91565b82525050565b6000602082019050612b956000830184612b71565b92915050565b600080600060608486031215612bb457612bb36129a3565b5b6000612bc2868287016129f1565b9350506020612bd3868287016129f1565b9250506040612be486828701612ab2565b9150509250925092565b6000819050919050565b612c0181612bee565b82525050565b6000602082019050612c1c6000830184612bf8565b92915050565b600060ff82169050919050565b612c3881612c22565b82525050565b6000602082019050612c536000830184612c2f565b92915050565b600060208284031215612c6f57612c6e6129a3565b5b6000612c7d848285016129f1565b91505092915050565b600060208284031215612c9c57612c9b6129a3565b5b6000612caa84828501612ab2565b91505092915050565b600060208284031215612cc957612cc86129a3565b5b6000612cd784828501612a29565b91505092915050565b612ce9816129c8565b82525050565b6000602082019050612d046000830184612ce0565b92915050565b612d1381612c22565b8114612d1e57600080fd5b50565b600081359050612d3081612d0a565b92915050565b612d3f81612bee565b8114612d4a57600080fd5b50565b600081359050612d5c81612d36565b92915050565b600080600080600080600060e0888a031215612d8157612d806129a3565b5b6000612d8f8a828b016129f1565b9750506020612da08a828b016129f1565b9650506040612db18a828b01612ab2565b9550506060612dc28a828b01612ab2565b9450506080612dd38a828b01612d21565b93505060a0612de48a828b01612d4d565b92505060c0612df58a828b01612d4d565b91505092959891949750929550565b60008060408385031215612e1b57612e1a6129a3565b5b6000612e29858286016129f1565b9250506020612e3a858286016129f1565b9150509250929050565b7f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000612e7a6017836128f3565b9150612e8582612e44565b602082019050919050565b60006020820190508181036000830152612ea981612e6d565b9050919050565b7f7a65726f20616464726573730000000000000000000000000000000000000000600082015250565b6000612ee6600c836128f3565b9150612ef182612eb0565b602082019050919050565b60006020820190508181036000830152612f1581612ed9565b9050919050565b7f5a65726f20616464726573730000000000000000000000000000000000000000600082015250565b6000612f52600c836128f3565b9150612f5d82612f1c565b602082019050919050565b60006020820190508181036000830152612f8181612f45565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612fe46028836128f3565b9150612fef82612f88565b604082019050919050565b6000602082019050818103600083015261301381612fd7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305482612a91565b915061305f83612a91565b9250828210156130725761307161301a565b5b828203905092915050565b600061308882612a91565b915061309383612a91565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c8576130c761301a565b5b828201905092915050565b7f63616c6c657220213d2070656e64696e67206f776e6572000000000000000000600082015250565b60006131096017836128f3565b9150613114826130d3565b602082019050919050565b60006020820190508181036000830152613138816130fc565b9050919050565b7f50726f74656374696f6e3a20546f206c61746500000000000000000000000000600082015250565b60006131756013836128f3565b91506131808261313f565b602082019050919050565b600060208201905081810360008301526131a481613168565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006132076024836128f3565b9150613212826131ab565b604082019050919050565b60006020820190508181036000830152613236816131fa565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006132996025836128f3565b91506132a48261323d565b604082019050919050565b600060208201905081810360008301526132c88161328c565b9050919050565b7f45524332305065726d69743a205065726d69742066726f6d207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061332b6025836128f3565b9150613336826132cf565b604082019050919050565b6000602082019050818103600083015261335a8161331e565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000613397601d836128f3565b91506133a282613361565b602082019050919050565b600060208201905081810360008301526133c68161338a565b9050919050565b60006133d882612a91565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561340b5761340a61301a565b5b600182019050919050565b600060c08201905061342b6000830189612bf8565b6134386020830188612ce0565b6134456040830187612ce0565b6134526060830186612b71565b61345f6080830185612b71565b61346c60a0830184612b71565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b60006134ad601e836128f3565b91506134b882613477565b602082019050919050565b600060208201905081810360008301526134dc816134a0565b9050919050565b7f50726f74656374696f6e3a20416c726561647920696e697469616c697a656400600082015250565b6000613519601f836128f3565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135ab6024836128f3565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061363d6022836128f3565b9150613648826135e1565b604082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f50726f74656374696f6e3a205472616e73666572732064697361626c65640000600082015250565b60006136a9601e836128f3565b91506136b482613673565b602082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b7f50726f74656374696f6e3a204c696d6974206578636565646564000000000000600082015250565b6000613715601a836128f3565b9150613720826136df565b602082019050919050565b6000602082019050818103600083015261374481613708565b9050919050565b7f50726f74656374696f6e3a203330207365632f747820616c6c6f776564000000600082015250565b6000613781601d836128f3565b915061378c8261374b565b602082019050919050565b600060208201905081810360008301526137b081613774565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138136025836128f3565b915061381e826137b7565b604082019050919050565b6000602082019050818103600083015261384281613806565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138a56023836128f3565b91506138b082613849565b604082019050919050565b600060208201905081810360008301526138d481613898565b9050919050565b7f5472616e7366657220616d6f756e742069732030000000000000000000000000600082015250565b60006139116014836128f3565b915061391c826138db565b602082019050919050565b6000602082019050818103600083015261394081613904565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006139a36026836128f3565b91506139ae82613947565b604082019050919050565b600060208201905081810360008301526139d281613996565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a356021836128f3565b9150613a40826139d9565b604082019050919050565b60006020820190508181036000830152613a6481613a28565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ac76022836128f3565b9150613ad282613a6b565b604082019050919050565b60006020820190508181036000830152613af681613aba565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b596022836128f3565b9150613b6482613afd565b604082019050919050565b60006020820190508181036000830152613b8881613b4c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613beb6022836128f3565b9150613bf682613b8f565b604082019050919050565b60006020820190508181036000830152613c1a81613bde565b9050919050565b6000608082019050613c366000830187612bf8565b613c436020830186612c2f565b613c506040830185612bf8565b613c5d6060830184612bf8565b95945050505050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000613c9c6018836128f3565b9150613ca782613c66565b602082019050919050565b60006020820190508181036000830152613ccb81613c8f565b9050919050565b600060a082019050613ce76000830188612bf8565b613cf46020830187612bf8565b613d016040830186612bf8565b613d0e6060830185612b71565b613d1b6080830184612ce0565b9695505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613d66600283613d25565b9150613d7182613d30565b600282019050919050565b6000819050919050565b613d97613d9282612bee565b613d7c565b82525050565b6000613da882613d59565b9150613db48285613d86565b602082019150613dc48284613d86565b602082019150819050939250505056fea26469706673582212202209892ffbc5fe51f0db6ec9f632e4a8ab594fd988ada2c062819ffb8e278a2a64736f6c634300080a0033000000000000000000000000d8f21c57b973a69413e74020c60d09ef631658b1

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063a457c2d7116100ad578063dc4aa0591161007c578063dc4aa059146105c6578063dd62ed3e146105f6578063e30c397814610626578063f3a4b4bb14610644578063fba6fea614610662576101fb565b8063a457c2d714610540578063a9059cbb14610570578063d505accf146105a0578063db694675146105bc576101fb565b80638bf55409116100e95780638bf55409146104cc5780638da5cb5b146104e857806395d89b411461050657806399c8df1814610524576101fb565b806370a08231146104205780637419683c1461045057806379cc67901461046c5780637ecebe001461049c576101fb565b806330adf81f116101925780633af32abf116101615780633af32abf1461039a57806342966c68146103ca5780634af640d1146103fa5780634e71e0c814610416576101fb565b806330adf81f14610310578063313ce5671461032e5780633644e5151461034c578063395093511461036a576101fb565b806318160ddd116101ce57806318160ddd146102865780631f976b7e146102a457806323b872dd146102c25780633072cf60146102f2576101fb565b806306fdde0314610200578063078dfbe71461021e578063095ea7b31461023a5780630c8d9d7b1461026a575b600080fd5b610208610680565b6040516102159190612981565b60405180910390f35b61023860048036038101906102339190612a3e565b61068f565b005b610254600480360381019061024f9190612ac7565b6108e3565b6040516102619190612b16565b60405180910390f35b610284600480360381019061027f9190612b31565b6108fa565b005b61028e610aa1565b60405161029b9190612b80565b60405180910390f35b6102ac610aab565b6040516102b99190612b80565b60405180910390f35b6102dc60048036038101906102d79190612b9b565b610ab1565b6040516102e99190612b16565b60405180910390f35b6102fa610bcc565b6040516103079190612b16565b60405180910390f35b610318610bdf565b6040516103259190612c07565b60405180910390f35b610336610c06565b6040516103439190612c3e565b60405180910390f35b610354610c15565b6040516103619190612c07565b60405180910390f35b610384600480360381019061037f9190612ac7565b610c24565b6040516103919190612b16565b60405180910390f35b6103b460048036038101906103af9190612c59565b610cc2565b6040516103c19190612b16565b60405180910390f35b6103e460048036038101906103df9190612c86565b610d18565b6040516103f19190612b16565b60405180910390f35b610414600480360381019061040f9190612cb3565b610d2d565b005b61041e610e1e565b005b61043a60048036038101906104359190612c59565b610fb2565b6040516104479190612b80565b60405180910390f35b61046a60048036038101906104659190612c86565b610ffb565b005b61048660048036038101906104819190612ac7565b611110565b6040516104939190612b16565b60405180910390f35b6104b660048036038101906104b19190612c59565b6111f7565b6040516104c39190612b80565b60405180910390f35b6104e660048036038101906104e19190612c86565b61120f565b005b6104f06112e0565b6040516104fd9190612cef565b60405180910390f35b61050e611304565b60405161051b9190612981565b60405180910390f35b61053e60048036038101906105399190612b31565b611313565b005b61055a60048036038101906105559190612ac7565b6114ba565b6040516105679190612b16565b60405180910390f35b61058a60048036038101906105859190612ac7565b6115a0565b6040516105979190612b16565b60405180910390f35b6105ba60048036038101906105b59190612d62565b6115b7565b005b6105c46117b7565b005b6105e060048036038101906105db9190612c59565b611a87565b6040516105ed9190612b16565b60405180910390f35b610610600480360381019061060b9190612e04565b611add565b60405161061d9190612b80565b60405180910390f35b61062e611b64565b60405161063b9190612cef565b60405180910390f35b61064c611b8a565b6040516106599190612b16565b60405180910390f35b61066a611b9d565b6040516106779190612b80565b60405180910390f35b606061068a611ba3565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071490612e90565b60405180910390fd5b811561089c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158061075c5750805b61079b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079290612efc565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108de565b82600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b505050565b60006108f0338484611be0565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f90612e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef90612f68565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f032b60b621d5620ebed4224d2af054acf250833415d69a1a90b9c0de47c951f182604051610a959190612b16565b60405180910390a25050565b6000600754905090565b60035481565b600080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612ffa565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610bb557610bb485338584610baf9190613049565b611be0565b5b610bc0858585611dab565b60019150509392505050565b600160149054906101000a900460ff1681565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b6000610c1061240c565b905090565b6000610c1f612415565b905090565b6000610cb8338484600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cb3919061307d565b611be0565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610d2433836124d8565b60019050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db290612e90565b60405180910390fd5b80600160156101000a81548160ff0219169083151502179055507ff19da345eb86d7718a0c6e1d1e68d0c70e9fb40e7f54bfaaa1110c5dd5942eaa600160159054906101000a900460ff16604051610e139190612b16565b60405180910390a150565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa9061311f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090612e90565b60405180910390fd5b42600254116110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c49061318b565b60405180910390fd5b806002819055507feb0dd367985442b0f5a817b2cee27fa94416adda70f365044808a6552418fec66002546040516111059190612b80565b60405180910390a150565b600080600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc9061321d565b60405180910390fd5b6111e28433858403611be0565b6111ec84846124d8565b600191505092915050565b600a6020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461129d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129490612e90565b60405180910390fd5b806003819055507ff81e49436a9468d4e5a18ec3a66d9a51fd5eb03de3ddddd43bd85f6ae1b072b36003546040516112d59190612b80565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606061130e612699565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139890612e90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890612f68565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fc1f37bd5d85be2239236c010011c8837e596c2c28d94d45893872fb5064e75ce826040516114ae9190612b16565b60405180910390a25050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561157f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611576906132af565b60405180910390fd5b611595338585846115909190613049565b611be0565b600191505092915050565b60006115ad338484611dab565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e90613341565b60405180910390fd5b8342111561166a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611661906133ad565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b888888600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906116e3906133cd565b91905055896040516020016116fd96959493929190613416565b6040516020818303038152906040528051906020012090506000611720826126d6565b90506000611730828787876126f0565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906134c3565b60405180910390fd5b6117ab8a8a8a611be0565b50505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183c90612e90565b60405180910390fd5b600160149054906101000a900460ff1615611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c9061352f565b60405180910390fd5b60018060146101000a81548160ff0219169083151502179055506001600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506361eeb0e0600281905550690a968163f0a57b40000060038190555060018060156101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f032b60b621d5620ebed4224d2af054acf250833415d69a1a90b9c0de47c951f160016040516119c59190612b16565b60405180910390a27feb0dd367985442b0f5a817b2cee27fa94416adda70f365044808a6552418fec66002546040516119fe9190612b80565b60405180910390a17ff81e49436a9468d4e5a18ec3a66d9a51fd5eb03de3ddddd43bd85f6ae1b072b3600354604051611a379190612b80565b60405180910390a17ff19da345eb86d7718a0c6e1d1e68d0c70e9fb40e7f54bfaaa1110c5dd5942eaa600160159054906101000a900460ff16604051611a7d9190612b16565b60405180910390a1565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160159054906101000a900460ff1681565b60025481565b60606040518060400160405280600581526020017f4a6967656e000000000000000000000000000000000000000000000000000000815250905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c47906135c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613653565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d9e9190612b80565b60405180910390a3505050565b828282600160159054906101000a900460ff168015611e145750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e6a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561214e57600254421015611eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eab906136bf565b60405180910390fd5b60006003541115611f0557600354811115611f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efb9061372b565b60405180910390fd5b5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166120295742601e600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fa3919061307d565b1115611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb90613797565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661214d5742601e600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c7919061307d565b1115612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff90613797565b60405180910390fd5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b590613829565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561222e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612225906138bb565b60405180910390fd5b60008411612271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226890613927565b60405180910390fd5b83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea906139b9565b60405180910390fd5b83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123429190613049565b9250508190555083600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612398919061307d565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516123fc9190612b80565b60405180910390a3505050505050565b60006012905090565b60007f0000000000000000000000000000000000000000000000000000000000000001461415612467577f92de1fd95cc8e960beda02e218c0c8ff5852ec4c3fece34a0d7d1c8e102b3a6a90506124d5565b6124d27f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7fb1e25d661fcb3b358609bf59b46b4443c14133364a0f900d5f44060617b6f3367fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661287b565b90505b90565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f90613a4b565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c690613add565b60405180910390fd5b818103600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008282546126279190613049565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268c9190612b80565b60405180910390a3505050565b60606040518060400160405280600381526020017f4a49470000000000000000000000000000000000000000000000000000000000815250905090565b60006126e96126e3612415565b836128b5565b9050919050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115612758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274f90613b6f565b60405180910390fd5b601b8460ff16148061276d5750601c8460ff16145b6127ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a390613c01565b60405180910390fd5b6000600186868686604051600081526020016040526040516127d19493929190613c21565b6020604051602081039080840390855afa1580156127f3573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613cb2565b60405180910390fd5b80915050949350505050565b60008383834630604051602001612896959493929190613cd2565b6040516020818303038152906040528051906020012090509392505050565b600082826040516020016128ca929190613d9d565b60405160208183030381529060405280519060200120905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612922578082015181840152602081019050612907565b83811115612931576000848401525b50505050565b6000601f19601f8301169050919050565b6000612953826128e8565b61295d81856128f3565b935061296d818560208601612904565b61297681612937565b840191505092915050565b6000602082019050818103600083015261299b8184612948565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129d3826129a8565b9050919050565b6129e3816129c8565b81146129ee57600080fd5b50565b600081359050612a00816129da565b92915050565b60008115159050919050565b612a1b81612a06565b8114612a2657600080fd5b50565b600081359050612a3881612a12565b92915050565b600080600060608486031215612a5757612a566129a3565b5b6000612a65868287016129f1565b9350506020612a7686828701612a29565b9250506040612a8786828701612a29565b9150509250925092565b6000819050919050565b612aa481612a91565b8114612aaf57600080fd5b50565b600081359050612ac181612a9b565b92915050565b60008060408385031215612ade57612add6129a3565b5b6000612aec858286016129f1565b9250506020612afd85828601612ab2565b9150509250929050565b612b1081612a06565b82525050565b6000602082019050612b2b6000830184612b07565b92915050565b60008060408385031215612b4857612b476129a3565b5b6000612b56858286016129f1565b9250506020612b6785828601612a29565b9150509250929050565b612b7a81612a91565b82525050565b6000602082019050612b956000830184612b71565b92915050565b600080600060608486031215612bb457612bb36129a3565b5b6000612bc2868287016129f1565b9350506020612bd3868287016129f1565b9250506040612be486828701612ab2565b9150509250925092565b6000819050919050565b612c0181612bee565b82525050565b6000602082019050612c1c6000830184612bf8565b92915050565b600060ff82169050919050565b612c3881612c22565b82525050565b6000602082019050612c536000830184612c2f565b92915050565b600060208284031215612c6f57612c6e6129a3565b5b6000612c7d848285016129f1565b91505092915050565b600060208284031215612c9c57612c9b6129a3565b5b6000612caa84828501612ab2565b91505092915050565b600060208284031215612cc957612cc86129a3565b5b6000612cd784828501612a29565b91505092915050565b612ce9816129c8565b82525050565b6000602082019050612d046000830184612ce0565b92915050565b612d1381612c22565b8114612d1e57600080fd5b50565b600081359050612d3081612d0a565b92915050565b612d3f81612bee565b8114612d4a57600080fd5b50565b600081359050612d5c81612d36565b92915050565b600080600080600080600060e0888a031215612d8157612d806129a3565b5b6000612d8f8a828b016129f1565b9750506020612da08a828b016129f1565b9650506040612db18a828b01612ab2565b9550506060612dc28a828b01612ab2565b9450506080612dd38a828b01612d21565b93505060a0612de48a828b01612d4d565b92505060c0612df58a828b01612d4d565b91505092959891949750929550565b60008060408385031215612e1b57612e1a6129a3565b5b6000612e29858286016129f1565b9250506020612e3a858286016129f1565b9150509250929050565b7f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000612e7a6017836128f3565b9150612e8582612e44565b602082019050919050565b60006020820190508181036000830152612ea981612e6d565b9050919050565b7f7a65726f20616464726573730000000000000000000000000000000000000000600082015250565b6000612ee6600c836128f3565b9150612ef182612eb0565b602082019050919050565b60006020820190508181036000830152612f1581612ed9565b9050919050565b7f5a65726f20616464726573730000000000000000000000000000000000000000600082015250565b6000612f52600c836128f3565b9150612f5d82612f1c565b602082019050919050565b60006020820190508181036000830152612f8181612f45565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612fe46028836128f3565b9150612fef82612f88565b604082019050919050565b6000602082019050818103600083015261301381612fd7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305482612a91565b915061305f83612a91565b9250828210156130725761307161301a565b5b828203905092915050565b600061308882612a91565b915061309383612a91565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c8576130c761301a565b5b828201905092915050565b7f63616c6c657220213d2070656e64696e67206f776e6572000000000000000000600082015250565b60006131096017836128f3565b9150613114826130d3565b602082019050919050565b60006020820190508181036000830152613138816130fc565b9050919050565b7f50726f74656374696f6e3a20546f206c61746500000000000000000000000000600082015250565b60006131756013836128f3565b91506131808261313f565b602082019050919050565b600060208201905081810360008301526131a481613168565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b60006132076024836128f3565b9150613212826131ab565b604082019050919050565b60006020820190508181036000830152613236816131fa565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006132996025836128f3565b91506132a48261323d565b604082019050919050565b600060208201905081810360008301526132c88161328c565b9050919050565b7f45524332305065726d69743a205065726d69742066726f6d207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061332b6025836128f3565b9150613336826132cf565b604082019050919050565b6000602082019050818103600083015261335a8161331e565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000613397601d836128f3565b91506133a282613361565b602082019050919050565b600060208201905081810360008301526133c68161338a565b9050919050565b60006133d882612a91565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561340b5761340a61301a565b5b600182019050919050565b600060c08201905061342b6000830189612bf8565b6134386020830188612ce0565b6134456040830187612ce0565b6134526060830186612b71565b61345f6080830185612b71565b61346c60a0830184612b71565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b60006134ad601e836128f3565b91506134b882613477565b602082019050919050565b600060208201905081810360008301526134dc816134a0565b9050919050565b7f50726f74656374696f6e3a20416c726561647920696e697469616c697a656400600082015250565b6000613519601f836128f3565b9150613524826134e3565b602082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135ab6024836128f3565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061363d6022836128f3565b9150613648826135e1565b604082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f50726f74656374696f6e3a205472616e73666572732064697361626c65640000600082015250565b60006136a9601e836128f3565b91506136b482613673565b602082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b7f50726f74656374696f6e3a204c696d6974206578636565646564000000000000600082015250565b6000613715601a836128f3565b9150613720826136df565b602082019050919050565b6000602082019050818103600083015261374481613708565b9050919050565b7f50726f74656374696f6e3a203330207365632f747820616c6c6f776564000000600082015250565b6000613781601d836128f3565b915061378c8261374b565b602082019050919050565b600060208201905081810360008301526137b081613774565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006138136025836128f3565b915061381e826137b7565b604082019050919050565b6000602082019050818103600083015261384281613806565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138a56023836128f3565b91506138b082613849565b604082019050919050565b600060208201905081810360008301526138d481613898565b9050919050565b7f5472616e7366657220616d6f756e742069732030000000000000000000000000600082015250565b60006139116014836128f3565b915061391c826138db565b602082019050919050565b6000602082019050818103600083015261394081613904565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006139a36026836128f3565b91506139ae82613947565b604082019050919050565b600060208201905081810360008301526139d281613996565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a356021836128f3565b9150613a40826139d9565b604082019050919050565b60006020820190508181036000830152613a6481613a28565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ac76022836128f3565b9150613ad282613a6b565b604082019050919050565b60006020820190508181036000830152613af681613aba565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b596022836128f3565b9150613b6482613afd565b604082019050919050565b60006020820190508181036000830152613b8881613b4c565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613beb6022836128f3565b9150613bf682613b8f565b604082019050919050565b60006020820190508181036000830152613c1a81613bde565b9050919050565b6000608082019050613c366000830187612bf8565b613c436020830186612c2f565b613c506040830185612bf8565b613c5d6060830184612bf8565b95945050505050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000613c9c6018836128f3565b9150613ca782613c66565b602082019050919050565b60006020820190508181036000830152613ccb81613c8f565b9050919050565b600060a082019050613ce76000830188612bf8565b613cf46020830187612bf8565b613d016040830186612bf8565b613d0e6060830185612b71565b613d1b6080830184612ce0565b9695505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613d66600283613d25565b9150613d7182613d30565b600282019050919050565b6000819050919050565b613d97613d9282612bee565b613d7c565b82525050565b6000613da882613d59565b9150613db48285613d86565b602082019150613dc48284613d86565b602082019150819050939250505056fea26469706673582212202209892ffbc5fe51f0db6ec9f632e4a8ab594fd988ada2c062819ffb8e278a2a64736f6c634300080a0033

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

000000000000000000000000d8f21c57b973a69413e74020c60d09ef631658b1

-----Decoded View---------------
Arg [0] : _admin (address): 0xd8F21c57b973a69413e74020C60D09ef631658b1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d8f21c57b973a69413e74020c60d09ef631658b1


Deployed Bytecode Sourcemap

346:6258:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1063:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;904:437:4;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3257:161:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1952:256:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1397:102:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;257:33:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3426:554:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;154:24:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;738:108:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1281;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5625:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3988:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2605:118:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1782:129:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1774:170:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1437:292:4;;;:::i;:::-;;2800:119:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1363:222:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1919:406:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;853:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1593:173:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;90:20:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1170:103:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2342:255:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4201:365:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2927:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5748:853;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;831:524:5;;;:::i;:::-;;2216:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3102:147:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;117:27:4;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:30:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;222:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1063:99:3;1102:13;1135:19;:17;:19::i;:::-;1128:26;;1063:99;:::o;904:437:4:-;1876:5;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1048:7:::1;1044:290;;;1101:1;1080:23;;:9;:23;;;;:36;;;;1107:9;1080:36;1072:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1183:9;1155:38;;1176:5;::::0;::::1;;;;;;;;1155:38;;;;;;;;;;;;1216:9;1208:5;::::0;:17:::1;;;;;;;;;;;;;;;;;;1263:1;1240:12;;:25;;;;;;;;;;;;;;;;;;1044:290;;;1313:9;1298:12;;:24;;;;;;;;;;;;;;;;;;1044:290;904:437:::0;;;:::o;3257:161:3:-;3334:4;3351:37;3360:10;3372:7;3381:6;3351:8;:37::i;:::-;3406:4;3399:11;;3257:161;;;;:::o;1952:256:5:-;1876:5:4;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2074:1:5::1;2054:22;;:8;:22;;;;2046:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2131:12;2104:14;:24;2119:8;2104:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2177:8;2159:41;;;2187:12;2159:41;;;;;;:::i;:::-;;;;;;;;1952:256:::0;;:::o;1397:102:3:-;1452:7;1479:12;;1472:19;;1397:102;:::o;257:33:5:-;;;;:::o;3426:554:3:-;3560:4;3577:24;3604:11;:19;3616:6;3604:19;;;;;;;;;;;;;;;:31;3624:10;3604:31;;;;;;;;;;;;;;;;3577:58;;3674:6;3654:16;:26;;3646:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3759:17;3740:16;:36;3736:168;;;3837:55;3846:6;3854:10;3885:6;3866:16;:25;;;;:::i;:::-;3837:8;:55::i;:::-;3736:168;3914:36;3924:6;3932:9;3943:6;3914:9;:36::i;:::-;3968:4;3961:11;;;3426:554;;;;;:::o;154:24:5:-;;;;;;;;;;;;;:::o;738:108:3:-;780:66;738:108;;;:::o;1281:::-;1333:5;1358:23;:21;:23::i;:::-;1351:30;;1281:108;:::o;5625:115::-;5685:7;5712:20;:18;:20::i;:::-;5705:27;;5625:115;:::o;3988:205::-;4070:4;4087:76;4096:10;4108:7;4152:10;4117:11;:23;4129:10;4117:23;;;;;;;;;;;;;;;:32;4141:7;4117:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;4087:8;:76::i;:::-;4181:4;4174:11;;3988:205;;;;:::o;2605:118:5:-;2668:4;2692:14;:23;2707:7;2692:23;;;;;;;;;;;;;;;;;;;;;;;;;2685:30;;2605:118;;;:::o;1782:129:3:-;1839:4;1856:25;1862:10;1874:6;1856:5;:25::i;:::-;1899:4;1892:11;;1782:129;;;:::o;1774:170:5:-;1876:5:4;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1869:7:5::1;1848:18;;:28;;;;;;;;;;;;;;;;;;1892:44;1917:18;;;;;;;;;;;1892:44;;;;;;:::i;:::-;;;;;;;;1774:170:::0;:::o;1437:292:4:-;1483:21;1507:12;;;;;;;;;;;1483:36;;1552:13;1538:27;;:10;:27;;;1530:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1639:13;1611:42;;1632:5;;;;;;;;;;1611:42;;;;;;;;;;;;1672:13;1664:5;;:21;;;;;;;;;;;;;;;;;;1719:1;1696:12;;:25;;;;;;;;;;;;;;;;;;1472:257;1437:292::o;2800:119:3:-;2866:7;2893:9;:18;2903:7;2893:18;;;;;;;;;;;;;;;;2886:25;;2800:119;;;:::o;1363:222:5:-;1876:5:4;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1457:15:5::1;1441:13;;:31;1433:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1523:5;1507:13;:21;;;;1544:33;1563:13;;1544:33;;;;;;:::i;:::-;;;;;;;;1363:222:::0;:::o;1919:406:3:-;1997:4;2014:24;2041:11;:20;2053:7;2041:20;;;;;;;;;;;;;;;:32;2062:10;2041:32;;;;;;;;;;;;;;;;2014:59;;2112:6;2092:16;:26;;2084:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;2195:56;2204:7;2213:10;2244:6;2225:16;:25;2195:8;:56::i;:::-;2273:22;2279:7;2288:6;2273:5;:22::i;:::-;2313:4;2306:11;;;1919:406;;;;:::o;853:50::-;;;;;;;;;;;;;;;;;:::o;1593:173:5:-;1876:5:4;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;1691:7:5::1;1670:18;:28;;;;1714:44;1739:18;;1714:44;;;;;;:::i;:::-;;;;;;;;1593:173:::0;:::o;90:20:4:-;;;;;;;;;;;;:::o;1170:103:3:-;1211:13;1244:21;:19;:21::i;:::-;1237:28;;1170:103;:::o;2342:255:5:-;1876:5:4;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;2463:1:5::1;2443:22;;:8;:22;;;;2435:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;2520:12;2493:14;:24;2508:8;2493:24;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2566:8;2548:41;;;2576:12;2548:41;;;;;;:::i;:::-;;;;;;;;2342:255:::0;;:::o;4201:365:3:-;4288:4;4305:24;4332:11;:23;4344:10;4332:23;;;;;;;;;;;;;;;:32;4356:7;4332:32;;;;;;;;;;;;;;;;4305:59;;4403:15;4383:16;:35;;4375:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4471:65;4480:10;4492:7;4520:15;4501:16;:34;;;;:::i;:::-;4471:8;:65::i;:::-;4554:4;4547:11;;;4201:365;;;;:::o;2927:167::-;3007:4;3024:40;3034:10;3046:9;3057:6;3024:9;:40::i;:::-;3082:4;3075:11;;2927:167;;;;:::o;5748:853::-;6063:1;6045:20;;:6;:20;;;;6037:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6200:8;6181:15;:27;;6173:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6255:18;780:66;6297:15;;6314:6;6322:7;6331:5;6338:6;:14;6345:6;6338:14;;;;;;;;;;;;;;;;:16;;;;;;;;;:::i;:::-;;;;;6356:8;6286:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6276:90;;;;;;6255:111;;6377:12;6392:28;6409:10;6392:16;:28::i;:::-;6377:43;;6433:14;6450:28;6464:4;6470:1;6473;6476;6450:13;:28::i;:::-;6433:45;;6507:6;6497:16;;:6;:16;;;6489:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6561:32;6570:6;6578:7;6587:5;6561:8;:32::i;:::-;5949:652;;;5748:853;;;;;;;:::o;831:524:5:-;1876:5:4;;;;;;;;;;1862:19;;:10;:19;;;1854:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;893:12:5::1;;;;;;;;;;;892:13;884:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;967:4;952:12:::0;::::1;:19;;;;;;;;;;;;;;;;;;1006:4;982:14;:21;997:5:::0;::::1;;;;;;;;;;982:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1037:10;1021:13;:26;;;;1079:15;1058:18;:36;;;;1126:4;1105:18:::0;::::1;:25;;;;;;;;;;;;;;;;;;1166:5;::::0;::::1;;;;;;;;1148:30;;;1173:4;1148:30;;;;;;:::i;:::-;;;;;;;;1194:33;1213:13;;1194:33;;;;;;:::i;:::-;;;;;;;;1243:44;1268:18;;1243:44;;;;;;:::i;:::-;;;;;;;;1303;1328:18;;;;;;;;;;;1303:44;;;;;;:::i;:::-;;;;;;;;831:524::o:0;2216:118::-;2279:4;2303:14;:23;2318:7;2303:23;;;;;;;;;;;;;;;;;;;;;;;;;2296:30;;2216:118;;;:::o;3102:147:3:-;3186:7;3213:11;:19;3225:6;3213:19;;;;;;;;;;;;;;;:28;3233:7;3213:28;;;;;;;;;;;;;;;;3206:35;;3102:147;;;;:::o;117:27:4:-;;;;;;;;;;;;;:::o;185:30:5:-;;;;;;;;;;;;;:::o;222:28::-;;;;:::o;225:88:0:-;267:13;300:5;;;;;;;;;;;;;;;;;293:12;;225:88;:::o;5188:375:3:-;5334:1;5316:20;;:6;:20;;;;5308:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5415:1;5396:21;;:7;:21;;;;5388:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5500:6;5469:11;:19;5481:6;5469:19;;;;;;;;;;;;;;;:28;5489:7;5469:28;;;;;;;;;;;;;;;:37;;;;5539:7;5522:33;;5531:6;5522:33;;;5548:6;5522:33;;;;;;:::i;:::-;;;;;;;;5188:375;;;:::o;4574:606::-;4707:6;4715:9;4726:6;2861:18:5;;;;;;;;;;;:48;;;;;2884:14;:25;2899:9;2884:25;;;;;;;;;;;;;;;;;;;;;;;;;2883:26;2861:48;:75;;;;;2914:14;:22;2929:6;2914:22;;;;;;;;;;;;;;;;;;;;;;;;;2913:23;2861:75;2857:806;;;2980:13;;2961:15;:32;;2953:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;3070:1;3049:18;;:22;3045:130;;;3110:18;;3100:6;:28;;3092:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3045:130;3196:14;:25;3211:9;3196:25;;;;;;;;;;;;;;;;;;;;;;;;;3191:227;;3294:15;340:2;3250:11;:22;3262:9;3250:22;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;:59;;3242:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;3387:15;3362:11;:22;3374:9;3362:22;;;;;;;;;;;;;;;:40;;;;3191:227;3439:14;:22;3454:6;3439:22;;;;;;;;;;;;;;;;;;;;;;;;;3434:218;;3531:15;340:2;3490:11;:19;3502:6;3490:19;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:56;;3482:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;3621:15;3599:11;:19;3611:6;3599:19;;;;;;;;;;;;;;;:37;;;;3434:218;2857:806;4771:1:3::1;4753:20;;:6;:20;;;;4745:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4855:1;4834:23;;:9;:23;;;;4826:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4925:1;4916:6;:10;4908:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;4991:6;4970:9;:17;4980:6;4970:17;;;;;;;;;;;;;;;;:27;;4962:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5074:6;5053:9;:17;5063:6;5053:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;5115:6;5091:9;:20;5101:9;5091:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5154:9;5137:35;;5146:6;5137:35;;;5165:6;5137:35;;;;;;:::i;:::-;;;;;;;;4574:606:::0;;;;;;:::o;421:88:0:-;467:5;214:2;485:16;;421:88;:::o;3032:281:6:-;3085:7;3126:16;3109:13;:33;3105:201;;;3166:24;3159:31;;;;3105:201;3230:64;3252:10;3264:12;3278:15;3230:21;:64::i;:::-;3223:71;;3032:281;;:::o;2333:459:3:-;2427:1;2408:21;;:7;:21;;;;2400:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2480:22;2505:9;:18;2515:7;2505:18;;;;;;;;;;;;;;;;2480:43;;2560:6;2542:14;:24;;2534:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;2679:6;2662:14;:23;2641:9;:18;2651:7;2641:18;;;;;;;;;;;;;;;:44;;;;2723:6;2707:12;;:22;;;;;;;:::i;:::-;;;;;;;;2773:1;2747:37;;2756:7;2747:37;;;2777:6;2747:37;;;;;;:::i;:::-;;;;;;;;2389:403;2333:459;;:::o;321:92:0:-;365:13;398:7;;;;;;;;;;;;;;;;;391:14;;321:92;:::o;4210:167:6:-;4287:7;4314:55;4336:20;:18;:20::i;:::-;4358:10;4314:21;:55::i;:::-;4307:62;;4210:167;;;:::o;2720:1475:1:-;2848:7;3773:66;3767:1;3759:10;;:80;;3751:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;3902:2;3897:1;:7;;;:18;;;;3913:2;3908:1;:7;;;3897:18;3889:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4052:14;4069:24;4079:4;4085:1;4088;4091;4069:24;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4052:41;;4130:1;4112:20;;:6;:20;;;;4104:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4181:6;4174:13;;;2720:1475;;;;;;:::o;3321:247:6:-;3457:7;3505:8;3515:4;3521:7;3530:13;3553:4;3494:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3484:76;;;;;;3477:83;;3321:247;;;;;:::o;5114:196:1:-;5207:7;5273:15;5290:10;5244:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5234:68;;;;;;5227:75;;5114:196;;;;:::o;7:99:7:-;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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:90::-;2265:7;2308:5;2301:13;2294:21;2283:32;;2231:90;;;:::o;2327:116::-;2397:21;2412:5;2397:21;:::i;:::-;2390:5;2387:32;2377:60;;2433:1;2430;2423:12;2377:60;2327:116;:::o;2449:133::-;2492:5;2530:6;2517:20;2508:29;;2546:30;2570:5;2546:30;:::i;:::-;2449:133;;;;:::o;2588:607::-;2659:6;2667;2675;2724:2;2712:9;2703:7;2699:23;2695:32;2692:119;;;2730:79;;:::i;:::-;2692:119;2850:1;2875:53;2920:7;2911:6;2900:9;2896:22;2875:53;:::i;:::-;2865:63;;2821:117;2977:2;3003:50;3045:7;3036:6;3025:9;3021:22;3003:50;:::i;:::-;2993:60;;2948:115;3102:2;3128:50;3170:7;3161:6;3150:9;3146:22;3128:50;:::i;:::-;3118:60;;3073:115;2588:607;;;;;:::o;3201:77::-;3238:7;3267:5;3256:16;;3201:77;;;:::o;3284:122::-;3357:24;3375:5;3357:24;:::i;:::-;3350:5;3347:35;3337:63;;3396:1;3393;3386:12;3337:63;3284:122;:::o;3412:139::-;3458:5;3496:6;3483:20;3474:29;;3512:33;3539:5;3512:33;:::i;:::-;3412:139;;;;:::o;3557:474::-;3625:6;3633;3682:2;3670:9;3661:7;3657:23;3653:32;3650:119;;;3688:79;;:::i;:::-;3650:119;3808:1;3833:53;3878:7;3869:6;3858:9;3854:22;3833:53;:::i;:::-;3823:63;;3779:117;3935:2;3961:53;4006:7;3997:6;3986:9;3982:22;3961:53;:::i;:::-;3951:63;;3906:118;3557:474;;;;;:::o;4037:109::-;4118:21;4133:5;4118:21;:::i;:::-;4113:3;4106:34;4037:109;;:::o;4152:210::-;4239:4;4277:2;4266:9;4262:18;4254:26;;4290:65;4352:1;4341:9;4337:17;4328:6;4290:65;:::i;:::-;4152:210;;;;:::o;4368:468::-;4433:6;4441;4490:2;4478:9;4469:7;4465:23;4461:32;4458:119;;;4496:79;;:::i;:::-;4458:119;4616:1;4641:53;4686:7;4677:6;4666:9;4662:22;4641:53;:::i;:::-;4631:63;;4587:117;4743:2;4769:50;4811:7;4802:6;4791:9;4787:22;4769:50;:::i;:::-;4759:60;;4714:115;4368:468;;;;;:::o;4842:118::-;4929:24;4947:5;4929:24;:::i;:::-;4924:3;4917:37;4842:118;;:::o;4966:222::-;5059:4;5097:2;5086:9;5082:18;5074:26;;5110:71;5178:1;5167:9;5163:17;5154:6;5110:71;:::i;:::-;4966:222;;;;:::o;5194:619::-;5271:6;5279;5287;5336:2;5324:9;5315:7;5311:23;5307:32;5304:119;;;5342:79;;:::i;:::-;5304:119;5462:1;5487:53;5532:7;5523:6;5512:9;5508:22;5487:53;:::i;:::-;5477:63;;5433:117;5589:2;5615:53;5660:7;5651:6;5640:9;5636:22;5615:53;:::i;:::-;5605:63;;5560:118;5717:2;5743:53;5788:7;5779:6;5768:9;5764:22;5743:53;:::i;:::-;5733:63;;5688:118;5194:619;;;;;:::o;5819:77::-;5856:7;5885:5;5874:16;;5819:77;;;:::o;5902:118::-;5989:24;6007:5;5989:24;:::i;:::-;5984:3;5977:37;5902:118;;:::o;6026:222::-;6119:4;6157:2;6146:9;6142:18;6134:26;;6170:71;6238:1;6227:9;6223:17;6214:6;6170:71;:::i;:::-;6026:222;;;;:::o;6254:86::-;6289:7;6329:4;6322:5;6318:16;6307:27;;6254:86;;;:::o;6346:112::-;6429:22;6445:5;6429:22;:::i;:::-;6424:3;6417:35;6346:112;;:::o;6464:214::-;6553:4;6591:2;6580:9;6576:18;6568:26;;6604:67;6668:1;6657:9;6653:17;6644:6;6604:67;:::i;:::-;6464:214;;;;:::o;6684:329::-;6743:6;6792:2;6780:9;6771:7;6767:23;6763:32;6760:119;;;6798:79;;:::i;:::-;6760:119;6918:1;6943:53;6988:7;6979:6;6968:9;6964:22;6943:53;:::i;:::-;6933:63;;6889:117;6684:329;;;;:::o;7019:::-;7078:6;7127:2;7115:9;7106:7;7102:23;7098:32;7095:119;;;7133:79;;:::i;:::-;7095:119;7253:1;7278:53;7323:7;7314:6;7303:9;7299:22;7278:53;:::i;:::-;7268:63;;7224:117;7019:329;;;;:::o;7354:323::-;7410:6;7459:2;7447:9;7438:7;7434:23;7430:32;7427:119;;;7465:79;;:::i;:::-;7427:119;7585:1;7610:50;7652:7;7643:6;7632:9;7628:22;7610:50;:::i;:::-;7600:60;;7556:114;7354:323;;;;:::o;7683:118::-;7770:24;7788:5;7770:24;:::i;:::-;7765:3;7758:37;7683:118;;:::o;7807:222::-;7900:4;7938:2;7927:9;7923:18;7915:26;;7951:71;8019:1;8008:9;8004:17;7995:6;7951:71;:::i;:::-;7807:222;;;;:::o;8035:118::-;8106:22;8122:5;8106:22;:::i;:::-;8099:5;8096:33;8086:61;;8143:1;8140;8133:12;8086:61;8035:118;:::o;8159:135::-;8203:5;8241:6;8228:20;8219:29;;8257:31;8282:5;8257:31;:::i;:::-;8159:135;;;;:::o;8300:122::-;8373:24;8391:5;8373:24;:::i;:::-;8366:5;8363:35;8353:63;;8412:1;8409;8402:12;8353:63;8300:122;:::o;8428:139::-;8474:5;8512:6;8499:20;8490:29;;8528:33;8555:5;8528:33;:::i;:::-;8428:139;;;;:::o;8573:1199::-;8684:6;8692;8700;8708;8716;8724;8732;8781:3;8769:9;8760:7;8756:23;8752:33;8749:120;;;8788:79;;:::i;:::-;8749:120;8908:1;8933:53;8978:7;8969:6;8958:9;8954:22;8933:53;:::i;:::-;8923:63;;8879:117;9035:2;9061:53;9106:7;9097:6;9086:9;9082:22;9061:53;:::i;:::-;9051:63;;9006:118;9163:2;9189:53;9234:7;9225:6;9214:9;9210:22;9189:53;:::i;:::-;9179:63;;9134:118;9291:2;9317:53;9362:7;9353:6;9342:9;9338:22;9317:53;:::i;:::-;9307:63;;9262:118;9419:3;9446:51;9489:7;9480:6;9469:9;9465:22;9446:51;:::i;:::-;9436:61;;9390:117;9546:3;9573:53;9618:7;9609:6;9598:9;9594:22;9573:53;:::i;:::-;9563:63;;9517:119;9675:3;9702:53;9747:7;9738:6;9727:9;9723:22;9702:53;:::i;:::-;9692:63;;9646:119;8573:1199;;;;;;;;;;:::o;9778:474::-;9846:6;9854;9903:2;9891:9;9882:7;9878:23;9874:32;9871:119;;;9909:79;;:::i;:::-;9871:119;10029:1;10054:53;10099:7;10090:6;10079:9;10075:22;10054:53;:::i;:::-;10044:63;;10000:117;10156:2;10182:53;10227:7;10218:6;10207:9;10203:22;10182:53;:::i;:::-;10172:63;;10127:118;9778:474;;;;;:::o;10258:173::-;10398:25;10394:1;10386:6;10382:14;10375:49;10258:173;:::o;10437:366::-;10579:3;10600:67;10664:2;10659:3;10600:67;:::i;:::-;10593:74;;10676:93;10765:3;10676:93;:::i;:::-;10794:2;10789:3;10785:12;10778:19;;10437:366;;;:::o;10809:419::-;10975:4;11013:2;11002:9;10998:18;10990:26;;11062:9;11056:4;11052:20;11048:1;11037:9;11033:17;11026:47;11090:131;11216:4;11090:131;:::i;:::-;11082:139;;10809:419;;;:::o;11234:162::-;11374:14;11370:1;11362:6;11358:14;11351:38;11234:162;:::o;11402:366::-;11544:3;11565:67;11629:2;11624:3;11565:67;:::i;:::-;11558:74;;11641:93;11730:3;11641:93;:::i;:::-;11759:2;11754:3;11750:12;11743:19;;11402:366;;;:::o;11774:419::-;11940:4;11978:2;11967:9;11963:18;11955:26;;12027:9;12021:4;12017:20;12013:1;12002:9;11998:17;11991:47;12055:131;12181:4;12055:131;:::i;:::-;12047:139;;11774:419;;;:::o;12199:162::-;12339:14;12335:1;12327:6;12323:14;12316:38;12199:162;:::o;12367:366::-;12509:3;12530:67;12594:2;12589:3;12530:67;:::i;:::-;12523:74;;12606:93;12695:3;12606:93;:::i;:::-;12724:2;12719:3;12715:12;12708:19;;12367:366;;;:::o;12739:419::-;12905:4;12943:2;12932:9;12928:18;12920:26;;12992:9;12986:4;12982:20;12978:1;12967:9;12963:17;12956:47;13020:131;13146:4;13020:131;:::i;:::-;13012:139;;12739:419;;;:::o;13164:227::-;13304:34;13300:1;13292:6;13288:14;13281:58;13373:10;13368:2;13360:6;13356:15;13349:35;13164:227;:::o;13397:366::-;13539:3;13560:67;13624:2;13619:3;13560:67;:::i;:::-;13553:74;;13636:93;13725:3;13636:93;:::i;:::-;13754:2;13749:3;13745:12;13738:19;;13397:366;;;:::o;13769:419::-;13935:4;13973:2;13962:9;13958:18;13950:26;;14022:9;14016:4;14012:20;14008:1;13997:9;13993:17;13986:47;14050:131;14176:4;14050:131;:::i;:::-;14042:139;;13769:419;;;:::o;14194:180::-;14242:77;14239:1;14232:88;14339:4;14336:1;14329:15;14363:4;14360:1;14353:15;14380:191;14420:4;14440:20;14458:1;14440:20;:::i;:::-;14435:25;;14474:20;14492:1;14474:20;:::i;:::-;14469:25;;14513:1;14510;14507:8;14504:34;;;14518:18;;:::i;:::-;14504:34;14563:1;14560;14556:9;14548:17;;14380:191;;;;:::o;14577:305::-;14617:3;14636:20;14654:1;14636:20;:::i;:::-;14631:25;;14670:20;14688:1;14670:20;:::i;:::-;14665:25;;14824:1;14756:66;14752:74;14749:1;14746:81;14743:107;;;14830:18;;:::i;:::-;14743:107;14874:1;14871;14867:9;14860:16;;14577:305;;;;:::o;14888:173::-;15028:25;15024:1;15016:6;15012:14;15005:49;14888:173;:::o;15067:366::-;15209:3;15230:67;15294:2;15289:3;15230:67;:::i;:::-;15223:74;;15306:93;15395:3;15306:93;:::i;:::-;15424:2;15419:3;15415:12;15408:19;;15067:366;;;:::o;15439:419::-;15605:4;15643:2;15632:9;15628:18;15620:26;;15692:9;15686:4;15682:20;15678:1;15667:9;15663:17;15656:47;15720:131;15846:4;15720:131;:::i;:::-;15712:139;;15439:419;;;:::o;15864:169::-;16004:21;16000:1;15992:6;15988:14;15981:45;15864:169;:::o;16039:366::-;16181:3;16202:67;16266:2;16261:3;16202:67;:::i;:::-;16195:74;;16278:93;16367:3;16278:93;:::i;:::-;16396:2;16391:3;16387:12;16380:19;;16039:366;;;:::o;16411:419::-;16577:4;16615:2;16604:9;16600:18;16592:26;;16664:9;16658:4;16654:20;16650:1;16639:9;16635:17;16628:47;16692:131;16818:4;16692:131;:::i;:::-;16684:139;;16411:419;;;:::o;16836:223::-;16976:34;16972:1;16964:6;16960:14;16953:58;17045:6;17040:2;17032:6;17028:15;17021:31;16836:223;:::o;17065:366::-;17207:3;17228:67;17292:2;17287:3;17228:67;:::i;:::-;17221:74;;17304:93;17393:3;17304:93;:::i;:::-;17422:2;17417:3;17413:12;17406:19;;17065:366;;;:::o;17437:419::-;17603:4;17641:2;17630:9;17626:18;17618:26;;17690:9;17684:4;17680:20;17676:1;17665:9;17661:17;17654:47;17718:131;17844:4;17718:131;:::i;:::-;17710:139;;17437:419;;;:::o;17862:224::-;18002:34;17998:1;17990:6;17986:14;17979:58;18071:7;18066:2;18058:6;18054:15;18047:32;17862:224;:::o;18092:366::-;18234:3;18255:67;18319:2;18314:3;18255:67;:::i;:::-;18248:74;;18331:93;18420:3;18331:93;:::i;:::-;18449:2;18444:3;18440:12;18433:19;;18092:366;;;:::o;18464:419::-;18630:4;18668:2;18657:9;18653:18;18645:26;;18717:9;18711:4;18707:20;18703:1;18692:9;18688:17;18681:47;18745:131;18871:4;18745:131;:::i;:::-;18737:139;;18464:419;;;:::o;18889:224::-;19029:34;19025:1;19017:6;19013:14;19006:58;19098:7;19093:2;19085:6;19081:15;19074:32;18889:224;:::o;19119:366::-;19261:3;19282:67;19346:2;19341:3;19282:67;:::i;:::-;19275:74;;19358:93;19447:3;19358:93;:::i;:::-;19476:2;19471:3;19467:12;19460:19;;19119:366;;;:::o;19491:419::-;19657:4;19695:2;19684:9;19680:18;19672:26;;19744:9;19738:4;19734:20;19730:1;19719:9;19715:17;19708:47;19772:131;19898:4;19772:131;:::i;:::-;19764:139;;19491:419;;;:::o;19916:179::-;20056:31;20052:1;20044:6;20040:14;20033:55;19916:179;:::o;20101:366::-;20243:3;20264:67;20328:2;20323:3;20264:67;:::i;:::-;20257:74;;20340:93;20429:3;20340:93;:::i;:::-;20458:2;20453:3;20449:12;20442:19;;20101:366;;;:::o;20473:419::-;20639:4;20677:2;20666:9;20662:18;20654:26;;20726:9;20720:4;20716:20;20712:1;20701:9;20697:17;20690:47;20754:131;20880:4;20754:131;:::i;:::-;20746:139;;20473:419;;;:::o;20898:233::-;20937:3;20960:24;20978:5;20960:24;:::i;:::-;20951:33;;21006:66;20999:5;20996:77;20993:103;;;21076:18;;:::i;:::-;20993:103;21123:1;21116:5;21112:13;21105:20;;20898:233;;;:::o;21137:775::-;21370:4;21408:3;21397:9;21393:19;21385:27;;21422:71;21490:1;21479:9;21475:17;21466:6;21422:71;:::i;:::-;21503:72;21571:2;21560:9;21556:18;21547:6;21503:72;:::i;:::-;21585;21653:2;21642:9;21638:18;21629:6;21585:72;:::i;:::-;21667;21735:2;21724:9;21720:18;21711:6;21667:72;:::i;:::-;21749:73;21817:3;21806:9;21802:19;21793:6;21749:73;:::i;:::-;21832;21900:3;21889:9;21885:19;21876:6;21832:73;:::i;:::-;21137:775;;;;;;;;;:::o;21918:180::-;22058:32;22054:1;22046:6;22042:14;22035:56;21918:180;:::o;22104:366::-;22246:3;22267:67;22331:2;22326:3;22267:67;:::i;:::-;22260:74;;22343:93;22432:3;22343:93;:::i;:::-;22461:2;22456:3;22452:12;22445:19;;22104:366;;;:::o;22476:419::-;22642:4;22680:2;22669:9;22665:18;22657:26;;22729:9;22723:4;22719:20;22715:1;22704:9;22700:17;22693:47;22757:131;22883:4;22757:131;:::i;:::-;22749:139;;22476:419;;;:::o;22901:181::-;23041:33;23037:1;23029:6;23025:14;23018:57;22901:181;:::o;23088:366::-;23230:3;23251:67;23315:2;23310:3;23251:67;:::i;:::-;23244:74;;23327:93;23416:3;23327:93;:::i;:::-;23445:2;23440:3;23436:12;23429:19;;23088:366;;;:::o;23460:419::-;23626:4;23664:2;23653:9;23649:18;23641:26;;23713:9;23707:4;23703:20;23699:1;23688:9;23684:17;23677:47;23741:131;23867:4;23741:131;:::i;:::-;23733:139;;23460:419;;;:::o;23885:223::-;24025:34;24021:1;24013:6;24009:14;24002:58;24094:6;24089:2;24081:6;24077:15;24070:31;23885:223;:::o;24114:366::-;24256:3;24277:67;24341:2;24336:3;24277:67;:::i;:::-;24270:74;;24353:93;24442:3;24353:93;:::i;:::-;24471:2;24466:3;24462:12;24455:19;;24114:366;;;:::o;24486:419::-;24652:4;24690:2;24679:9;24675:18;24667:26;;24739:9;24733:4;24729:20;24725:1;24714:9;24710:17;24703:47;24767:131;24893:4;24767:131;:::i;:::-;24759:139;;24486:419;;;:::o;24911:221::-;25051:34;25047:1;25039:6;25035:14;25028:58;25120:4;25115:2;25107:6;25103:15;25096:29;24911:221;:::o;25138:366::-;25280:3;25301:67;25365:2;25360:3;25301:67;:::i;:::-;25294:74;;25377:93;25466:3;25377:93;:::i;:::-;25495:2;25490:3;25486:12;25479:19;;25138:366;;;:::o;25510:419::-;25676:4;25714:2;25703:9;25699:18;25691:26;;25763:9;25757:4;25753:20;25749:1;25738:9;25734:17;25727:47;25791:131;25917:4;25791:131;:::i;:::-;25783:139;;25510:419;;;:::o;25935:180::-;26075:32;26071:1;26063:6;26059:14;26052:56;25935:180;:::o;26121:366::-;26263:3;26284:67;26348:2;26343:3;26284:67;:::i;:::-;26277:74;;26360:93;26449:3;26360:93;:::i;:::-;26478:2;26473:3;26469:12;26462:19;;26121:366;;;:::o;26493:419::-;26659:4;26697:2;26686:9;26682:18;26674:26;;26746:9;26740:4;26736:20;26732:1;26721:9;26717:17;26710:47;26774:131;26900:4;26774:131;:::i;:::-;26766:139;;26493:419;;;:::o;26918:176::-;27058:28;27054:1;27046:6;27042:14;27035:52;26918:176;:::o;27100:366::-;27242:3;27263:67;27327:2;27322:3;27263:67;:::i;:::-;27256:74;;27339:93;27428:3;27339:93;:::i;:::-;27457:2;27452:3;27448:12;27441:19;;27100:366;;;:::o;27472:419::-;27638:4;27676:2;27665:9;27661:18;27653:26;;27725:9;27719:4;27715:20;27711:1;27700:9;27696:17;27689:47;27753:131;27879:4;27753:131;:::i;:::-;27745:139;;27472:419;;;:::o;27897:179::-;28037:31;28033:1;28025:6;28021:14;28014:55;27897:179;:::o;28082:366::-;28224:3;28245:67;28309:2;28304:3;28245:67;:::i;:::-;28238:74;;28321:93;28410:3;28321:93;:::i;:::-;28439:2;28434:3;28430:12;28423:19;;28082:366;;;:::o;28454:419::-;28620:4;28658:2;28647:9;28643:18;28635:26;;28707:9;28701:4;28697:20;28693:1;28682:9;28678:17;28671:47;28735:131;28861:4;28735:131;:::i;:::-;28727:139;;28454:419;;;:::o;28879:224::-;29019:34;29015:1;29007:6;29003:14;28996:58;29088:7;29083:2;29075:6;29071:15;29064:32;28879:224;:::o;29109:366::-;29251:3;29272:67;29336:2;29331:3;29272:67;:::i;:::-;29265:74;;29348:93;29437:3;29348:93;:::i;:::-;29466:2;29461:3;29457:12;29450:19;;29109:366;;;:::o;29481:419::-;29647:4;29685:2;29674:9;29670:18;29662:26;;29734:9;29728:4;29724:20;29720:1;29709:9;29705:17;29698:47;29762:131;29888:4;29762:131;:::i;:::-;29754:139;;29481:419;;;:::o;29906:222::-;30046:34;30042:1;30034:6;30030:14;30023:58;30115:5;30110:2;30102:6;30098:15;30091:30;29906:222;:::o;30134:366::-;30276:3;30297:67;30361:2;30356:3;30297:67;:::i;:::-;30290:74;;30373:93;30462:3;30373:93;:::i;:::-;30491:2;30486:3;30482:12;30475:19;;30134:366;;;:::o;30506:419::-;30672:4;30710:2;30699:9;30695:18;30687:26;;30759:9;30753:4;30749:20;30745:1;30734:9;30730:17;30723:47;30787:131;30913:4;30787:131;:::i;:::-;30779:139;;30506:419;;;:::o;30931:170::-;31071:22;31067:1;31059:6;31055:14;31048:46;30931:170;:::o;31107:366::-;31249:3;31270:67;31334:2;31329:3;31270:67;:::i;:::-;31263:74;;31346:93;31435:3;31346:93;:::i;:::-;31464:2;31459:3;31455:12;31448:19;;31107:366;;;:::o;31479:419::-;31645:4;31683:2;31672:9;31668:18;31660:26;;31732:9;31726:4;31722:20;31718:1;31707:9;31703:17;31696:47;31760:131;31886:4;31760:131;:::i;:::-;31752:139;;31479:419;;;:::o;31904:225::-;32044:34;32040:1;32032:6;32028:14;32021:58;32113:8;32108:2;32100:6;32096:15;32089:33;31904:225;:::o;32135:366::-;32277:3;32298:67;32362:2;32357:3;32298:67;:::i;:::-;32291:74;;32374:93;32463:3;32374:93;:::i;:::-;32492:2;32487:3;32483:12;32476:19;;32135:366;;;:::o;32507:419::-;32673:4;32711:2;32700:9;32696:18;32688:26;;32760:9;32754:4;32750:20;32746:1;32735:9;32731:17;32724:47;32788:131;32914:4;32788:131;:::i;:::-;32780:139;;32507:419;;;:::o;32932:220::-;33072:34;33068:1;33060:6;33056:14;33049:58;33141:3;33136:2;33128:6;33124:15;33117:28;32932:220;:::o;33158:366::-;33300:3;33321:67;33385:2;33380:3;33321:67;:::i;:::-;33314:74;;33397:93;33486:3;33397:93;:::i;:::-;33515:2;33510:3;33506:12;33499:19;;33158:366;;;:::o;33530:419::-;33696:4;33734:2;33723:9;33719:18;33711:26;;33783:9;33777:4;33773:20;33769:1;33758:9;33754:17;33747:47;33811:131;33937:4;33811:131;:::i;:::-;33803:139;;33530:419;;;:::o;33955:221::-;34095:34;34091:1;34083:6;34079:14;34072:58;34164:4;34159:2;34151:6;34147:15;34140:29;33955:221;:::o;34182:366::-;34324:3;34345:67;34409:2;34404:3;34345:67;:::i;:::-;34338:74;;34421:93;34510:3;34421:93;:::i;:::-;34539:2;34534:3;34530:12;34523:19;;34182:366;;;:::o;34554:419::-;34720:4;34758:2;34747:9;34743:18;34735:26;;34807:9;34801:4;34797:20;34793:1;34782:9;34778:17;34771:47;34835:131;34961:4;34835:131;:::i;:::-;34827:139;;34554:419;;;:::o;34979:221::-;35119:34;35115:1;35107:6;35103:14;35096:58;35188:4;35183:2;35175:6;35171:15;35164:29;34979:221;:::o;35206:366::-;35348:3;35369:67;35433:2;35428:3;35369:67;:::i;:::-;35362:74;;35445:93;35534:3;35445:93;:::i;:::-;35563:2;35558:3;35554:12;35547:19;;35206:366;;;:::o;35578:419::-;35744:4;35782:2;35771:9;35767:18;35759:26;;35831:9;35825:4;35821:20;35817:1;35806:9;35802:17;35795:47;35859:131;35985:4;35859:131;:::i;:::-;35851:139;;35578:419;;;:::o;36003:221::-;36143:34;36139:1;36131:6;36127:14;36120:58;36212:4;36207:2;36199:6;36195:15;36188:29;36003:221;:::o;36230:366::-;36372:3;36393:67;36457:2;36452:3;36393:67;:::i;:::-;36386:74;;36469:93;36558:3;36469:93;:::i;:::-;36587:2;36582:3;36578:12;36571:19;;36230:366;;;:::o;36602:419::-;36768:4;36806:2;36795:9;36791:18;36783:26;;36855:9;36849:4;36845:20;36841:1;36830:9;36826:17;36819:47;36883:131;37009:4;36883:131;:::i;:::-;36875:139;;36602:419;;;:::o;37027:545::-;37200:4;37238:3;37227:9;37223:19;37215:27;;37252:71;37320:1;37309:9;37305:17;37296:6;37252:71;:::i;:::-;37333:68;37397:2;37386:9;37382:18;37373:6;37333:68;:::i;:::-;37411:72;37479:2;37468:9;37464:18;37455:6;37411:72;:::i;:::-;37493;37561:2;37550:9;37546:18;37537:6;37493:72;:::i;:::-;37027:545;;;;;;;:::o;37578:174::-;37718:26;37714:1;37706:6;37702:14;37695:50;37578:174;:::o;37758:366::-;37900:3;37921:67;37985:2;37980:3;37921:67;:::i;:::-;37914:74;;37997:93;38086:3;37997:93;:::i;:::-;38115:2;38110:3;38106:12;38099:19;;37758:366;;;:::o;38130:419::-;38296:4;38334:2;38323:9;38319:18;38311:26;;38383:9;38377:4;38373:20;38369:1;38358:9;38354:17;38347:47;38411:131;38537:4;38411:131;:::i;:::-;38403:139;;38130:419;;;:::o;38555:664::-;38760:4;38798:3;38787:9;38783:19;38775:27;;38812:71;38880:1;38869:9;38865:17;38856:6;38812:71;:::i;:::-;38893:72;38961:2;38950:9;38946:18;38937:6;38893:72;:::i;:::-;38975;39043:2;39032:9;39028:18;39019:6;38975:72;:::i;:::-;39057;39125:2;39114:9;39110:18;39101:6;39057:72;:::i;:::-;39139:73;39207:3;39196:9;39192:19;39183:6;39139:73;:::i;:::-;38555:664;;;;;;;;:::o;39225:148::-;39327:11;39364:3;39349:18;;39225:148;;;;:::o;39379:214::-;39519:66;39515:1;39507:6;39503:14;39496:90;39379:214;:::o;39599:400::-;39759:3;39780:84;39862:1;39857:3;39780:84;:::i;:::-;39773:91;;39873:93;39962:3;39873:93;:::i;:::-;39991:1;39986:3;39982:11;39975:18;;39599:400;;;:::o;40005:79::-;40044:7;40073:5;40062:16;;40005:79;;;:::o;40090:157::-;40195:45;40215:24;40233:5;40215:24;:::i;:::-;40195:45;:::i;:::-;40190:3;40183:58;40090:157;;:::o;40253:663::-;40494:3;40516:148;40660:3;40516:148;:::i;:::-;40509:155;;40674:75;40745:3;40736:6;40674:75;:::i;:::-;40774:2;40769:3;40765:12;40758:19;;40787:75;40858:3;40849:6;40787:75;:::i;:::-;40887:2;40882:3;40878:12;40871:19;;40907:3;40900:10;;40253:663;;;;;:::o

Swarm Source

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