ETH Price: $3,970.34 (+2.10%)

Token

ERC-20: Fuck Utility Token (FUT)
 

Overview

Max Total Supply

1,000,000,000 FUT

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
25,419,202.387162393513834651 FUT

Value
$0.00
0xf60607ae2a0cf7798352c63eabf2a16203415939
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:
FuckUtilityToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-10
*/

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

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

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

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

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

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

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

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;


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

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

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

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


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

pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol


// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

    /**
     * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

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

// File: FuckUtilityToken.sol

 
//SPDX-License-Identifier: MIT
/*
 
    The Fuck Utility Token is a call to arms, a battle cry for the crypto rebels tired of false promises and empty words.

    Fuck Utility Token | $FUT

    • BEWARE, THIS IS A 0% TAX TOKEN. 

    • FUCK ALL MEVS, USE LOW SLIPPAGE. 

 
    Telegram: t.me/FuckUtilityToken
    Website: https://FuckUtilityToken.com/
    Medium: medium.com/@FuckUtility
    Twitter: twitter.com/FuckUtilityERC
 
 
 
*/
pragma solidity 0.8.17;


 
interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
 
interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
 
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
 
contract FuckUtilityToken is ERC20, Ownable{
 
    IRouter public router;
    address public pair;
 
    bool private swapping;
    bool public swapEnabled;
    bool public initialized;
 
    mapping (address => bool) public noFees;
    mapping (address => bool) public isBot;
 
    uint256 public swapThreshold = 10000 * 10**18;
    uint256 public maxTxAmount = 200000 * 10**18;
 
    address public marketingWallet = 0x0E305275820123d0181a182EeC9bbC204A017b18;
    address public devWallet = 0x0E305275820123d0181a182EeC9bbC204A017b18;
 
    struct Taxes {
        uint128 marketing;
        uint128 dev;
    }
 
    Taxes public taxes = Taxes(0,0);
 
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
 
    constructor() ERC20("Fuck Utility Token", "FUT") {
        _mint(msg.sender, 1e9 * 10 ** 18);
        noFees[msg.sender] = true;
 
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
 
        router = _router;
        pair = _pair;
 
        noFees[address(this)] = true;
        noFees[marketingWallet] = true;
        noFees[devWallet] = true;
    }
 
    function init(address _pair) external onlyOwner{
        require(!initialized,"Already initialized");
        pair = _pair;
 
        swapEnabled = true;
        initialized = true;
    }
 
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if(!noFees[sender] && !noFees[recipient] && !swapping){
            require(initialized, "Not initialized");
            require(!isBot[sender] && !isBot[recipient], "Bye Bye Bot");
            if(recipient == pair) require(amount <= maxTxAmount, "Exceeding maxTxAmount");
        }
 
        uint256 fee;
 
        if (swapping || noFees[sender] || noFees[recipient] || (sender != pair && recipient != pair)) fee = 0;
 
        else fee = amount * (taxes.dev + taxes.marketing) / 100;
 
        if (swapEnabled && !swapping && sender != pair && fee > 0) translateFees();
 
        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);
 
    }
 
    function translateFees() private inSwap {
        if (balanceOf(address(this)) >= swapThreshold) {
 
            swapTokensForETH(swapThreshold);
 
            uint256 totalBalance = address(this).balance;
            uint256 totalTax = taxes.marketing + taxes.dev;
 
            uint256 marketingAmt = totalBalance * taxes.marketing / totalTax;
            if(marketingAmt > 0){
                (bool success, ) = payable(marketingWallet).call{value: marketingAmt}("");
                require(success, "Error sending eth");
            }
 
            uint256 devAmt = totalBalance * taxes.dev / totalTax;
            if(devAmt > 0){
                (bool success, ) = payable(devWallet).call{value: devAmt}("");
                require(success, "Error sending eth");
            }
        }
    }
 
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
 
        _approve(address(this), address(router), tokenAmount);
 
        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
 
    }
 
    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }
 
    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount * 10**18;
    }
 
    function setMaxTxAmount(uint256 amount) external onlyOwner{
         maxTxAmount = amount;
}
 
    function setTaxes(uint128 _dev, uint128 _marketing) external onlyOwner{
        taxes = Taxes(_marketing, _dev);
    }
 
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
 
    function removeLimits() external onlyOwner{
        maxTxAmount = totalSupply();
    }
 
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }
 
    function updatePair(address _pair) external onlyOwner{
        pair = _pair;
    }
 
    function updateNoFees(address _address, bool state) external onlyOwner {
        noFees[_address] = state;
    }
 
    function setBot(address[] calldata bots, bool status) external onlyOwner{
        uint256 size = bots.length;
        for(uint256 i; i < size;){
            isBot[bots[i]] = status;
            unchecked{ ++i; }
        }
    }
 
    function rescueTokens(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }
 
    function rescueETH(uint256 weiAmount) external onlyOwner{
        (bool success, ) = payable(owner()).call{value: weiAmount}("");
        require(success, "Error sending eth");
    }
 
    // fallbacks
    receive() external payable {}
 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"address","name":"_pair","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"noFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"_dev","type":"uint128"},{"internalType":"uint128","name":"_marketing","type":"uint128"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint128","name":"marketing","type":"uint128"},{"internalType":"uint128","name":"dev","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateNoFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"updatePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269021e19e0c9bab2400000600a55692a5a058fc295ed000000600b55730e305275820123d0181a182eec9bbc204a017b18600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730e305275820123d0181a182eec9bbc204a017b18600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806040016040528060006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050503480156200019457600080fd5b506040518060400160405280601281526020017f4675636b205574696c69747920546f6b656e00000000000000000000000000008152506040518060400160405280600381526020017f4655540000000000000000000000000000000000000000000000000000000000815250816003908162000212919062000ad4565b50806004908162000224919062000ad4565b505050620002476200023b6200061560201b60201c565b6200061d60201b60201c565b62000265336b033b2e3c9fd0803ce8000000620006e360201b60201c565b6001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000324573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034a919062000c25565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d8919062000c25565b6040518363ffffffff1660e01b8152600401620003f792919062000c68565b6020604051808303816000875af115801562000417573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043d919062000c25565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000db0565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000755576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074c9062000cf6565b60405180910390fd5b62000769600083836200085060201b60201c565b80600260008282546200077d919062000d47565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000830919062000d93565b60405180910390a36200084c600083836200085560201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008dc57607f821691505b602082108103620008f257620008f162000894565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200095c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200091d565b6200096886836200091d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009b5620009af620009a98462000980565b6200098a565b62000980565b9050919050565b6000819050919050565b620009d18362000994565b620009e9620009e082620009bc565b8484546200092a565b825550505050565b600090565b62000a00620009f1565b62000a0d818484620009c6565b505050565b5b8181101562000a355762000a29600082620009f6565b60018101905062000a13565b5050565b601f82111562000a845762000a4e81620008f8565b62000a59846200090d565b8101602085101562000a69578190505b62000a8162000a78856200090d565b83018262000a12565b50505b505050565b600082821c905092915050565b600062000aa96000198460080262000a89565b1980831691505092915050565b600062000ac4838362000a96565b9150826002028217905092915050565b62000adf826200085a565b67ffffffffffffffff81111562000afb5762000afa62000865565b5b62000b078254620008c3565b62000b1482828562000a39565b600060209050601f83116001811462000b4c576000841562000b37578287015190505b62000b43858262000ab6565b86555062000bb3565b601f19841662000b5c86620008f8565b60005b8281101562000b865784890151825560018201915060208501945060208101905062000b5f565b8683101562000ba6578489015162000ba2601f89168262000a96565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bed8262000bc0565b9050919050565b62000bff8162000be0565b811462000c0b57600080fd5b50565b60008151905062000c1f8162000bf4565b92915050565b60006020828403121562000c3e5762000c3d62000bbb565b5b600062000c4e8482850162000c0e565b91505092915050565b62000c628162000be0565b82525050565b600060408201905062000c7f600083018562000c57565b62000c8e602083018462000c57565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cde601f8362000c95565b915062000ceb8262000ca6565b602082019050919050565b6000602082019050818103600083015262000d118162000ccf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d548262000980565b915062000d618362000980565b925082820190508082111562000d7c5762000d7b62000d18565b5b92915050565b62000d8d8162000980565b82525050565b600060208201905062000daa600083018462000d82565b92915050565b6136b78062000dc06000396000f3fe6080604052600436106102295760003560e01c8063728f8eea11610123578063a457c2d7116100ab578063e01af92c1161006f578063e01af92c14610829578063ec28438a14610852578063f2fde38b1461087b578063f887ea40146108a4578063fe073891146108cf57610230565b8063a457c2d71461071e578063a8aa1b311461075b578063a9059cbb14610786578063aacebbe3146107c3578063dd62ed3e146107ec57610230565b80638da5cb5b116100f25780638da5cb5b1461064b5780638ea5220f1461067657806395d89b41146106a15780639d0014b1146106cc5780639e252f00146106f557610230565b8063728f8eea146105b2578063751039fc146105de57806375f0a874146105f55780638c0b5e221461062057610230565b80631b56bbf9116101b15780633bbac579116101755780633bbac579146104cd578063573761981461050a5780636ddd17131461053357806370a082311461055e578063715018a61461059b57610230565b80631b56bbf9146103d657806323b872dd146103ff578063313ce5671461043c578063395093511461046757806339efcf9e146104a457610230565b8063158ef93e116101f8578063158ef93e146102f1578063174351e61461031c57806318160ddd146103595780631816467f1461038457806319ab453c146103ad57610230565b80630445b6671461023557806304fb2ebe1461026057806306fdde0314610289578063095ea7b3146102b457610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108f8565b60405161025791906124bf565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061252c565b6108fe565b005b34801561029557600080fd5b5061029e6109c6565b6040516102ab91906125fc565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906126a8565b610a58565b6040516102e89190612703565b60405180910390f35b3480156102fd57600080fd5b50610306610a7b565b6040516103139190612703565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e919061271e565b610a8e565b6040516103509190612703565b60405180910390f35b34801561036557600080fd5b5061036e610aae565b60405161037b91906124bf565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a6919061271e565b610ab8565b005b3480156103b957600080fd5b506103d460048036038101906103cf919061271e565b610b04565b005b3480156103e257600080fd5b506103fd60048036038101906103f8919061271e565b610bd6565b005b34801561040b57600080fd5b506104266004803603810190610421919061274b565b610c22565b6040516104339190612703565b60405180910390f35b34801561044857600080fd5b50610451610c51565b60405161045e91906127ba565b60405180910390f35b34801561047357600080fd5b5061048e600480360381019061048991906126a8565b610c5a565b60405161049b9190612703565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612866565b610c91565b005b3480156104d957600080fd5b506104f460048036038101906104ef919061271e565b610d3c565b6040516105019190612703565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c91906126a8565b610d5c565b005b34801561053f57600080fd5b50610548610dee565b6040516105559190612703565b60405180910390f35b34801561056a57600080fd5b506105856004803603810190610580919061271e565b610e01565b60405161059291906124bf565b60405180910390f35b3480156105a757600080fd5b506105b0610e49565b005b3480156105be57600080fd5b506105c7610e5d565b6040516105d59291906128d5565b60405180910390f35b3480156105ea57600080fd5b506105f3610ea7565b005b34801561060157600080fd5b5061060a610ebf565b604051610617919061290d565b60405180910390f35b34801561062c57600080fd5b50610635610ee5565b60405161064291906124bf565b60405180910390f35b34801561065757600080fd5b50610660610eeb565b60405161066d919061290d565b60405180910390f35b34801561068257600080fd5b5061068b610f15565b604051610698919061290d565b60405180910390f35b3480156106ad57600080fd5b506106b6610f3b565b6040516106c391906125fc565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190612928565b610fcd565b005b34801561070157600080fd5b5061071c60048036038101906107179190612928565b610ff2565b005b34801561072a57600080fd5b50610745600480360381019061074091906126a8565b6110b1565b6040516107529190612703565b60405180910390f35b34801561076757600080fd5b50610770611128565b60405161077d919061290d565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a891906126a8565b61114e565b6040516107ba9190612703565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e5919061271e565b611171565b005b3480156107f857600080fd5b50610813600480360381019061080e9190612955565b6111bd565b60405161082091906124bf565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190612995565b611244565b005b34801561085e57600080fd5b5061087960048036038101906108749190612928565b611269565b005b34801561088757600080fd5b506108a2600480360381019061089d919061271e565b61127b565b005b3480156108b057600080fd5b506108b96112fe565b6040516108c69190612a21565b60405180910390f35b3480156108db57600080fd5b506108f660048036038101906108f19190612a3c565b611324565b005b600a5481565b610906611387565b6040518060400160405280826fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050505050565b6060600380546109d590612aab565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0190612aab565b8015610a4e5780601f10610a2357610100808354040283529160200191610a4e565b820191906000526020600020905b815481529060010190602001808311610a3157829003601f168201915b5050505050905090565b600080610a63611405565b9050610a7081858561140d565b600191505092915050565b600760169054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b610ac0611387565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b0c611387565b600760169054906101000a900460ff1615610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390612b28565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760156101000a81548160ff0219169083151502179055506001600760166101000a81548160ff02191690831515021790555050565b610bde611387565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610c2d611405565b9050610c3a8582856115d6565b610c45858585611662565b60019150509392505050565b60006012905090565b600080610c65611405565b9050610c86818585610c7785896111bd565b610c819190612b77565b61140d565b600191505092915050565b610c99611387565b600083839050905060005b81811015610d35578260096000878785818110610cc457610cc3612bab565b5b9050602002016020810190610cd9919061271e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610ca4565b5050505050565b60096020528060005260406000206000915054906101000a900460ff1681565b610d64611387565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610d88610eeb565b836040518363ffffffff1660e01b8152600401610da6929190612bda565b6020604051808303816000875af1158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de99190612c18565b505050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e51611387565b610e5b6000611bf8565b565b600e8060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b610eaf611387565b610eb7610aae565b600b81905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610f4a90612aab565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690612aab565b8015610fc35780601f10610f9857610100808354040283529160200191610fc3565b820191906000526020600020905b815481529060010190602001808311610fa657829003601f168201915b5050505050905090565b610fd5611387565b670de0b6b3a764000081610fe99190612c45565b600a8190555050565b610ffa611387565b6000611004610eeb565b73ffffffffffffffffffffffffffffffffffffffff168260405161102790612cb8565b60006040518083038185875af1925050503d8060008114611064576040519150601f19603f3d011682016040523d82523d6000602084013e611069565b606091505b50509050806110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490612d19565b60405180910390fd5b5050565b6000806110bc611405565b905060006110ca82866111bd565b90508381101561110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690612dab565b60405180910390fd5b61111c828686840361140d565b60019250505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611159611405565b9050611166818585611662565b600191505092915050565b611179611387565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124c611387565b80600760156101000a81548160ff02191690831515021790555050565b611271611387565b80600b8190555050565b611283611387565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990612e3d565b60405180910390fd5b6112fb81611bf8565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61132c611387565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61138f611405565b73ffffffffffffffffffffffffffffffffffffffff166113ad610eeb565b73ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90612ea9565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612f3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290612fcd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c991906124bf565b60405180910390a3505050565b60006115e284846111bd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461165c578181101561164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590613039565b60405180910390fd5b61165b848484840361140d565b5b50505050565b600081116116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c906130cb565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117495750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117625750600760149054906101000a900460ff16155b1561193557600760169054906101000a900460ff166117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613137565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561185a5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611890906131a3565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361193457600b54811115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a9061320f565b60405180910390fd5b5b5b6000600760149054906101000a900460ff168061199b5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119ef5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611aa25750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611aa15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ab05760009050611b2a565b6064600e60000160009054906101000a90046fffffffffffffffffffffffffffffffff16600e60000160109054906101000a90046fffffffffffffffffffffffffffffffff16611b00919061322f565b6fffffffffffffffffffffffffffffffff1683611b1d9190612c45565b611b2791906132a2565b90505b600760159054906101000a900460ff168015611b535750600760149054906101000a900460ff16155b8015611bad5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bb95750600081115b15611bc757611bc6611cbe565b5b611bdd84848385611bd891906132d3565b611fe3565b6000811115611bf257611bf1843083611fe3565b5b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16611fe1576001600760146101000a81548160ff021916908315150217905550600a54611cf930610e01565b10611fc557611d09600a54612259565b60004790506000600e60000160109054906101000a90046fffffffffffffffffffffffffffffffff16600e60000160009054906101000a90046fffffffffffffffffffffffffffffffff16611d5e919061322f565b6fffffffffffffffffffffffffffffffff169050600081600e60000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684611db49190612c45565b611dbe91906132a2565b90506000811115611e99576000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611e1190612cb8565b60006040518083038185875af1925050503d8060008114611e4e576040519150601f19603f3d011682016040523d82523d6000602084013e611e53565b606091505b5050905080611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e90612d19565b60405180910390fd5b505b600082600e60000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1685611edb9190612c45565b611ee591906132a2565b90506000811115611fc0576000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f3890612cb8565b60006040518083038185875af1925050503d8060008114611f75576040519150601f19603f3d011682016040523d82523d6000602084013e611f7a565b606091505b5050905080611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb590612d19565b60405180910390fd5b505b505050505b6000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204990613379565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89061340b565b60405180910390fd5b6120cc83838361249c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612152576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121499061349d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161224091906124bf565b60405180910390a36122538484846124a1565b50505050565b6000600267ffffffffffffffff811115612276576122756134bd565b5b6040519080825280602002602001820160405280156122a45781602001602082028036833780820191505090505b50905030816000815181106122bc576122bb612bab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123879190613501565b8160018151811061239b5761239a612bab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461140d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612466959493929190613627565b600060405180830381600087803b15801561248057600080fd5b505af1158015612494573d6000803e3d6000fd5b505050505050565b505050565b505050565b6000819050919050565b6124b9816124a6565b82525050565b60006020820190506124d460008301846124b0565b92915050565b600080fd5b600080fd5b60006fffffffffffffffffffffffffffffffff82169050919050565b612509816124e4565b811461251457600080fd5b50565b60008135905061252681612500565b92915050565b60008060408385031215612543576125426124da565b5b600061255185828601612517565b925050602061256285828601612517565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a657808201518184015260208101905061258b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ce8261256c565b6125d88185612577565b93506125e8818560208601612588565b6125f1816125b2565b840191505092915050565b6000602082019050818103600083015261261681846125c3565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126498261261e565b9050919050565b6126598161263e565b811461266457600080fd5b50565b60008135905061267681612650565b92915050565b612685816124a6565b811461269057600080fd5b50565b6000813590506126a28161267c565b92915050565b600080604083850312156126bf576126be6124da565b5b60006126cd85828601612667565b92505060206126de85828601612693565b9150509250929050565b60008115159050919050565b6126fd816126e8565b82525050565b600060208201905061271860008301846126f4565b92915050565b600060208284031215612734576127336124da565b5b600061274284828501612667565b91505092915050565b600080600060608486031215612764576127636124da565b5b600061277286828701612667565b935050602061278386828701612667565b925050604061279486828701612693565b9150509250925092565b600060ff82169050919050565b6127b48161279e565b82525050565b60006020820190506127cf60008301846127ab565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127fa576127f96127d5565b5b8235905067ffffffffffffffff811115612817576128166127da565b5b602083019150836020820283011115612833576128326127df565b5b9250929050565b612843816126e8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b60008060006040848603121561287f5761287e6124da565b5b600084013567ffffffffffffffff81111561289d5761289c6124df565b5b6128a9868287016127e4565b935093505060206128bc86828701612851565b9150509250925092565b6128cf816124e4565b82525050565b60006040820190506128ea60008301856128c6565b6128f760208301846128c6565b9392505050565b6129078161263e565b82525050565b600060208201905061292260008301846128fe565b92915050565b60006020828403121561293e5761293d6124da565b5b600061294c84828501612693565b91505092915050565b6000806040838503121561296c5761296b6124da565b5b600061297a85828601612667565b925050602061298b85828601612667565b9150509250929050565b6000602082840312156129ab576129aa6124da565b5b60006129b984828501612851565b91505092915050565b6000819050919050565b60006129e76129e26129dd8461261e565b6129c2565b61261e565b9050919050565b60006129f9826129cc565b9050919050565b6000612a0b826129ee565b9050919050565b612a1b81612a00565b82525050565b6000602082019050612a366000830184612a12565b92915050565b60008060408385031215612a5357612a526124da565b5b6000612a6185828601612667565b9250506020612a7285828601612851565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ac357607f821691505b602082108103612ad657612ad5612a7c565b5b50919050565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b6000612b12601383612577565b9150612b1d82612adc565b602082019050919050565b60006020820190508181036000830152612b4181612b05565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b82826124a6565b9150612b8d836124a6565b9250828201905080821115612ba557612ba4612b48565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612bef60008301856128fe565b612bfc60208301846124b0565b9392505050565b600081519050612c128161283a565b92915050565b600060208284031215612c2e57612c2d6124da565b5b6000612c3c84828501612c03565b91505092915050565b6000612c50826124a6565b9150612c5b836124a6565b9250828202612c69816124a6565b91508282048414831517612c8057612c7f612b48565b5b5092915050565b600081905092915050565b50565b6000612ca2600083612c87565b9150612cad82612c92565b600082019050919050565b6000612cc382612c95565b9150819050919050565b7f4572726f722073656e64696e6720657468000000000000000000000000000000600082015250565b6000612d03601183612577565b9150612d0e82612ccd565b602082019050919050565b60006020820190508181036000830152612d3281612cf6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d95602583612577565b9150612da082612d39565b604082019050919050565b60006020820190508181036000830152612dc481612d88565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e27602683612577565b9150612e3282612dcb565b604082019050919050565b60006020820190508181036000830152612e5681612e1a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e93602083612577565b9150612e9e82612e5d565b602082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f25602483612577565b9150612f3082612ec9565b604082019050919050565b60006020820190508181036000830152612f5481612f18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fb7602283612577565b9150612fc282612f5b565b604082019050919050565b60006020820190508181036000830152612fe681612faa565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613023601d83612577565b915061302e82612fed565b602082019050919050565b6000602082019050818103600083015261305281613016565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130b5602983612577565b91506130c082613059565b604082019050919050565b600060208201905081810360008301526130e4816130a8565b9050919050565b7f4e6f7420696e697469616c697a65640000000000000000000000000000000000600082015250565b6000613121600f83612577565b915061312c826130eb565b602082019050919050565b6000602082019050818103600083015261315081613114565b9050919050565b7f4279652042796520426f74000000000000000000000000000000000000000000600082015250565b600061318d600b83612577565b915061319882613157565b602082019050919050565b600060208201905081810360008301526131bc81613180565b9050919050565b7f457863656564696e67206d61785478416d6f756e740000000000000000000000600082015250565b60006131f9601583612577565b9150613204826131c3565b602082019050919050565b60006020820190508181036000830152613228816131ec565b9050919050565b600061323a826124e4565b9150613245836124e4565b925082820190506fffffffffffffffffffffffffffffffff81111561326d5761326c612b48565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132ad826124a6565b91506132b8836124a6565b9250826132c8576132c7613273565b5b828204905092915050565b60006132de826124a6565b91506132e9836124a6565b925082820390508181111561330157613300612b48565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613363602583612577565b915061336e82613307565b604082019050919050565b6000602082019050818103600083015261339281613356565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133f5602383612577565b915061340082613399565b604082019050919050565b60006020820190508181036000830152613424816133e8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613487602683612577565b91506134928261342b565b604082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506134fb81612650565b92915050565b600060208284031215613517576135166124da565b5b6000613525848285016134ec565b91505092915050565b6000819050919050565b600061355361354e6135498461352e565b6129c2565b6124a6565b9050919050565b61356381613538565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61359e8161263e565b82525050565b60006135b08383613595565b60208301905092915050565b6000602082019050919050565b60006135d482613569565b6135de8185613574565b93506135e983613585565b8060005b8381101561361a57815161360188826135a4565b975061360c836135bc565b9250506001810190506135ed565b5085935050505092915050565b600060a08201905061363c60008301886124b0565b613649602083018761355a565b818103604083015261365b81866135c9565b905061366a60608301856128fe565b61367760808301846124b0565b969550505050505056fea2646970667358221220a00240ac66847d14765cdd2fd27401bf6ccb1041763d9e2eef1d7a81ccedf3f664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102295760003560e01c8063728f8eea11610123578063a457c2d7116100ab578063e01af92c1161006f578063e01af92c14610829578063ec28438a14610852578063f2fde38b1461087b578063f887ea40146108a4578063fe073891146108cf57610230565b8063a457c2d71461071e578063a8aa1b311461075b578063a9059cbb14610786578063aacebbe3146107c3578063dd62ed3e146107ec57610230565b80638da5cb5b116100f25780638da5cb5b1461064b5780638ea5220f1461067657806395d89b41146106a15780639d0014b1146106cc5780639e252f00146106f557610230565b8063728f8eea146105b2578063751039fc146105de57806375f0a874146105f55780638c0b5e221461062057610230565b80631b56bbf9116101b15780633bbac579116101755780633bbac579146104cd578063573761981461050a5780636ddd17131461053357806370a082311461055e578063715018a61461059b57610230565b80631b56bbf9146103d657806323b872dd146103ff578063313ce5671461043c578063395093511461046757806339efcf9e146104a457610230565b8063158ef93e116101f8578063158ef93e146102f1578063174351e61461031c57806318160ddd146103595780631816467f1461038457806319ab453c146103ad57610230565b80630445b6671461023557806304fb2ebe1461026057806306fdde0314610289578063095ea7b3146102b457610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108f8565b60405161025791906124bf565b60405180910390f35b34801561026c57600080fd5b506102876004803603810190610282919061252c565b6108fe565b005b34801561029557600080fd5b5061029e6109c6565b6040516102ab91906125fc565b60405180910390f35b3480156102c057600080fd5b506102db60048036038101906102d691906126a8565b610a58565b6040516102e89190612703565b60405180910390f35b3480156102fd57600080fd5b50610306610a7b565b6040516103139190612703565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e919061271e565b610a8e565b6040516103509190612703565b60405180910390f35b34801561036557600080fd5b5061036e610aae565b60405161037b91906124bf565b60405180910390f35b34801561039057600080fd5b506103ab60048036038101906103a6919061271e565b610ab8565b005b3480156103b957600080fd5b506103d460048036038101906103cf919061271e565b610b04565b005b3480156103e257600080fd5b506103fd60048036038101906103f8919061271e565b610bd6565b005b34801561040b57600080fd5b506104266004803603810190610421919061274b565b610c22565b6040516104339190612703565b60405180910390f35b34801561044857600080fd5b50610451610c51565b60405161045e91906127ba565b60405180910390f35b34801561047357600080fd5b5061048e600480360381019061048991906126a8565b610c5a565b60405161049b9190612703565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612866565b610c91565b005b3480156104d957600080fd5b506104f460048036038101906104ef919061271e565b610d3c565b6040516105019190612703565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c91906126a8565b610d5c565b005b34801561053f57600080fd5b50610548610dee565b6040516105559190612703565b60405180910390f35b34801561056a57600080fd5b506105856004803603810190610580919061271e565b610e01565b60405161059291906124bf565b60405180910390f35b3480156105a757600080fd5b506105b0610e49565b005b3480156105be57600080fd5b506105c7610e5d565b6040516105d59291906128d5565b60405180910390f35b3480156105ea57600080fd5b506105f3610ea7565b005b34801561060157600080fd5b5061060a610ebf565b604051610617919061290d565b60405180910390f35b34801561062c57600080fd5b50610635610ee5565b60405161064291906124bf565b60405180910390f35b34801561065757600080fd5b50610660610eeb565b60405161066d919061290d565b60405180910390f35b34801561068257600080fd5b5061068b610f15565b604051610698919061290d565b60405180910390f35b3480156106ad57600080fd5b506106b6610f3b565b6040516106c391906125fc565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190612928565b610fcd565b005b34801561070157600080fd5b5061071c60048036038101906107179190612928565b610ff2565b005b34801561072a57600080fd5b50610745600480360381019061074091906126a8565b6110b1565b6040516107529190612703565b60405180910390f35b34801561076757600080fd5b50610770611128565b60405161077d919061290d565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a891906126a8565b61114e565b6040516107ba9190612703565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e5919061271e565b611171565b005b3480156107f857600080fd5b50610813600480360381019061080e9190612955565b6111bd565b60405161082091906124bf565b60405180910390f35b34801561083557600080fd5b50610850600480360381019061084b9190612995565b611244565b005b34801561085e57600080fd5b5061087960048036038101906108749190612928565b611269565b005b34801561088757600080fd5b506108a2600480360381019061089d919061271e565b61127b565b005b3480156108b057600080fd5b506108b96112fe565b6040516108c69190612a21565b60405180910390f35b3480156108db57600080fd5b506108f660048036038101906108f19190612a3c565b611324565b005b600a5481565b610906611387565b6040518060400160405280826fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff16815250600e60008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050505050565b6060600380546109d590612aab565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0190612aab565b8015610a4e5780601f10610a2357610100808354040283529160200191610a4e565b820191906000526020600020905b815481529060010190602001808311610a3157829003601f168201915b5050505050905090565b600080610a63611405565b9050610a7081858561140d565b600191505092915050565b600760169054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b610ac0611387565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610b0c611387565b600760169054906101000a900460ff1615610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390612b28565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760156101000a81548160ff0219169083151502179055506001600760166101000a81548160ff02191690831515021790555050565b610bde611387565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080610c2d611405565b9050610c3a8582856115d6565b610c45858585611662565b60019150509392505050565b60006012905090565b600080610c65611405565b9050610c86818585610c7785896111bd565b610c819190612b77565b61140d565b600191505092915050565b610c99611387565b600083839050905060005b81811015610d35578260096000878785818110610cc457610cc3612bab565b5b9050602002016020810190610cd9919061271e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050610ca4565b5050505050565b60096020528060005260406000206000915054906101000a900460ff1681565b610d64611387565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610d88610eeb565b836040518363ffffffff1660e01b8152600401610da6929190612bda565b6020604051808303816000875af1158015610dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de99190612c18565b505050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e51611387565b610e5b6000611bf8565b565b600e8060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b610eaf611387565b610eb7610aae565b600b81905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610f4a90612aab565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7690612aab565b8015610fc35780601f10610f9857610100808354040283529160200191610fc3565b820191906000526020600020905b815481529060010190602001808311610fa657829003601f168201915b5050505050905090565b610fd5611387565b670de0b6b3a764000081610fe99190612c45565b600a8190555050565b610ffa611387565b6000611004610eeb565b73ffffffffffffffffffffffffffffffffffffffff168260405161102790612cb8565b60006040518083038185875af1925050503d8060008114611064576040519150601f19603f3d011682016040523d82523d6000602084013e611069565b606091505b50509050806110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490612d19565b60405180910390fd5b5050565b6000806110bc611405565b905060006110ca82866111bd565b90508381101561110f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110690612dab565b60405180910390fd5b61111c828686840361140d565b60019250505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611159611405565b9050611166818585611662565b600191505092915050565b611179611387565b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61124c611387565b80600760156101000a81548160ff02191690831515021790555050565b611271611387565b80600b8190555050565b611283611387565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e990612e3d565b60405180910390fd5b6112fb81611bf8565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61132c611387565b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61138f611405565b73ffffffffffffffffffffffffffffffffffffffff166113ad610eeb565b73ffffffffffffffffffffffffffffffffffffffff1614611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90612ea9565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147390612f3b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290612fcd565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c991906124bf565b60405180910390a3505050565b60006115e284846111bd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461165c578181101561164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590613039565b60405180910390fd5b61165b848484840361140d565b5b50505050565b600081116116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c906130cb565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117495750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117625750600760149054906101000a900460ff16155b1561193557600760169054906101000a900460ff166117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad90613137565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561185a5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611899576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611890906131a3565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361193457600b54811115611933576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192a9061320f565b60405180910390fd5b5b5b6000600760149054906101000a900460ff168061199b5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119ef5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611aa25750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611aa15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ab05760009050611b2a565b6064600e60000160009054906101000a90046fffffffffffffffffffffffffffffffff16600e60000160109054906101000a90046fffffffffffffffffffffffffffffffff16611b00919061322f565b6fffffffffffffffffffffffffffffffff1683611b1d9190612c45565b611b2791906132a2565b90505b600760159054906101000a900460ff168015611b535750600760149054906101000a900460ff16155b8015611bad5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611bb95750600081115b15611bc757611bc6611cbe565b5b611bdd84848385611bd891906132d3565b611fe3565b6000811115611bf257611bf1843083611fe3565b5b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16611fe1576001600760146101000a81548160ff021916908315150217905550600a54611cf930610e01565b10611fc557611d09600a54612259565b60004790506000600e60000160109054906101000a90046fffffffffffffffffffffffffffffffff16600e60000160009054906101000a90046fffffffffffffffffffffffffffffffff16611d5e919061322f565b6fffffffffffffffffffffffffffffffff169050600081600e60000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1684611db49190612c45565b611dbe91906132a2565b90506000811115611e99576000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611e1190612cb8565b60006040518083038185875af1925050503d8060008114611e4e576040519150601f19603f3d011682016040523d82523d6000602084013e611e53565b606091505b5050905080611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e90612d19565b60405180910390fd5b505b600082600e60000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1685611edb9190612c45565b611ee591906132a2565b90506000811115611fc0576000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611f3890612cb8565b60006040518083038185875af1925050503d8060008114611f75576040519150601f19603f3d011682016040523d82523d6000602084013e611f7a565b606091505b5050905080611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb590612d19565b60405180910390fd5b505b505050505b6000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204990613379565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b89061340b565b60405180910390fd5b6120cc83838361249c565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612152576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121499061349d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161224091906124bf565b60405180910390a36122538484846124a1565b50505050565b6000600267ffffffffffffffff811115612276576122756134bd565b5b6040519080825280602002602001820160405280156122a45781602001602082028036833780820191505090505b50905030816000815181106122bc576122bb612bab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612363573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123879190613501565b8160018151811061239b5761239a612bab565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461140d565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612466959493929190613627565b600060405180830381600087803b15801561248057600080fd5b505af1158015612494573d6000803e3d6000fd5b505050505050565b505050565b505050565b6000819050919050565b6124b9816124a6565b82525050565b60006020820190506124d460008301846124b0565b92915050565b600080fd5b600080fd5b60006fffffffffffffffffffffffffffffffff82169050919050565b612509816124e4565b811461251457600080fd5b50565b60008135905061252681612500565b92915050565b60008060408385031215612543576125426124da565b5b600061255185828601612517565b925050602061256285828601612517565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a657808201518184015260208101905061258b565b60008484015250505050565b6000601f19601f8301169050919050565b60006125ce8261256c565b6125d88185612577565b93506125e8818560208601612588565b6125f1816125b2565b840191505092915050565b6000602082019050818103600083015261261681846125c3565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126498261261e565b9050919050565b6126598161263e565b811461266457600080fd5b50565b60008135905061267681612650565b92915050565b612685816124a6565b811461269057600080fd5b50565b6000813590506126a28161267c565b92915050565b600080604083850312156126bf576126be6124da565b5b60006126cd85828601612667565b92505060206126de85828601612693565b9150509250929050565b60008115159050919050565b6126fd816126e8565b82525050565b600060208201905061271860008301846126f4565b92915050565b600060208284031215612734576127336124da565b5b600061274284828501612667565b91505092915050565b600080600060608486031215612764576127636124da565b5b600061277286828701612667565b935050602061278386828701612667565b925050604061279486828701612693565b9150509250925092565b600060ff82169050919050565b6127b48161279e565b82525050565b60006020820190506127cf60008301846127ab565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127fa576127f96127d5565b5b8235905067ffffffffffffffff811115612817576128166127da565b5b602083019150836020820283011115612833576128326127df565b5b9250929050565b612843816126e8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b60008060006040848603121561287f5761287e6124da565b5b600084013567ffffffffffffffff81111561289d5761289c6124df565b5b6128a9868287016127e4565b935093505060206128bc86828701612851565b9150509250925092565b6128cf816124e4565b82525050565b60006040820190506128ea60008301856128c6565b6128f760208301846128c6565b9392505050565b6129078161263e565b82525050565b600060208201905061292260008301846128fe565b92915050565b60006020828403121561293e5761293d6124da565b5b600061294c84828501612693565b91505092915050565b6000806040838503121561296c5761296b6124da565b5b600061297a85828601612667565b925050602061298b85828601612667565b9150509250929050565b6000602082840312156129ab576129aa6124da565b5b60006129b984828501612851565b91505092915050565b6000819050919050565b60006129e76129e26129dd8461261e565b6129c2565b61261e565b9050919050565b60006129f9826129cc565b9050919050565b6000612a0b826129ee565b9050919050565b612a1b81612a00565b82525050565b6000602082019050612a366000830184612a12565b92915050565b60008060408385031215612a5357612a526124da565b5b6000612a6185828601612667565b9250506020612a7285828601612851565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ac357607f821691505b602082108103612ad657612ad5612a7c565b5b50919050565b7f416c726561647920696e697469616c697a656400000000000000000000000000600082015250565b6000612b12601383612577565b9150612b1d82612adc565b602082019050919050565b60006020820190508181036000830152612b4181612b05565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b82826124a6565b9150612b8d836124a6565b9250828201905080821115612ba557612ba4612b48565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612bef60008301856128fe565b612bfc60208301846124b0565b9392505050565b600081519050612c128161283a565b92915050565b600060208284031215612c2e57612c2d6124da565b5b6000612c3c84828501612c03565b91505092915050565b6000612c50826124a6565b9150612c5b836124a6565b9250828202612c69816124a6565b91508282048414831517612c8057612c7f612b48565b5b5092915050565b600081905092915050565b50565b6000612ca2600083612c87565b9150612cad82612c92565b600082019050919050565b6000612cc382612c95565b9150819050919050565b7f4572726f722073656e64696e6720657468000000000000000000000000000000600082015250565b6000612d03601183612577565b9150612d0e82612ccd565b602082019050919050565b60006020820190508181036000830152612d3281612cf6565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612d95602583612577565b9150612da082612d39565b604082019050919050565b60006020820190508181036000830152612dc481612d88565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e27602683612577565b9150612e3282612dcb565b604082019050919050565b60006020820190508181036000830152612e5681612e1a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e93602083612577565b9150612e9e82612e5d565b602082019050919050565b60006020820190508181036000830152612ec281612e86565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f25602483612577565b9150612f3082612ec9565b604082019050919050565b60006020820190508181036000830152612f5481612f18565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fb7602283612577565b9150612fc282612f5b565b604082019050919050565b60006020820190508181036000830152612fe681612faa565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613023601d83612577565b915061302e82612fed565b602082019050919050565b6000602082019050818103600083015261305281613016565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130b5602983612577565b91506130c082613059565b604082019050919050565b600060208201905081810360008301526130e4816130a8565b9050919050565b7f4e6f7420696e697469616c697a65640000000000000000000000000000000000600082015250565b6000613121600f83612577565b915061312c826130eb565b602082019050919050565b6000602082019050818103600083015261315081613114565b9050919050565b7f4279652042796520426f74000000000000000000000000000000000000000000600082015250565b600061318d600b83612577565b915061319882613157565b602082019050919050565b600060208201905081810360008301526131bc81613180565b9050919050565b7f457863656564696e67206d61785478416d6f756e740000000000000000000000600082015250565b60006131f9601583612577565b9150613204826131c3565b602082019050919050565b60006020820190508181036000830152613228816131ec565b9050919050565b600061323a826124e4565b9150613245836124e4565b925082820190506fffffffffffffffffffffffffffffffff81111561326d5761326c612b48565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132ad826124a6565b91506132b8836124a6565b9250826132c8576132c7613273565b5b828204905092915050565b60006132de826124a6565b91506132e9836124a6565b925082820390508181111561330157613300612b48565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613363602583612577565b915061336e82613307565b604082019050919050565b6000602082019050818103600083015261339281613356565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133f5602383612577565b915061340082613399565b604082019050919050565b60006020820190508181036000830152613424816133e8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613487602683612577565b91506134928261342b565b604082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506134fb81612650565b92915050565b600060208284031215613517576135166124da565b5b6000613525848285016134ec565b91505092915050565b6000819050919050565b600061355361354e6135498461352e565b6129c2565b6124a6565b9050919050565b61356381613538565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61359e8161263e565b82525050565b60006135b08383613595565b60208301905092915050565b6000602082019050919050565b60006135d482613569565b6135de8185613574565b93506135e983613585565b8060005b8381101561361a57815161360188826135a4565b975061360c836135bc565b9250506001810190506135ed565b5085935050505092915050565b600060a08201905061363c60008301886124b0565b613649602083018761355a565b818103604083015261365b81866135c9565b905061366a60608301856128fe565b61367760808301846124b0565b969550505050505056fea2646970667358221220a00240ac66847d14765cdd2fd27401bf6ccb1041763d9e2eef1d7a81ccedf3f664736f6c63430008110033

Deployed Bytecode Sourcemap

21812:5341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22107:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25836:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6651:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9002:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21980:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22013:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7771:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26185:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23154:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26296:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9783:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7613:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26512:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22059:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26754:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21950:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7942:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19722:103;;;;;;;;;;;;;:::i;:::-;;22454:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;26088:88;;;;;;;;;;;;;:::i;:::-;;22213:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22159:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19074:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22295:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6870:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25605:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26906:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11228:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21893:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8275:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25965:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8531:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25503:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25733:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19980:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21865:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26389:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22107:45;;;;:::o;25836:120::-;18960:13;:11;:13::i;:::-;25925:23:::1;;;;;;;;25931:10;25925:23;;;;;;25943:4;25925:23;;;;::::0;25917:5:::1;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25836:120:::0;;:::o;6651:100::-;6705:13;6738:5;6731:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6651:100;:::o;9002:201::-;9085:4;9102:13;9118:12;:10;:12::i;:::-;9102:28;;9141:32;9150:5;9157:7;9166:6;9141:8;:32::i;:::-;9191:4;9184:11;;;9002:201;;;;:::o;21980:23::-;;;;;;;;;;;;;:::o;22013:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;7771:108::-;7832:7;7859:12;;7852:19;;7771:108;:::o;26185:102::-;18960:13;:11;:13::i;:::-;26270:9:::1;26258;;:21;;;;;;;;;;;;;;;;;;26185:102:::0;:::o;23154:193::-;18960:13;:11;:13::i;:::-;23221:11:::1;;;;;;;;;;;23220:12;23212:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;23273:5;23266:4;;:12;;;;;;;;;;;;;;;;;;23306:4;23292:11;;:18;;;;;;;;;;;;;;;;;;23335:4;23321:11;;:18;;;;;;;;;;;;;;;;;;23154:193:::0;:::o;26296:84::-;18960:13;:11;:13::i;:::-;26367:5:::1;26360:4;;:12;;;;;;;;;;;;;;;;;;26296:84:::0;:::o;9783:295::-;9914:4;9931:15;9949:12;:10;:12::i;:::-;9931:30;;9972:38;9988:4;9994:7;10003:6;9972:15;:38::i;:::-;10021:27;10031:4;10037:2;10041:6;10021:9;:27::i;:::-;10066:4;10059:11;;;9783:295;;;;;:::o;7613:93::-;7671:5;7696:2;7689:9;;7613:93;:::o;10487:238::-;10575:4;10592:13;10608:12;:10;:12::i;:::-;10592:28;;10631:64;10640:5;10647:7;10684:10;10656:25;10666:5;10673:7;10656:9;:25::i;:::-;:38;;;;:::i;:::-;10631:8;:64::i;:::-;10713:4;10706:11;;;10487:238;;;;:::o;26512:233::-;18960:13;:11;:13::i;:::-;26595:12:::1;26610:4;;:11;;26595:26;;26636:9;26632:106;26651:4;26647:1;:8;26632:106;;;26689:6;26672:5;:14;26678:4;;26683:1;26678:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;26672:14;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;26721:3;;;;;26632:106;;;;26584:161;26512:233:::0;;;:::o;22059:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;26754:143::-;18960:13;:11;:13::i;:::-;26850:12:::1;26843:29;;;26873:7;:5;:7::i;:::-;26882:6;26843:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26754:143:::0;;:::o;21950:23::-;;;;;;;;;;;;;:::o;7942:127::-;8016:7;8043:9;:18;8053:7;8043:18;;;;;;;;;;;;;;;;8036:25;;7942:127;;;:::o;19722:103::-;18960:13;:11;:13::i;:::-;19787:30:::1;19814:1;19787:18;:30::i;:::-;19722:103::o:0;22454:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26088:88::-;18960:13;:11;:13::i;:::-;26155::::1;:11;:13::i;:::-;26141:11;:27;;;;26088:88::o:0;22213:75::-;;;;;;;;;;;;;:::o;22159:44::-;;;;:::o;19074:87::-;19120:7;19147:6;;;;;;;;;;;19140:13;;19074:87;:::o;22295:69::-;;;;;;;;;;;;;:::o;6870:104::-;6926:13;6959:7;6952:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6870:104;:::o;25605:119::-;18960:13;:11;:13::i;:::-;25710:6:::1;25697:10;:19;;;;:::i;:::-;25681:13;:35;;;;25605:119:::0;:::o;26906:185::-;18960:13;:11;:13::i;:::-;26974:12:::1;27000:7;:5;:7::i;:::-;26992:21;;27021:9;26992:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26973:62;;;27054:7;27046:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;26962:129;26906:185:::0;:::o;11228:436::-;11321:4;11338:13;11354:12;:10;:12::i;:::-;11338:28;;11377:24;11404:25;11414:5;11421:7;11404:9;:25::i;:::-;11377:52;;11468:15;11448:16;:35;;11440:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11561:60;11570:5;11577:7;11605:15;11586:16;:34;11561:8;:60::i;:::-;11652:4;11645:11;;;;11228:436;;;;:::o;21893:19::-;;;;;;;;;;;;;:::o;8275:193::-;8354:4;8371:13;8387:12;:10;:12::i;:::-;8371:28;;8410;8420:5;8427:2;8431:6;8410:9;:28::i;:::-;8456:4;8449:11;;;8275:193;;;;:::o;25965:114::-;18960:13;:11;:13::i;:::-;26062:9:::1;26044:15;;:27;;;;;;;;;;;;;;;;;;25965:114:::0;:::o;8531:151::-;8620:7;8647:11;:18;8659:5;8647:18;;;;;;;;;;;;;;;:27;8666:7;8647:27;;;;;;;;;;;;;;;;8640:34;;8531:151;;;;:::o;25503:93::-;18960:13;:11;:13::i;:::-;25583:5:::1;25569:11;;:19;;;;;;;;;;;;;;;;;;25503:93:::0;:::o;25733:94::-;18960:13;:11;:13::i;:::-;25817:6:::1;25803:11;:20;;;;25733:94:::0;:::o;19980:201::-;18960:13;:11;:13::i;:::-;20089:1:::1;20069:22;;:8;:22;;::::0;20061:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20145:28;20164:8;20145:18;:28::i;:::-;19980:201:::0;:::o;21865:21::-;;;;;;;;;;;;;:::o;26389:114::-;18960:13;:11;:13::i;:::-;26490:5:::1;26471:6;:16;26478:8;26471:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;26389:114:::0;;:::o;19239:132::-;19314:12;:10;:12::i;:::-;19303:23;;:7;:5;:7::i;:::-;:23;;;19295:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19239:132::o;4293:98::-;4346:7;4373:10;4366:17;;4293:98;:::o;15255:380::-;15408:1;15391:19;;:5;:19;;;15383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15489:1;15470:21;;:7;:21;;;15462:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15573:6;15543:11;:18;15555:5;15543:18;;;;;;;;;;;;;;;:27;15562:7;15543:27;;;;;;;;;;;;;;;:36;;;;15611:7;15595:32;;15604:5;15595:32;;;15620:6;15595:32;;;;;;:::i;:::-;;;;;;;;15255:380;;;:::o;15926:453::-;16061:24;16088:25;16098:5;16105:7;16088:9;:25::i;:::-;16061:52;;16148:17;16128:16;:37;16124:248;;16210:6;16190:16;:26;;16182:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16294:51;16303:5;16310:7;16338:6;16319:16;:25;16294:8;:51::i;:::-;16124:248;16050:329;15926:453;;;:::o;23356:898::-;23472:1;23463:6;:10;23455:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23537:6;:14;23544:6;23537:14;;;;;;;;;;;;;;;;;;;;;;;;;23536:15;:37;;;;;23556:6;:17;23563:9;23556:17;;;;;;;;;;;;;;;;;;;;;;;;;23555:18;23536:37;:50;;;;;23578:8;;;;;;;;;;;23577:9;23536:50;23533:286;;;23610:11;;;;;;;;;;;23602:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;23665:5;:13;23671:6;23665:13;;;;;;;;;;;;;;;;;;;;;;;;;23664:14;:35;;;;;23683:5;:16;23689:9;23683:16;;;;;;;;;;;;;;;;;;;;;;;;;23682:17;23664:35;23656:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;23746:4;;;;;;;;;;;23733:17;;:9;:17;;;23730:77;;23770:11;;23760:6;:21;;23752:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;23730:77;23533:286;23832:11;23861:8;;;;;;;;;;;:26;;;;23873:6;:14;23880:6;23873:14;;;;;;;;;;;;;;;;;;;;;;;;;23861:26;:47;;;;23891:6;:17;23898:9;23891:17;;;;;;;;;;;;;;;;;;;;;;;;;23861:47;:88;;;;23923:4;;;;;;;;;;;23913:14;;:6;:14;;;;:35;;;;;23944:4;;;;;;;;;;;23931:17;;:9;:17;;;;23913:35;23861:88;23857:170;;;23957:1;23951:7;;23857:170;;;24024:3;24005:5;:15;;;;;;;;;;;;23993:5;:9;;;;;;;;;;;;:27;;;;:::i;:::-;23983:38;;:6;:38;;;;:::i;:::-;:44;;;;:::i;:::-;23977:50;;23857:170;24045:11;;;;;;;;;;;:24;;;;;24061:8;;;;;;;;;;;24060:9;24045:24;:42;;;;;24083:4;;;;;;;;;;;24073:14;;:6;:14;;;;24045:42;:53;;;;;24097:1;24091:3;:7;24045:53;24041:74;;;24100:15;:13;:15::i;:::-;24041:74;24129:48;24145:6;24153:9;24173:3;24164:6;:12;;;;:::i;:::-;24129:15;:48::i;:::-;24197:1;24191:3;:7;24188:55;;;24200:43;24216:6;24232:4;24239:3;24200:15;:43::i;:::-;24188:55;23444:810;23356:898;;;:::o;20341:191::-;20415:16;20434:6;;;;;;;;;;;20415:25;;20460:8;20451:6;;:17;;;;;;;;;;;;;;;;;;20515:8;20484:40;;20505:8;20484:40;;;;;;;;;;;;20404:128;20341:191;:::o;24263:819::-;22529:8;;;;;;;;;;;22524:104;;22565:4;22554:8;;:15;;;;;;;;;;;;;;;;;;24346:13:::1;;24318:24;24336:4;24318:9;:24::i;:::-;:41;24314:761;;24379:31;24396:13;;24379:16;:31::i;:::-;24428:20;24451:21;24428:44;;24487:16;24524:5;:9;;;;;;;;;;;;24506:5;:15;;;;;;;;;;;;:27;;;;:::i;:::-;24487:46;;;;24551:20;24607:8;24589:5;:15;;;;;;;;;;;;24574:30;;:12;:30;;;;:::i;:::-;:41;;;;:::i;:::-;24551:64;;24648:1;24633:12;:16;24630:184;;;24670:12;24696:15;;;;;;;;;;;24688:29;;24725:12;24688:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24669:73;;;24769:7;24761:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;24650:164;24630:184;24831:14;24875:8;24863:5;:9;;;;;;;;;;;;24848:24;;:12;:24;;;;:::i;:::-;:35;;;;:::i;:::-;24831:52;;24910:1;24901:6;:10;24898:166;;;24932:12;24958:9;;;;;;;;;;;24950:23;;24981:6;24950:42;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24931:61;;;25019:7;25011:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;24912:152;24898:166;24361:714;;;;24314:761;22611:5:::0;22600:8;;:16;;;;;;;;;;;;;;;;;;22524:104;24263:819::o;12134:840::-;12281:1;12265:18;;:4;:18;;;12257:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12358:1;12344:16;;:2;:16;;;12336:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12413:38;12434:4;12440:2;12444:6;12413:20;:38::i;:::-;12464:19;12486:9;:15;12496:4;12486:15;;;;;;;;;;;;;;;;12464:37;;12535:6;12520:11;:21;;12512:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12652:6;12638:11;:20;12620:9;:15;12630:4;12620:15;;;;;;;;;;;;;;;:38;;;;12855:6;12838:9;:13;12848:2;12838:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12905:2;12890:26;;12899:4;12890:26;;;12909:6;12890:26;;;;;;:::i;:::-;;;;;;;;12929:37;12949:4;12955:2;12959:6;12929:19;:37::i;:::-;12246:728;12134:840;;;:::o;25091:403::-;25157:21;25195:1;25181:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25157:40;;25226:4;25208;25213:1;25208:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25252:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25242:4;25247:1;25242:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25279:53;25296:4;25311:6;;;;;;;;;;;25320:11;25279:8;:53::i;:::-;25372:6;;;;;;;;;;;:57;;;25430:11;25443:1;25446:4;25460;25467:15;25372:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25146:348;25091:403;:::o;16979:125::-;;;;:::o;17708:124::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:118;806:7;846:34;839:5;835:46;824:57;;769:118;;;:::o;893:122::-;966:24;984:5;966:24;:::i;:::-;959:5;956:35;946:63;;1005:1;1002;995:12;946:63;893:122;:::o;1021:139::-;1067:5;1105:6;1092:20;1083:29;;1121:33;1148:5;1121:33;:::i;:::-;1021:139;;;;:::o;1166:474::-;1234:6;1242;1291:2;1279:9;1270:7;1266:23;1262:32;1259:119;;;1297:79;;:::i;:::-;1259:119;1417:1;1442:53;1487:7;1478:6;1467:9;1463:22;1442:53;:::i;:::-;1432:63;;1388:117;1544:2;1570:53;1615:7;1606:6;1595:9;1591:22;1570:53;:::i;:::-;1560:63;;1515:118;1166:474;;;;;:::o;1646:99::-;1698:6;1732:5;1726:12;1716:22;;1646:99;;;:::o;1751:169::-;1835:11;1869:6;1864:3;1857:19;1909:4;1904:3;1900:14;1885:29;;1751:169;;;;:::o;1926:246::-;2007:1;2017:113;2031:6;2028:1;2025:13;2017:113;;;2116:1;2111:3;2107:11;2101:18;2097:1;2092:3;2088:11;2081:39;2053:2;2050:1;2046:10;2041:15;;2017:113;;;2164:1;2155:6;2150:3;2146:16;2139:27;1988:184;1926:246;;;:::o;2178:102::-;2219:6;2270:2;2266:7;2261:2;2254:5;2250:14;2246:28;2236:38;;2178:102;;;:::o;2286:377::-;2374:3;2402:39;2435:5;2402:39;:::i;:::-;2457:71;2521:6;2516:3;2457:71;:::i;:::-;2450:78;;2537:65;2595:6;2590:3;2583:4;2576:5;2572:16;2537:65;:::i;:::-;2627:29;2649:6;2627:29;:::i;:::-;2622:3;2618:39;2611:46;;2378:285;2286:377;;;;:::o;2669:313::-;2782:4;2820:2;2809:9;2805:18;2797:26;;2869:9;2863:4;2859:20;2855:1;2844:9;2840:17;2833:47;2897:78;2970:4;2961:6;2897:78;:::i;:::-;2889:86;;2669:313;;;;:::o;2988:126::-;3025:7;3065:42;3058:5;3054:54;3043:65;;2988:126;;;:::o;3120:96::-;3157:7;3186:24;3204:5;3186:24;:::i;:::-;3175:35;;3120:96;;;:::o;3222:122::-;3295:24;3313:5;3295:24;:::i;:::-;3288:5;3285:35;3275:63;;3334:1;3331;3324:12;3275:63;3222:122;:::o;3350:139::-;3396:5;3434:6;3421:20;3412:29;;3450:33;3477:5;3450:33;:::i;:::-;3350:139;;;;:::o;3495:122::-;3568:24;3586:5;3568:24;:::i;:::-;3561:5;3558:35;3548:63;;3607:1;3604;3597:12;3548:63;3495:122;:::o;3623:139::-;3669:5;3707:6;3694:20;3685:29;;3723:33;3750:5;3723:33;:::i;:::-;3623:139;;;;:::o;3768:474::-;3836:6;3844;3893:2;3881:9;3872:7;3868:23;3864:32;3861:119;;;3899:79;;:::i;:::-;3861:119;4019:1;4044:53;4089:7;4080:6;4069:9;4065:22;4044:53;:::i;:::-;4034:63;;3990:117;4146:2;4172:53;4217:7;4208:6;4197:9;4193:22;4172:53;:::i;:::-;4162:63;;4117:118;3768:474;;;;;:::o;4248:90::-;4282:7;4325:5;4318:13;4311:21;4300:32;;4248:90;;;:::o;4344:109::-;4425:21;4440:5;4425:21;:::i;:::-;4420:3;4413:34;4344:109;;:::o;4459:210::-;4546:4;4584:2;4573:9;4569:18;4561:26;;4597:65;4659:1;4648:9;4644:17;4635:6;4597:65;:::i;:::-;4459:210;;;;:::o;4675:329::-;4734:6;4783:2;4771:9;4762:7;4758:23;4754:32;4751:119;;;4789:79;;:::i;:::-;4751:119;4909:1;4934:53;4979:7;4970:6;4959:9;4955:22;4934:53;:::i;:::-;4924:63;;4880:117;4675:329;;;;:::o;5010:619::-;5087:6;5095;5103;5152:2;5140:9;5131:7;5127:23;5123:32;5120:119;;;5158:79;;:::i;:::-;5120:119;5278:1;5303:53;5348:7;5339:6;5328:9;5324:22;5303:53;:::i;:::-;5293:63;;5249:117;5405:2;5431:53;5476:7;5467:6;5456:9;5452:22;5431:53;:::i;:::-;5421:63;;5376:118;5533:2;5559:53;5604:7;5595:6;5584:9;5580:22;5559:53;:::i;:::-;5549:63;;5504:118;5010:619;;;;;:::o;5635:86::-;5670:7;5710:4;5703:5;5699:16;5688:27;;5635:86;;;:::o;5727:112::-;5810:22;5826:5;5810:22;:::i;:::-;5805:3;5798:35;5727:112;;:::o;5845:214::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:67;6049:1;6038:9;6034:17;6025:6;5985:67;:::i;:::-;5845:214;;;;:::o;6065:117::-;6174:1;6171;6164:12;6188:117;6297:1;6294;6287:12;6311:117;6420:1;6417;6410:12;6451:568;6524:8;6534:6;6584:3;6577:4;6569:6;6565:17;6561:27;6551:122;;6592:79;;:::i;:::-;6551:122;6705:6;6692:20;6682:30;;6735:18;6727:6;6724:30;6721:117;;;6757:79;;:::i;:::-;6721:117;6871:4;6863:6;6859:17;6847:29;;6925:3;6917:4;6909:6;6905:17;6895:8;6891:32;6888:41;6885:128;;;6932:79;;:::i;:::-;6885:128;6451:568;;;;;:::o;7025:116::-;7095:21;7110:5;7095:21;:::i;:::-;7088:5;7085:32;7075:60;;7131:1;7128;7121:12;7075:60;7025:116;:::o;7147:133::-;7190:5;7228:6;7215:20;7206:29;;7244:30;7268:5;7244:30;:::i;:::-;7147:133;;;;:::o;7286:698::-;7378:6;7386;7394;7443:2;7431:9;7422:7;7418:23;7414:32;7411:119;;;7449:79;;:::i;:::-;7411:119;7597:1;7586:9;7582:17;7569:31;7627:18;7619:6;7616:30;7613:117;;;7649:79;;:::i;:::-;7613:117;7762:80;7834:7;7825:6;7814:9;7810:22;7762:80;:::i;:::-;7744:98;;;;7540:312;7891:2;7917:50;7959:7;7950:6;7939:9;7935:22;7917:50;:::i;:::-;7907:60;;7862:115;7286:698;;;;;:::o;7990:118::-;8077:24;8095:5;8077:24;:::i;:::-;8072:3;8065:37;7990:118;;:::o;8114:332::-;8235:4;8273:2;8262:9;8258:18;8250:26;;8286:71;8354:1;8343:9;8339:17;8330:6;8286:71;:::i;:::-;8367:72;8435:2;8424:9;8420:18;8411:6;8367:72;:::i;:::-;8114:332;;;;;:::o;8452:118::-;8539:24;8557:5;8539:24;:::i;:::-;8534:3;8527:37;8452:118;;:::o;8576:222::-;8669:4;8707:2;8696:9;8692:18;8684:26;;8720:71;8788:1;8777:9;8773:17;8764:6;8720:71;:::i;:::-;8576:222;;;;:::o;8804:329::-;8863:6;8912:2;8900:9;8891:7;8887:23;8883:32;8880:119;;;8918:79;;:::i;:::-;8880:119;9038:1;9063:53;9108:7;9099:6;9088:9;9084:22;9063:53;:::i;:::-;9053:63;;9009:117;8804:329;;;;:::o;9139:474::-;9207:6;9215;9264:2;9252:9;9243:7;9239:23;9235:32;9232:119;;;9270:79;;:::i;:::-;9232:119;9390:1;9415:53;9460:7;9451:6;9440:9;9436:22;9415:53;:::i;:::-;9405:63;;9361:117;9517:2;9543:53;9588:7;9579:6;9568:9;9564:22;9543:53;:::i;:::-;9533:63;;9488:118;9139:474;;;;;:::o;9619:323::-;9675:6;9724:2;9712:9;9703:7;9699:23;9695:32;9692:119;;;9730:79;;:::i;:::-;9692:119;9850:1;9875:50;9917:7;9908:6;9897:9;9893:22;9875:50;:::i;:::-;9865:60;;9821:114;9619:323;;;;:::o;9948:60::-;9976:3;9997:5;9990:12;;9948:60;;;:::o;10014:142::-;10064:9;10097:53;10115:34;10124:24;10142:5;10124:24;:::i;:::-;10115:34;:::i;:::-;10097:53;:::i;:::-;10084:66;;10014:142;;;:::o;10162:126::-;10212:9;10245:37;10276:5;10245:37;:::i;:::-;10232:50;;10162:126;;;:::o;10294:141::-;10359:9;10392:37;10423:5;10392:37;:::i;:::-;10379:50;;10294:141;;;:::o;10441:161::-;10543:52;10589:5;10543:52;:::i;:::-;10538:3;10531:65;10441:161;;:::o;10608:252::-;10716:4;10754:2;10743:9;10739:18;10731:26;;10767:86;10850:1;10839:9;10835:17;10826:6;10767:86;:::i;:::-;10608:252;;;;:::o;10866:468::-;10931:6;10939;10988:2;10976:9;10967:7;10963:23;10959:32;10956:119;;;10994:79;;:::i;:::-;10956:119;11114:1;11139:53;11184:7;11175:6;11164:9;11160:22;11139:53;:::i;:::-;11129:63;;11085:117;11241:2;11267:50;11309:7;11300:6;11289:9;11285:22;11267:50;:::i;:::-;11257:60;;11212:115;10866:468;;;;;:::o;11340:180::-;11388:77;11385:1;11378:88;11485:4;11482:1;11475:15;11509:4;11506:1;11499:15;11526:320;11570:6;11607:1;11601:4;11597:12;11587:22;;11654:1;11648:4;11644:12;11675:18;11665:81;;11731:4;11723:6;11719:17;11709:27;;11665:81;11793:2;11785:6;11782:14;11762:18;11759:38;11756:84;;11812:18;;:::i;:::-;11756:84;11577:269;11526:320;;;:::o;11852:169::-;11992:21;11988:1;11980:6;11976:14;11969:45;11852:169;:::o;12027:366::-;12169:3;12190:67;12254:2;12249:3;12190:67;:::i;:::-;12183:74;;12266:93;12355:3;12266:93;:::i;:::-;12384:2;12379:3;12375:12;12368:19;;12027:366;;;:::o;12399:419::-;12565:4;12603:2;12592:9;12588:18;12580:26;;12652:9;12646:4;12642:20;12638:1;12627:9;12623:17;12616:47;12680:131;12806:4;12680:131;:::i;:::-;12672:139;;12399:419;;;:::o;12824:180::-;12872:77;12869:1;12862:88;12969:4;12966:1;12959:15;12993:4;12990:1;12983:15;13010:191;13050:3;13069:20;13087:1;13069:20;:::i;:::-;13064:25;;13103:20;13121:1;13103:20;:::i;:::-;13098:25;;13146:1;13143;13139:9;13132:16;;13167:3;13164:1;13161:10;13158:36;;;13174:18;;:::i;:::-;13158:36;13010:191;;;;:::o;13207:180::-;13255:77;13252:1;13245:88;13352:4;13349:1;13342:15;13376:4;13373:1;13366:15;13393:332;13514:4;13552:2;13541:9;13537:18;13529:26;;13565:71;13633:1;13622:9;13618:17;13609:6;13565:71;:::i;:::-;13646:72;13714:2;13703:9;13699:18;13690:6;13646:72;:::i;:::-;13393:332;;;;;:::o;13731:137::-;13785:5;13816:6;13810:13;13801:22;;13832:30;13856:5;13832:30;:::i;:::-;13731:137;;;;:::o;13874:345::-;13941:6;13990:2;13978:9;13969:7;13965:23;13961:32;13958:119;;;13996:79;;:::i;:::-;13958:119;14116:1;14141:61;14194:7;14185:6;14174:9;14170:22;14141:61;:::i;:::-;14131:71;;14087:125;13874:345;;;;:::o;14225:410::-;14265:7;14288:20;14306:1;14288:20;:::i;:::-;14283:25;;14322:20;14340:1;14322:20;:::i;:::-;14317:25;;14377:1;14374;14370:9;14399:30;14417:11;14399:30;:::i;:::-;14388:41;;14578:1;14569:7;14565:15;14562:1;14559:22;14539:1;14532:9;14512:83;14489:139;;14608:18;;:::i;:::-;14489:139;14273:362;14225:410;;;;:::o;14641:147::-;14742:11;14779:3;14764:18;;14641:147;;;;:::o;14794:114::-;;:::o;14914:398::-;15073:3;15094:83;15175:1;15170:3;15094:83;:::i;:::-;15087:90;;15186:93;15275:3;15186:93;:::i;:::-;15304:1;15299:3;15295:11;15288:18;;14914:398;;;:::o;15318:379::-;15502:3;15524:147;15667:3;15524:147;:::i;:::-;15517:154;;15688:3;15681:10;;15318:379;;;:::o;15703:167::-;15843:19;15839:1;15831:6;15827:14;15820:43;15703:167;:::o;15876:366::-;16018:3;16039:67;16103:2;16098:3;16039:67;:::i;:::-;16032:74;;16115:93;16204:3;16115:93;:::i;:::-;16233:2;16228:3;16224:12;16217:19;;15876:366;;;:::o;16248:419::-;16414:4;16452:2;16441:9;16437:18;16429:26;;16501:9;16495:4;16491:20;16487:1;16476:9;16472:17;16465:47;16529:131;16655:4;16529:131;:::i;:::-;16521:139;;16248:419;;;:::o;16673:224::-;16813:34;16809:1;16801:6;16797:14;16790:58;16882:7;16877:2;16869:6;16865:15;16858:32;16673:224;:::o;16903:366::-;17045:3;17066:67;17130:2;17125:3;17066:67;:::i;:::-;17059:74;;17142:93;17231:3;17142:93;:::i;:::-;17260:2;17255:3;17251:12;17244:19;;16903:366;;;:::o;17275:419::-;17441:4;17479:2;17468:9;17464:18;17456:26;;17528:9;17522:4;17518:20;17514:1;17503:9;17499:17;17492:47;17556:131;17682:4;17556:131;:::i;:::-;17548:139;;17275:419;;;:::o;17700:225::-;17840:34;17836:1;17828:6;17824:14;17817:58;17909:8;17904:2;17896:6;17892:15;17885:33;17700:225;:::o;17931:366::-;18073:3;18094:67;18158:2;18153:3;18094:67;:::i;:::-;18087:74;;18170:93;18259:3;18170:93;:::i;:::-;18288:2;18283:3;18279:12;18272:19;;17931:366;;;:::o;18303:419::-;18469:4;18507:2;18496:9;18492:18;18484:26;;18556:9;18550:4;18546:20;18542:1;18531:9;18527:17;18520:47;18584:131;18710:4;18584:131;:::i;:::-;18576:139;;18303:419;;;:::o;18728:182::-;18868:34;18864:1;18856:6;18852:14;18845:58;18728:182;:::o;18916:366::-;19058:3;19079:67;19143:2;19138:3;19079:67;:::i;:::-;19072:74;;19155:93;19244:3;19155:93;:::i;:::-;19273:2;19268:3;19264:12;19257:19;;18916:366;;;:::o;19288:419::-;19454:4;19492:2;19481:9;19477:18;19469:26;;19541:9;19535:4;19531:20;19527:1;19516:9;19512:17;19505:47;19569:131;19695:4;19569:131;:::i;:::-;19561:139;;19288:419;;;:::o;19713:223::-;19853:34;19849:1;19841:6;19837:14;19830:58;19922:6;19917:2;19909:6;19905:15;19898:31;19713:223;:::o;19942:366::-;20084:3;20105:67;20169:2;20164:3;20105:67;:::i;:::-;20098:74;;20181:93;20270:3;20181:93;:::i;:::-;20299:2;20294:3;20290:12;20283:19;;19942:366;;;:::o;20314:419::-;20480:4;20518:2;20507:9;20503:18;20495:26;;20567:9;20561:4;20557:20;20553:1;20542:9;20538:17;20531:47;20595:131;20721:4;20595:131;:::i;:::-;20587:139;;20314:419;;;:::o;20739:221::-;20879:34;20875:1;20867:6;20863:14;20856:58;20948:4;20943:2;20935:6;20931:15;20924:29;20739:221;:::o;20966:366::-;21108:3;21129:67;21193:2;21188:3;21129:67;:::i;:::-;21122:74;;21205:93;21294:3;21205:93;:::i;:::-;21323:2;21318:3;21314:12;21307:19;;20966:366;;;:::o;21338:419::-;21504:4;21542:2;21531:9;21527:18;21519:26;;21591:9;21585:4;21581:20;21577:1;21566:9;21562:17;21555:47;21619:131;21745:4;21619:131;:::i;:::-;21611:139;;21338:419;;;:::o;21763:179::-;21903:31;21899:1;21891:6;21887:14;21880:55;21763:179;:::o;21948:366::-;22090:3;22111:67;22175:2;22170:3;22111:67;:::i;:::-;22104:74;;22187:93;22276:3;22187:93;:::i;:::-;22305:2;22300:3;22296:12;22289:19;;21948:366;;;:::o;22320:419::-;22486:4;22524:2;22513:9;22509:18;22501:26;;22573:9;22567:4;22563:20;22559:1;22548:9;22544:17;22537:47;22601:131;22727:4;22601:131;:::i;:::-;22593:139;;22320:419;;;:::o;22745:228::-;22885:34;22881:1;22873:6;22869:14;22862:58;22954:11;22949:2;22941:6;22937:15;22930:36;22745:228;:::o;22979:366::-;23121:3;23142:67;23206:2;23201:3;23142:67;:::i;:::-;23135:74;;23218:93;23307:3;23218:93;:::i;:::-;23336:2;23331:3;23327:12;23320:19;;22979:366;;;:::o;23351:419::-;23517:4;23555:2;23544:9;23540:18;23532:26;;23604:9;23598:4;23594:20;23590:1;23579:9;23575:17;23568:47;23632:131;23758:4;23632:131;:::i;:::-;23624:139;;23351:419;;;:::o;23776:165::-;23916:17;23912:1;23904:6;23900:14;23893:41;23776:165;:::o;23947:366::-;24089:3;24110:67;24174:2;24169:3;24110:67;:::i;:::-;24103:74;;24186:93;24275:3;24186:93;:::i;:::-;24304:2;24299:3;24295:12;24288:19;;23947:366;;;:::o;24319:419::-;24485:4;24523:2;24512:9;24508:18;24500:26;;24572:9;24566:4;24562:20;24558:1;24547:9;24543:17;24536:47;24600:131;24726:4;24600:131;:::i;:::-;24592:139;;24319:419;;;:::o;24744:161::-;24884:13;24880:1;24872:6;24868:14;24861:37;24744:161;:::o;24911:366::-;25053:3;25074:67;25138:2;25133:3;25074:67;:::i;:::-;25067:74;;25150:93;25239:3;25150:93;:::i;:::-;25268:2;25263:3;25259:12;25252:19;;24911:366;;;:::o;25283:419::-;25449:4;25487:2;25476:9;25472:18;25464:26;;25536:9;25530:4;25526:20;25522:1;25511:9;25507:17;25500:47;25564:131;25690:4;25564:131;:::i;:::-;25556:139;;25283:419;;;:::o;25708:171::-;25848:23;25844:1;25836:6;25832:14;25825:47;25708:171;:::o;25885:366::-;26027:3;26048:67;26112:2;26107:3;26048:67;:::i;:::-;26041:74;;26124:93;26213:3;26124:93;:::i;:::-;26242:2;26237:3;26233:12;26226:19;;25885:366;;;:::o;26257:419::-;26423:4;26461:2;26450:9;26446:18;26438:26;;26510:9;26504:4;26500:20;26496:1;26485:9;26481:17;26474:47;26538:131;26664:4;26538:131;:::i;:::-;26530:139;;26257:419;;;:::o;26682:224::-;26722:3;26741:20;26759:1;26741:20;:::i;:::-;26736:25;;26775:20;26793:1;26775:20;:::i;:::-;26770:25;;26818:1;26815;26811:9;26804:16;;26841:34;26836:3;26833:43;26830:69;;;26879:18;;:::i;:::-;26830:69;26682:224;;;;:::o;26912:180::-;26960:77;26957:1;26950:88;27057:4;27054:1;27047:15;27081:4;27078:1;27071:15;27098:185;27138:1;27155:20;27173:1;27155:20;:::i;:::-;27150:25;;27189:20;27207:1;27189:20;:::i;:::-;27184:25;;27228:1;27218:35;;27233:18;;:::i;:::-;27218:35;27275:1;27272;27268:9;27263:14;;27098:185;;;;:::o;27289:194::-;27329:4;27349:20;27367:1;27349:20;:::i;:::-;27344:25;;27383:20;27401:1;27383:20;:::i;:::-;27378:25;;27427:1;27424;27420:9;27412:17;;27451:1;27445:4;27442:11;27439:37;;;27456:18;;:::i;:::-;27439:37;27289:194;;;;:::o;27489:224::-;27629:34;27625:1;27617:6;27613:14;27606:58;27698:7;27693:2;27685:6;27681:15;27674:32;27489:224;:::o;27719:366::-;27861:3;27882:67;27946:2;27941:3;27882:67;:::i;:::-;27875:74;;27958:93;28047:3;27958:93;:::i;:::-;28076:2;28071:3;28067:12;28060:19;;27719:366;;;:::o;28091:419::-;28257:4;28295:2;28284:9;28280:18;28272:26;;28344:9;28338:4;28334:20;28330:1;28319:9;28315:17;28308:47;28372:131;28498:4;28372:131;:::i;:::-;28364:139;;28091:419;;;:::o;28516:222::-;28656:34;28652:1;28644:6;28640:14;28633:58;28725:5;28720:2;28712:6;28708:15;28701:30;28516:222;:::o;28744:366::-;28886:3;28907:67;28971:2;28966:3;28907:67;:::i;:::-;28900:74;;28983:93;29072:3;28983:93;:::i;:::-;29101:2;29096:3;29092:12;29085:19;;28744:366;;;:::o;29116:419::-;29282:4;29320:2;29309:9;29305:18;29297:26;;29369:9;29363:4;29359:20;29355:1;29344:9;29340:17;29333:47;29397:131;29523:4;29397:131;:::i;:::-;29389:139;;29116:419;;;:::o;29541:225::-;29681:34;29677:1;29669:6;29665:14;29658:58;29750:8;29745:2;29737:6;29733:15;29726:33;29541:225;:::o;29772:366::-;29914:3;29935:67;29999:2;29994:3;29935:67;:::i;:::-;29928:74;;30011:93;30100:3;30011:93;:::i;:::-;30129:2;30124:3;30120:12;30113:19;;29772:366;;;:::o;30144:419::-;30310:4;30348:2;30337:9;30333:18;30325:26;;30397:9;30391:4;30387:20;30383:1;30372:9;30368:17;30361:47;30425:131;30551:4;30425:131;:::i;:::-;30417:139;;30144:419;;;:::o;30569:180::-;30617:77;30614:1;30607:88;30714:4;30711:1;30704:15;30738:4;30735:1;30728:15;30755:143;30812:5;30843:6;30837:13;30828:22;;30859:33;30886:5;30859:33;:::i;:::-;30755:143;;;;:::o;30904:351::-;30974:6;31023:2;31011:9;31002:7;30998:23;30994:32;30991:119;;;31029:79;;:::i;:::-;30991:119;31149:1;31174:64;31230:7;31221:6;31210:9;31206:22;31174:64;:::i;:::-;31164:74;;31120:128;30904:351;;;;:::o;31261:85::-;31306:7;31335:5;31324:16;;31261:85;;;:::o;31352:158::-;31410:9;31443:61;31461:42;31470:32;31496:5;31470:32;:::i;:::-;31461:42;:::i;:::-;31443:61;:::i;:::-;31430:74;;31352:158;;;:::o;31516:147::-;31611:45;31650:5;31611:45;:::i;:::-;31606:3;31599:58;31516:147;;:::o;31669:114::-;31736:6;31770:5;31764:12;31754:22;;31669:114;;;:::o;31789:184::-;31888:11;31922:6;31917:3;31910:19;31962:4;31957:3;31953:14;31938:29;;31789:184;;;;:::o;31979:132::-;32046:4;32069:3;32061:11;;32099:4;32094:3;32090:14;32082:22;;31979:132;;;:::o;32117:108::-;32194:24;32212:5;32194:24;:::i;:::-;32189:3;32182:37;32117:108;;:::o;32231:179::-;32300:10;32321:46;32363:3;32355:6;32321:46;:::i;:::-;32399:4;32394:3;32390:14;32376:28;;32231:179;;;;:::o;32416:113::-;32486:4;32518;32513:3;32509:14;32501:22;;32416:113;;;:::o;32565:732::-;32684:3;32713:54;32761:5;32713:54;:::i;:::-;32783:86;32862:6;32857:3;32783:86;:::i;:::-;32776:93;;32893:56;32943:5;32893:56;:::i;:::-;32972:7;33003:1;32988:284;33013:6;33010:1;33007:13;32988:284;;;33089:6;33083:13;33116:63;33175:3;33160:13;33116:63;:::i;:::-;33109:70;;33202:60;33255:6;33202:60;:::i;:::-;33192:70;;33048:224;33035:1;33032;33028:9;33023:14;;32988:284;;;32992:14;33288:3;33281:10;;32689:608;;;32565:732;;;;:::o;33303:831::-;33566:4;33604:3;33593:9;33589:19;33581:27;;33618:71;33686:1;33675:9;33671:17;33662:6;33618:71;:::i;:::-;33699:80;33775:2;33764:9;33760:18;33751:6;33699:80;:::i;:::-;33826:9;33820:4;33816:20;33811:2;33800:9;33796:18;33789:48;33854:108;33957:4;33948:6;33854:108;:::i;:::-;33846:116;;33972:72;34040:2;34029:9;34025:18;34016:6;33972:72;:::i;:::-;34054:73;34122:3;34111:9;34107:19;34098:6;34054:73;:::i;:::-;33303:831;;;;;;;;:::o

Swarm Source

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