ETH Price: $2,685.33 (-2.02%)

Token

Selenium (Sel)
 

Overview

Max Total Supply

420,690,000 Sel

Holders

104

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
721,222.754958542163100581 Sel

Value
$0.00
0x1751c1aa0376f26b6ceeaedfbcd7eb0d7e404773
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:
Selenium

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 6 : sel.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/cryptography/MerkleProof.sol)

pragma solidity ^0.8.0;


import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";


interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
        function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to
    ) external;

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

interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}


contract Selenium is Ownable, ERC20 {
    mapping(address => bool) public blacklists;
    address public marketing1 = 0xA7BD427C4944D48140a6e8d9d819Adc820bb3eFa;
    address public WETH;
    uint256 public beginBlock = 0;
    uint256 public secondBlock = 600;
    uint256 public tax1 = 20;
    uint256 public tax2 = 1;
    uint256 public limitNumber;
    uint256 public swapNumber;
    bool public blimit = true;
    bool public swapEth = true;
    address public uniswapV2Pair;
    IRouter public _router;

    constructor() ERC20("Selenium", "Sel") {
        _mint(msg.sender, 420690000 * 10**18);

        _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        WETH = _router.WETH();

        limitNumber = (420690000 * 10**18) / 100;
        swapNumber = (420690000 * 10**18) / 10000;

        ERC20(WETH).approve(address(_router), type(uint256).max);
        _approve(address(this), address(_router), type(uint256).max);
        _approve(owner(), address(_router), type(uint256).max);
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(!blacklists[to] && !blacklists[from], "Blacklisted");

        if(uniswapV2Pair == to && beginBlock == 0) {
            beginBlock = block.timestamp;
        }

        if(from == owner() 
        || from == marketing1
        || from == address(_router)
        || to == owner() 
        || to == marketing1
        || to == address(_router)
        || from == address(this)
        || to == address(this)) {
            super._transfer(from, to, amount);
            return;
        }

        if(uniswapV2Pair ==  from || uniswapV2Pair ==  to) {
            if(blimit && uniswapV2Pair ==  from && address(_router) != to){
                require((amount + balanceOf(to)) < limitNumber, "limit");
            }
            uint256 tax = 1;
            if(block.timestamp < (beginBlock + secondBlock)){
                tax = tax1;
            } else {
                tax = tax2;
            }

            uint256 t = tax * amount / 100;
            if(swapEth) {
                super._transfer(from, address(this), t);
                if(!inSwap && uniswapV2Pair ==  to) {
                    swapfee();
                }
            }else{
                super._transfer(from, marketing1, t);
            }
            super._transfer(from, to, amount - t);
            return;
        }
        super._transfer(from, to, amount);
    }

    bool private inSwap;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    function swapfee() private lockTheSwap {
        uint256 balance = balanceOf(address(this));
        address[] memory path = new address[](2);
        if(balance > swapNumber) {
            path[0] = address(this);
            path[1] = WETH;
            _router.swapExactTokensForTokensSupportingFeeOnTransferTokens(balance, 0, path, marketing1, block.timestamp);
        }
    }

    function setlimit(bool _limit, uint256 _limitNumber) external onlyOwner {
        blimit = _limit;
        limitNumber = _limitNumber;
    }

    function setTax(uint256 _tax1, uint256 _tax2) external onlyOwner {
        tax1 = _tax1;
        tax2 = _tax2;   
    }

    function setSwapEth(bool isSwapEth) public onlyOwner {
        swapEth = isSwapEth;
    }

    function setSwapNumber(uint256 _swapNumber)  external onlyOwner {
        swapNumber = _swapNumber;
    }

    function blacklist(address _address, bool _isBlacklisting) external onlyOwner {
        blacklists[_address] = _isBlacklisting;
    }

    function setblacklist(address[] calldata addresses, bool _isBlacklisting) public onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            blacklists[addresses[i]] = _isBlacklisting;
        }
    }

    function multiTransfer(address[] calldata addresses, uint256[] calldata amounts) public {
        require(addresses.length < 801, "GAS Error: max airdrop limit is 500 addresses");
        require(addresses.length == amounts.length, "Mismatch between Address and token count");

        uint256 sum = 0;
        for (uint256 i = 0; i < addresses.length; i++) {
            sum = sum + amounts[i];
        }

        require(balanceOf(msg.sender) >= sum, "Not enough amount in wallet");
        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) public {
        require(addresses.length < 2001, "GAS Error: max airdrop limit is 2000 addresses");

        uint256 sum = amount * addresses.length;
        require(balanceOf(msg.sender) >= sum, "Not enough amount in wallet");

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(msg.sender, addresses[i], amount);
        }
    }


    function errorToken(address _token) external onlyOwner {
        ERC20(_token).transfer(msg.sender, IERC20(_token).balanceOf(address(this)));
    }
    
    function withdawOwner(uint256 amount) public onlyOwner {
        payable(msg.sender).transfer(amount);
    }

    receive () external payable  {
    }
}

File 2 of 6 : ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";

/**
 * @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].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * 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}.
     *
     * 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 default value returned by this function, unless
     * it's 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 3 of 6 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @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. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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 4 of 6 : Context.sol
// SPDX-License-Identifier: MIT
// 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 5 of 6 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @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 6 of 6 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.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);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

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":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beginBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"errorToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketing1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isSwapEth","type":"bool"}],"name":"setSwapEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapNumber","type":"uint256"}],"name":"setSwapNumber","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tax1","type":"uint256"},{"internalType":"uint256","name":"_tax2","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"setblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limit","type":"bool"},{"internalType":"uint256","name":"_limitNumber","type":"uint256"}],"name":"setlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapNumber","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":"tax1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tax2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdawOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273a7bd427c4944d48140a6e8d9d819adc820bb3efa600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600955610258600a556014600b556001600c556001600f60006101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff021916908315150217905550348015620000b157600080fd5b506040518060400160405280600881526020017f53656c656e69756d0000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f53656c00000000000000000000000000000000000000000000000000000000008152506200013e62000132620006bc60201b60201c565b620006c460201b60201c565b81600490805190602001906200015692919062000afd565b5080600590805190602001906200016f92919062000afd565b50505062000190336b015bfc9298de952e2f4000006200078860201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024e57600080fd5b505afa15801562000263573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000289919062000bdb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030e57600080fd5b505afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000349919062000bdb565b6040518363ffffffff1660e01b81526004016200036892919062000cd6565b602060405180830381600087803b1580156200038357600080fd5b505af115801562000398573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003be919062000bdb565b600f60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046757600080fd5b505afa1580156200047c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004a2919062000bdb565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a037ad88187588824500000600d819055506908e890a7c0e2a4340000600e81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401620005a692919062000d03565b602060405180830381600087803b158015620005c157600080fd5b505af1158015620005d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005fc919062000c0d565b506200065230601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620008f760201b60201c565b620006b66200066662000aca60201b60201c565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620008f760201b60201c565b62000fff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007f29062000d74565b60405180910390fd5b6200080f6000838362000af360201b60201c565b806003600082825462000823919062000dc4565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008d7919062000d96565b60405180910390a3620008f36000838362000af860201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009619062000d52565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620009dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009d49062000d30565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000abd919062000d96565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b505050565b505050565b82805462000b0b9062000e6b565b90600052602060002090601f01602090048101928262000b2f576000855562000b7b565b82601f1062000b4a57805160ff191683800117855562000b7b565b8280016001018555821562000b7b579182015b8281111562000b7a57825182559160200191906001019062000b5d565b5b50905062000b8a919062000b8e565b5090565b5b8082111562000ba957600081600090555060010162000b8f565b5090565b60008151905062000bbe8162000fcb565b92915050565b60008151905062000bd58162000fe5565b92915050565b60006020828403121562000bf45762000bf362000eff565b5b600062000c048482850162000bad565b91505092915050565b60006020828403121562000c265762000c2562000eff565b5b600062000c368482850162000bc4565b91505092915050565b62000c4a8162000e21565b82525050565b600062000c5f60228362000db3565b915062000c6c8262000f04565b604082019050919050565b600062000c8660248362000db3565b915062000c938262000f53565b604082019050919050565b600062000cad601f8362000db3565b915062000cba8262000fa2565b602082019050919050565b62000cd08162000e61565b82525050565b600060408201905062000ced600083018562000c3f565b62000cfc602083018462000c3f565b9392505050565b600060408201905062000d1a600083018562000c3f565b62000d29602083018462000cc5565b9392505050565b6000602082019050818103600083015262000d4b8162000c50565b9050919050565b6000602082019050818103600083015262000d6d8162000c77565b9050919050565b6000602082019050818103600083015262000d8f8162000c9e565b9050919050565b600060208201905062000dad600083018462000cc5565b92915050565b600082825260208201905092915050565b600062000dd18262000e61565b915062000dde8362000e61565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e165762000e1562000ea1565b5b828201905092915050565b600062000e2e8262000e41565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000e8457607f821691505b6020821081141562000e9b5762000e9a62000ed0565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b62000fd68162000e21565b811462000fe257600080fd5b50565b62000ff08162000e35565b811462000ffc57600080fd5b50565b613560806200100f6000396000f3fe60806040526004361061021e5760003560e01c8063632e544211610123578063a457c2d7116100ab578063b5cbeb8d1161006f578063b5cbeb8d146107e2578063d99274481461080d578063dd62ed3e14610836578063edae876f14610873578063f2fde38b1461089e57610225565b8063a457c2d7146106e7578063a5d4310e14610724578063a69032781461074f578063a9059cbb1461077a578063ad5c4648146107b757610225565b8063715018a6116100f2578063715018a6146106265780638648c6a61461063d5780638da5cb5b1461066857806395d89b4114610693578063967123cd146106be57610225565b8063632e54421461056c578063667f6526146105955780636e4ad4ba146105be57806370a08231146105e957610225565b806328ea1539116101a6578063404e512911610175578063404e512914610499578063427ac82c146104c257806349bd5a5e146104ed5780635384f246146105185780635be89fbd1461054357610225565b806328ea1539146103db5780632b216cc614610406578063313ce56714610431578063395093511461045c57610225565b806316c02129116101ed57806316c02129146102e457806318160ddd146103215780631c6a0c4c1461034c5780631e89d5451461037557806323b872dd1461039e57610225565b806306fdde031461022a578063095ea7b3146102555780630a3ccb231461029257806314aec748146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108c7565b60405161024c9190612aa6565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612452565b610959565b6040516102899190612a70565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906125d3565b61097c565b005b3480156102c757600080fd5b506102e260048036038101906102dd919061262d565b6109a1565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612352565b6109ce565b6040516103189190612a70565b60405180910390f35b34801561032d57600080fd5b506103366109ee565b6040516103439190612ca8565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e919061266d565b6109f8565b005b34801561038157600080fd5b5061039c60048036038101906103979190612492565b610a4a565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906123bf565b610be2565b6040516103d29190612a70565b60405180910390f35b3480156103e757600080fd5b506103f0610c11565b6040516103fd9190612ca8565b60405180910390f35b34801561041257600080fd5b5061041b610c17565b6040516104289190612a70565b60405180910390f35b34801561043d57600080fd5b50610446610c2a565b6040516104539190612d1d565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190612452565b610c33565b6040516104909190612a70565b60405180910390f35b3480156104a557600080fd5b506104c060048036038101906104bb9190612412565b610c6a565b005b3480156104ce57600080fd5b506104d7610ccd565b6040516104e49190612a2c565b60405180910390f35b3480156104f957600080fd5b50610502610cf3565b60405161050f9190612a2c565b60405180910390f35b34801561052457600080fd5b5061052d610d19565b60405161053a9190612a70565b60405180910390f35b34801561054f57600080fd5b5061056a6004803603810190610565919061266d565b610d2c565b005b34801561057857600080fd5b50610593600480360381019061058e9190612573565b610d3e565b005b3480156105a157600080fd5b506105bc60048036038101906105b791906126c7565b610e3d565b005b3480156105ca57600080fd5b506105d3610e57565b6040516105e09190612ca8565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b9190612352565b610e5d565b60405161061d9190612ca8565b60405180910390f35b34801561063257600080fd5b5061063b610ea6565b005b34801561064957600080fd5b50610652610eba565b60405161065f9190612ca8565b60405180910390f35b34801561067457600080fd5b5061067d610ec0565b60405161068a9190612a2c565b60405180910390f35b34801561069f57600080fd5b506106a8610ee9565b6040516106b59190612aa6565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e09190612513565b610f7b565b005b3480156106f357600080fd5b5061070e60048036038101906107099190612452565b611028565b60405161071b9190612a70565b60405180910390f35b34801561073057600080fd5b5061073961109f565b6040516107469190612ca8565b60405180910390f35b34801561075b57600080fd5b506107646110a5565b6040516107719190612ca8565b60405180910390f35b34801561078657600080fd5b506107a1600480360381019061079c9190612452565b6110ab565b6040516107ae9190612a70565b60405180910390f35b3480156107c357600080fd5b506107cc6110ce565b6040516107d99190612a2c565b60405180910390f35b3480156107ee57600080fd5b506107f76110f4565b6040516108049190612ca8565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f9190612352565b6110fa565b005b34801561084257600080fd5b5061085d6004803603810190610858919061237f565b61121b565b60405161086a9190612ca8565b60405180910390f35b34801561087f57600080fd5b506108886112a2565b6040516108959190612a8b565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c09190612352565b6112c8565b005b6060600480546108d690612f72565b80601f016020809104026020016040519081016040528092919081815260200182805461090290612f72565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b5050505050905090565b60008061096461134c565b9050610971818585611354565b600191505092915050565b61098461151f565b80600f60016101000a81548160ff02191690831515021790555050565b6109a961151f565b81600f60006101000a81548160ff02191690831515021790555080600d819055505050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b610a0061151f565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a46573d6000803e3d6000fd5b5050565b6103218484905010610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612c28565b60405180910390fd5b818190508484905014610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090612ae8565b60405180910390fd5b6000805b85859050811015610b2257838382818110610afb57610afa61307a565b5b9050602002013582610b0d9190612d8d565b91508080610b1a90612fa4565b915050610add565b5080610b2d33610e5d565b1015610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612b68565b60405180910390fd5b60005b85859050811015610bda57610bc733878784818110610b9357610b9261307a565b5b9050602002016020810190610ba89190612352565b868685818110610bbb57610bba61307a565b5b9050602002013561159d565b8080610bd290612fa4565b915050610b71565b505050505050565b600080610bed61134c565b9050610bfa858285611c50565b610c0585858561159d565b60019150509392505050565b600c5481565b600f60009054906101000a900460ff1681565b60006012905090565b600080610c3e61134c565b9050610c5f818585610c50858961121b565b610c5a9190612d8d565b611354565b600191505092915050565b610c7261151f565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60019054906101000a900460ff1681565b610d3461151f565b80600e8190555050565b6107d18383905010610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90612bc8565b60405180910390fd5b60008383905082610d969190612e14565b905080610da233610e5d565b1015610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90612b68565b60405180910390fd5b60005b84849050811015610e3657610e2333868684818110610e0857610e0761307a565b5b9050602002016020810190610e1d9190612352565b8561159d565b8080610e2e90612fa4565b915050610de6565b5050505050565b610e4561151f565b81600b8190555080600c819055505050565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610eae61151f565b610eb86000611cdc565b565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610ef890612f72565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2490612f72565b8015610f715780601f10610f4657610100808354040283529160200191610f71565b820191906000526020600020905b815481529060010190602001808311610f5457829003601f168201915b5050505050905090565b610f8361151f565b60005b83839050811015611022578160066000868685818110610fa957610fa861307a565b5b9050602002016020810190610fbe9190612352565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101a90612fa4565b915050610f86565b50505050565b60008061103361134c565b90506000611041828661121b565b905083811015611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90612c68565b60405180910390fd5b6110938286868403611354565b60019250505092915050565b600b5481565b60095481565b6000806110b661134c565b90506110c381858561159d565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b61110261151f565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111589190612a2c565b60206040518083038186803b15801561117057600080fd5b505afa158015611184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a8919061269a565b6040518363ffffffff1660e01b81526004016111c5929190612a47565b602060405180830381600087803b1580156111df57600080fd5b505af11580156111f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112179190612600565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112d061151f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133790612b08565b60405180910390fd5b61134981611cdc565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90612c48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90612b28565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115129190612ca8565b60405180910390a3505050565b61152761134c565b73ffffffffffffffffffffffffffffffffffffffff16611545610ec0565b73ffffffffffffffffffffffffffffffffffffffff161461159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159290612be8565b60405180910390fd5b565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116415750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790612c88565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156116df57506000600954145b156116ec57426009819055505b6116f4610ec0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061177a5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806117d25750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061180f57506117e0610ec0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118675750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118bf5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118f557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061192b57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156119405761193b838383611da0565b611c4b565b8273ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806119e957508173ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611c3f57600f60009054906101000a900460ff168015611a5757508273ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611ab157508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611b0e57600d54611ac283610e5d565b82611acd9190612d8d565b10611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0490612ba8565b60405180910390fd5b5b600060019050600a54600954611b249190612d8d565b421015611b3557600b549050611b3b565b600c5490505b600060648383611b4b9190612e14565b611b559190612de3565b9050600f60019054906101000a900460ff1615611bf457611b77853083611da0565b601060149054906101000a900460ff16158015611be157508373ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611bef57611bee61201b565b5b611c22565b611c2185600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611da0565b5b611c3885858386611c339190612e6e565b611da0565b5050611c4b565b611c4a838383611da0565b5b505050565b6000611c5c848461121b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611cd65781811015611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf90612b48565b60405180910390fd5b611cd58484848403611354565b5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612c08565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790612ac8565b60405180910390fd5b611e8b838383612233565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990612b88565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120029190612ca8565b60405180910390a3612015848484612238565b50505050565b6001601060146101000a81548160ff021916908315150217905550600061204130610e5d565b90506000600267ffffffffffffffff8111156120605761205f6130a9565b5b60405190808252806020026020018201604052801561208e5781602001602082028036833780820191505090505b509050600e548211156122145730816000815181106120b0576120af61307a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106121215761212061307a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016121e1959493929190612cc3565b600060405180830381600087803b1580156121fb57600080fd5b505af115801561220f573d6000803e3d6000fd5b505050505b50506000601060146101000a81548160ff021916908315150217905550565b505050565b505050565b60008135905061224c816134e5565b92915050565b60008083601f840112612268576122676130dd565b5b8235905067ffffffffffffffff811115612285576122846130d8565b5b6020830191508360208202830111156122a1576122a06130e2565b5b9250929050565b60008083601f8401126122be576122bd6130dd565b5b8235905067ffffffffffffffff8111156122db576122da6130d8565b5b6020830191508360208202830111156122f7576122f66130e2565b5b9250929050565b60008135905061230d816134fc565b92915050565b600081519050612322816134fc565b92915050565b60008135905061233781613513565b92915050565b60008151905061234c81613513565b92915050565b600060208284031215612368576123676130ec565b5b60006123768482850161223d565b91505092915050565b60008060408385031215612396576123956130ec565b5b60006123a48582860161223d565b92505060206123b58582860161223d565b9150509250929050565b6000806000606084860312156123d8576123d76130ec565b5b60006123e68682870161223d565b93505060206123f78682870161223d565b925050604061240886828701612328565b9150509250925092565b60008060408385031215612429576124286130ec565b5b60006124378582860161223d565b9250506020612448858286016122fe565b9150509250929050565b60008060408385031215612469576124686130ec565b5b60006124778582860161223d565b925050602061248885828601612328565b9150509250929050565b600080600080604085870312156124ac576124ab6130ec565b5b600085013567ffffffffffffffff8111156124ca576124c96130e7565b5b6124d687828801612252565b9450945050602085013567ffffffffffffffff8111156124f9576124f86130e7565b5b612505878288016122a8565b925092505092959194509250565b60008060006040848603121561252c5761252b6130ec565b5b600084013567ffffffffffffffff81111561254a576125496130e7565b5b61255686828701612252565b93509350506020612569868287016122fe565b9150509250925092565b60008060006040848603121561258c5761258b6130ec565b5b600084013567ffffffffffffffff8111156125aa576125a96130e7565b5b6125b686828701612252565b935093505060206125c986828701612328565b9150509250925092565b6000602082840312156125e9576125e86130ec565b5b60006125f7848285016122fe565b91505092915050565b600060208284031215612616576126156130ec565b5b600061262484828501612313565b91505092915050565b60008060408385031215612644576126436130ec565b5b6000612652858286016122fe565b925050602061266385828601612328565b9150509250929050565b600060208284031215612683576126826130ec565b5b600061269184828501612328565b91505092915050565b6000602082840312156126b0576126af6130ec565b5b60006126be8482850161233d565b91505092915050565b600080604083850312156126de576126dd6130ec565b5b60006126ec85828601612328565b92505060206126fd85828601612328565b9150509250929050565b6000612713838361271f565b60208301905092915050565b61272881612ea2565b82525050565b61273781612ea2565b82525050565b600061274882612d48565b6127528185612d6b565b935061275d83612d38565b8060005b8381101561278e5781516127758882612707565b975061278083612d5e565b925050600181019050612761565b5085935050505092915050565b6127a481612eb4565b82525050565b6127b381612ef7565b82525050565b6127c281612f09565b82525050565b60006127d382612d53565b6127dd8185612d7c565b93506127ed818560208601612f3f565b6127f6816130f1565b840191505092915050565b600061280e602383612d7c565b915061281982613102565b604082019050919050565b6000612831602883612d7c565b915061283c82613151565b604082019050919050565b6000612854602683612d7c565b915061285f826131a0565b604082019050919050565b6000612877602283612d7c565b9150612882826131ef565b604082019050919050565b600061289a601d83612d7c565b91506128a58261323e565b602082019050919050565b60006128bd601b83612d7c565b91506128c882613267565b602082019050919050565b60006128e0602683612d7c565b91506128eb82613290565b604082019050919050565b6000612903600583612d7c565b915061290e826132df565b602082019050919050565b6000612926602e83612d7c565b915061293182613308565b604082019050919050565b6000612949602083612d7c565b915061295482613357565b602082019050919050565b600061296c602583612d7c565b915061297782613380565b604082019050919050565b600061298f602d83612d7c565b915061299a826133cf565b604082019050919050565b60006129b2602483612d7c565b91506129bd8261341e565b604082019050919050565b60006129d5602583612d7c565b91506129e08261346d565b604082019050919050565b60006129f8600b83612d7c565b9150612a03826134bc565b602082019050919050565b612a1781612ee0565b82525050565b612a2681612eea565b82525050565b6000602082019050612a41600083018461272e565b92915050565b6000604082019050612a5c600083018561272e565b612a696020830184612a0e565b9392505050565b6000602082019050612a85600083018461279b565b92915050565b6000602082019050612aa060008301846127aa565b92915050565b60006020820190508181036000830152612ac081846127c8565b905092915050565b60006020820190508181036000830152612ae181612801565b9050919050565b60006020820190508181036000830152612b0181612824565b9050919050565b60006020820190508181036000830152612b2181612847565b9050919050565b60006020820190508181036000830152612b418161286a565b9050919050565b60006020820190508181036000830152612b618161288d565b9050919050565b60006020820190508181036000830152612b81816128b0565b9050919050565b60006020820190508181036000830152612ba1816128d3565b9050919050565b60006020820190508181036000830152612bc1816128f6565b9050919050565b60006020820190508181036000830152612be181612919565b9050919050565b60006020820190508181036000830152612c018161293c565b9050919050565b60006020820190508181036000830152612c218161295f565b9050919050565b60006020820190508181036000830152612c4181612982565b9050919050565b60006020820190508181036000830152612c61816129a5565b9050919050565b60006020820190508181036000830152612c81816129c8565b9050919050565b60006020820190508181036000830152612ca1816129eb565b9050919050565b6000602082019050612cbd6000830184612a0e565b92915050565b600060a082019050612cd86000830188612a0e565b612ce560208301876127b9565b8181036040830152612cf7818661273d565b9050612d06606083018561272e565b612d136080830184612a0e565b9695505050505050565b6000602082019050612d326000830184612a1d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d9882612ee0565b9150612da383612ee0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612dd857612dd7612fed565b5b828201905092915050565b6000612dee82612ee0565b9150612df983612ee0565b925082612e0957612e0861301c565b5b828204905092915050565b6000612e1f82612ee0565b9150612e2a83612ee0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e6357612e62612fed565b5b828202905092915050565b6000612e7982612ee0565b9150612e8483612ee0565b925082821015612e9757612e96612fed565b5b828203905092915050565b6000612ead82612ec0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f0282612f1b565b9050919050565b6000612f1482612ee0565b9050919050565b6000612f2682612f2d565b9050919050565b6000612f3882612ec0565b9050919050565b60005b83811015612f5d578082015181840152602081019050612f42565b83811115612f6c576000848401525b50505050565b60006002820490506001821680612f8a57607f821691505b60208210811415612f9e57612f9d61304b565b5b50919050565b6000612faf82612ee0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fe257612fe1612fed565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f6c696d6974000000000000000000000000000000000000000000000000000000600082015250565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6134ee81612ea2565b81146134f957600080fd5b50565b61350581612eb4565b811461351057600080fd5b50565b61351c81612ee0565b811461352757600080fd5b5056fea264697066735822122089b4249c31dc12e673c9198d18828e4cff512569e1e2980ccc2d113e108410f664736f6c63430008070033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c8063632e544211610123578063a457c2d7116100ab578063b5cbeb8d1161006f578063b5cbeb8d146107e2578063d99274481461080d578063dd62ed3e14610836578063edae876f14610873578063f2fde38b1461089e57610225565b8063a457c2d7146106e7578063a5d4310e14610724578063a69032781461074f578063a9059cbb1461077a578063ad5c4648146107b757610225565b8063715018a6116100f2578063715018a6146106265780638648c6a61461063d5780638da5cb5b1461066857806395d89b4114610693578063967123cd146106be57610225565b8063632e54421461056c578063667f6526146105955780636e4ad4ba146105be57806370a08231146105e957610225565b806328ea1539116101a6578063404e512911610175578063404e512914610499578063427ac82c146104c257806349bd5a5e146104ed5780635384f246146105185780635be89fbd1461054357610225565b806328ea1539146103db5780632b216cc614610406578063313ce56714610431578063395093511461045c57610225565b806316c02129116101ed57806316c02129146102e457806318160ddd146103215780631c6a0c4c1461034c5780631e89d5451461037557806323b872dd1461039e57610225565b806306fdde031461022a578063095ea7b3146102555780630a3ccb231461029257806314aec748146102bb57610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f6108c7565b60405161024c9190612aa6565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612452565b610959565b6040516102899190612a70565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b491906125d3565b61097c565b005b3480156102c757600080fd5b506102e260048036038101906102dd919061262d565b6109a1565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612352565b6109ce565b6040516103189190612a70565b60405180910390f35b34801561032d57600080fd5b506103366109ee565b6040516103439190612ca8565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e919061266d565b6109f8565b005b34801561038157600080fd5b5061039c60048036038101906103979190612492565b610a4a565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906123bf565b610be2565b6040516103d29190612a70565b60405180910390f35b3480156103e757600080fd5b506103f0610c11565b6040516103fd9190612ca8565b60405180910390f35b34801561041257600080fd5b5061041b610c17565b6040516104289190612a70565b60405180910390f35b34801561043d57600080fd5b50610446610c2a565b6040516104539190612d1d565b60405180910390f35b34801561046857600080fd5b50610483600480360381019061047e9190612452565b610c33565b6040516104909190612a70565b60405180910390f35b3480156104a557600080fd5b506104c060048036038101906104bb9190612412565b610c6a565b005b3480156104ce57600080fd5b506104d7610ccd565b6040516104e49190612a2c565b60405180910390f35b3480156104f957600080fd5b50610502610cf3565b60405161050f9190612a2c565b60405180910390f35b34801561052457600080fd5b5061052d610d19565b60405161053a9190612a70565b60405180910390f35b34801561054f57600080fd5b5061056a6004803603810190610565919061266d565b610d2c565b005b34801561057857600080fd5b50610593600480360381019061058e9190612573565b610d3e565b005b3480156105a157600080fd5b506105bc60048036038101906105b791906126c7565b610e3d565b005b3480156105ca57600080fd5b506105d3610e57565b6040516105e09190612ca8565b60405180910390f35b3480156105f557600080fd5b50610610600480360381019061060b9190612352565b610e5d565b60405161061d9190612ca8565b60405180910390f35b34801561063257600080fd5b5061063b610ea6565b005b34801561064957600080fd5b50610652610eba565b60405161065f9190612ca8565b60405180910390f35b34801561067457600080fd5b5061067d610ec0565b60405161068a9190612a2c565b60405180910390f35b34801561069f57600080fd5b506106a8610ee9565b6040516106b59190612aa6565b60405180910390f35b3480156106ca57600080fd5b506106e560048036038101906106e09190612513565b610f7b565b005b3480156106f357600080fd5b5061070e60048036038101906107099190612452565b611028565b60405161071b9190612a70565b60405180910390f35b34801561073057600080fd5b5061073961109f565b6040516107469190612ca8565b60405180910390f35b34801561075b57600080fd5b506107646110a5565b6040516107719190612ca8565b60405180910390f35b34801561078657600080fd5b506107a1600480360381019061079c9190612452565b6110ab565b6040516107ae9190612a70565b60405180910390f35b3480156107c357600080fd5b506107cc6110ce565b6040516107d99190612a2c565b60405180910390f35b3480156107ee57600080fd5b506107f76110f4565b6040516108049190612ca8565b60405180910390f35b34801561081957600080fd5b50610834600480360381019061082f9190612352565b6110fa565b005b34801561084257600080fd5b5061085d6004803603810190610858919061237f565b61121b565b60405161086a9190612ca8565b60405180910390f35b34801561087f57600080fd5b506108886112a2565b6040516108959190612a8b565b60405180910390f35b3480156108aa57600080fd5b506108c560048036038101906108c09190612352565b6112c8565b005b6060600480546108d690612f72565b80601f016020809104026020016040519081016040528092919081815260200182805461090290612f72565b801561094f5780601f106109245761010080835404028352916020019161094f565b820191906000526020600020905b81548152906001019060200180831161093257829003601f168201915b5050505050905090565b60008061096461134c565b9050610971818585611354565b600191505092915050565b61098461151f565b80600f60016101000a81548160ff02191690831515021790555050565b6109a961151f565b81600f60006101000a81548160ff02191690831515021790555080600d819055505050565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600354905090565b610a0061151f565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a46573d6000803e3d6000fd5b5050565b6103218484905010610a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8890612c28565b60405180910390fd5b818190508484905014610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090612ae8565b60405180910390fd5b6000805b85859050811015610b2257838382818110610afb57610afa61307a565b5b9050602002013582610b0d9190612d8d565b91508080610b1a90612fa4565b915050610add565b5080610b2d33610e5d565b1015610b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6590612b68565b60405180910390fd5b60005b85859050811015610bda57610bc733878784818110610b9357610b9261307a565b5b9050602002016020810190610ba89190612352565b868685818110610bbb57610bba61307a565b5b9050602002013561159d565b8080610bd290612fa4565b915050610b71565b505050505050565b600080610bed61134c565b9050610bfa858285611c50565b610c0585858561159d565b60019150509392505050565b600c5481565b600f60009054906101000a900460ff1681565b60006012905090565b600080610c3e61134c565b9050610c5f818585610c50858961121b565b610c5a9190612d8d565b611354565b600191505092915050565b610c7261151f565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60019054906101000a900460ff1681565b610d3461151f565b80600e8190555050565b6107d18383905010610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90612bc8565b60405180910390fd5b60008383905082610d969190612e14565b905080610da233610e5d565b1015610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda90612b68565b60405180910390fd5b60005b84849050811015610e3657610e2333868684818110610e0857610e0761307a565b5b9050602002016020810190610e1d9190612352565b8561159d565b8080610e2e90612fa4565b915050610de6565b5050505050565b610e4561151f565b81600b8190555080600c819055505050565b600d5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610eae61151f565b610eb86000611cdc565b565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610ef890612f72565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2490612f72565b8015610f715780601f10610f4657610100808354040283529160200191610f71565b820191906000526020600020905b815481529060010190602001808311610f5457829003601f168201915b5050505050905090565b610f8361151f565b60005b83839050811015611022578160066000868685818110610fa957610fa861307a565b5b9050602002016020810190610fbe9190612352565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061101a90612fa4565b915050610f86565b50505050565b60008061103361134c565b90506000611041828661121b565b905083811015611086576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107d90612c68565b60405180910390fd5b6110938286868403611354565b60019250505092915050565b600b5481565b60095481565b6000806110b661134c565b90506110c381858561159d565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b61110261151f565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111589190612a2c565b60206040518083038186803b15801561117057600080fd5b505afa158015611184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a8919061269a565b6040518363ffffffff1660e01b81526004016111c5929190612a47565b602060405180830381600087803b1580156111df57600080fd5b505af11580156111f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112179190612600565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112d061151f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133790612b08565b60405180910390fd5b61134981611cdc565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bb90612c48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142b90612b28565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115129190612ca8565b60405180910390a3505050565b61152761134c565b73ffffffffffffffffffffffffffffffffffffffff16611545610ec0565b73ffffffffffffffffffffffffffffffffffffffff161461159b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159290612be8565b60405180910390fd5b565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116415750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790612c88565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156116df57506000600954145b156116ec57426009819055505b6116f4610ec0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061177a5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806117d25750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061180f57506117e0610ec0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118675750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118bf5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118f557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061192b57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156119405761193b838383611da0565b611c4b565b8273ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806119e957508173ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611c3f57600f60009054906101000a900460ff168015611a5757508273ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015611ab157508173ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15611b0e57600d54611ac283610e5d565b82611acd9190612d8d565b10611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0490612ba8565b60405180910390fd5b5b600060019050600a54600954611b249190612d8d565b421015611b3557600b549050611b3b565b600c5490505b600060648383611b4b9190612e14565b611b559190612de3565b9050600f60019054906101000a900460ff1615611bf457611b77853083611da0565b601060149054906101000a900460ff16158015611be157508373ffffffffffffffffffffffffffffffffffffffff16600f60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15611bef57611bee61201b565b5b611c22565b611c2185600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611da0565b5b611c3885858386611c339190612e6e565b611da0565b5050611c4b565b611c4a838383611da0565b5b505050565b6000611c5c848461121b565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611cd65781811015611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf90612b48565b60405180910390fd5b611cd58484848403611354565b5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612c08565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7790612ac8565b60405180910390fd5b611e8b838383612233565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0990612b88565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120029190612ca8565b60405180910390a3612015848484612238565b50505050565b6001601060146101000a81548160ff021916908315150217905550600061204130610e5d565b90506000600267ffffffffffffffff8111156120605761205f6130a9565b5b60405190808252806020026020018201604052801561208e5781602001602082028036833780820191505090505b509050600e548211156122145730816000815181106120b0576120af61307a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106121215761212061307a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016121e1959493929190612cc3565b600060405180830381600087803b1580156121fb57600080fd5b505af115801561220f573d6000803e3d6000fd5b505050505b50506000601060146101000a81548160ff021916908315150217905550565b505050565b505050565b60008135905061224c816134e5565b92915050565b60008083601f840112612268576122676130dd565b5b8235905067ffffffffffffffff811115612285576122846130d8565b5b6020830191508360208202830111156122a1576122a06130e2565b5b9250929050565b60008083601f8401126122be576122bd6130dd565b5b8235905067ffffffffffffffff8111156122db576122da6130d8565b5b6020830191508360208202830111156122f7576122f66130e2565b5b9250929050565b60008135905061230d816134fc565b92915050565b600081519050612322816134fc565b92915050565b60008135905061233781613513565b92915050565b60008151905061234c81613513565b92915050565b600060208284031215612368576123676130ec565b5b60006123768482850161223d565b91505092915050565b60008060408385031215612396576123956130ec565b5b60006123a48582860161223d565b92505060206123b58582860161223d565b9150509250929050565b6000806000606084860312156123d8576123d76130ec565b5b60006123e68682870161223d565b93505060206123f78682870161223d565b925050604061240886828701612328565b9150509250925092565b60008060408385031215612429576124286130ec565b5b60006124378582860161223d565b9250506020612448858286016122fe565b9150509250929050565b60008060408385031215612469576124686130ec565b5b60006124778582860161223d565b925050602061248885828601612328565b9150509250929050565b600080600080604085870312156124ac576124ab6130ec565b5b600085013567ffffffffffffffff8111156124ca576124c96130e7565b5b6124d687828801612252565b9450945050602085013567ffffffffffffffff8111156124f9576124f86130e7565b5b612505878288016122a8565b925092505092959194509250565b60008060006040848603121561252c5761252b6130ec565b5b600084013567ffffffffffffffff81111561254a576125496130e7565b5b61255686828701612252565b93509350506020612569868287016122fe565b9150509250925092565b60008060006040848603121561258c5761258b6130ec565b5b600084013567ffffffffffffffff8111156125aa576125a96130e7565b5b6125b686828701612252565b935093505060206125c986828701612328565b9150509250925092565b6000602082840312156125e9576125e86130ec565b5b60006125f7848285016122fe565b91505092915050565b600060208284031215612616576126156130ec565b5b600061262484828501612313565b91505092915050565b60008060408385031215612644576126436130ec565b5b6000612652858286016122fe565b925050602061266385828601612328565b9150509250929050565b600060208284031215612683576126826130ec565b5b600061269184828501612328565b91505092915050565b6000602082840312156126b0576126af6130ec565b5b60006126be8482850161233d565b91505092915050565b600080604083850312156126de576126dd6130ec565b5b60006126ec85828601612328565b92505060206126fd85828601612328565b9150509250929050565b6000612713838361271f565b60208301905092915050565b61272881612ea2565b82525050565b61273781612ea2565b82525050565b600061274882612d48565b6127528185612d6b565b935061275d83612d38565b8060005b8381101561278e5781516127758882612707565b975061278083612d5e565b925050600181019050612761565b5085935050505092915050565b6127a481612eb4565b82525050565b6127b381612ef7565b82525050565b6127c281612f09565b82525050565b60006127d382612d53565b6127dd8185612d7c565b93506127ed818560208601612f3f565b6127f6816130f1565b840191505092915050565b600061280e602383612d7c565b915061281982613102565b604082019050919050565b6000612831602883612d7c565b915061283c82613151565b604082019050919050565b6000612854602683612d7c565b915061285f826131a0565b604082019050919050565b6000612877602283612d7c565b9150612882826131ef565b604082019050919050565b600061289a601d83612d7c565b91506128a58261323e565b602082019050919050565b60006128bd601b83612d7c565b91506128c882613267565b602082019050919050565b60006128e0602683612d7c565b91506128eb82613290565b604082019050919050565b6000612903600583612d7c565b915061290e826132df565b602082019050919050565b6000612926602e83612d7c565b915061293182613308565b604082019050919050565b6000612949602083612d7c565b915061295482613357565b602082019050919050565b600061296c602583612d7c565b915061297782613380565b604082019050919050565b600061298f602d83612d7c565b915061299a826133cf565b604082019050919050565b60006129b2602483612d7c565b91506129bd8261341e565b604082019050919050565b60006129d5602583612d7c565b91506129e08261346d565b604082019050919050565b60006129f8600b83612d7c565b9150612a03826134bc565b602082019050919050565b612a1781612ee0565b82525050565b612a2681612eea565b82525050565b6000602082019050612a41600083018461272e565b92915050565b6000604082019050612a5c600083018561272e565b612a696020830184612a0e565b9392505050565b6000602082019050612a85600083018461279b565b92915050565b6000602082019050612aa060008301846127aa565b92915050565b60006020820190508181036000830152612ac081846127c8565b905092915050565b60006020820190508181036000830152612ae181612801565b9050919050565b60006020820190508181036000830152612b0181612824565b9050919050565b60006020820190508181036000830152612b2181612847565b9050919050565b60006020820190508181036000830152612b418161286a565b9050919050565b60006020820190508181036000830152612b618161288d565b9050919050565b60006020820190508181036000830152612b81816128b0565b9050919050565b60006020820190508181036000830152612ba1816128d3565b9050919050565b60006020820190508181036000830152612bc1816128f6565b9050919050565b60006020820190508181036000830152612be181612919565b9050919050565b60006020820190508181036000830152612c018161293c565b9050919050565b60006020820190508181036000830152612c218161295f565b9050919050565b60006020820190508181036000830152612c4181612982565b9050919050565b60006020820190508181036000830152612c61816129a5565b9050919050565b60006020820190508181036000830152612c81816129c8565b9050919050565b60006020820190508181036000830152612ca1816129eb565b9050919050565b6000602082019050612cbd6000830184612a0e565b92915050565b600060a082019050612cd86000830188612a0e565b612ce560208301876127b9565b8181036040830152612cf7818661273d565b9050612d06606083018561272e565b612d136080830184612a0e565b9695505050505050565b6000602082019050612d326000830184612a1d565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d9882612ee0565b9150612da383612ee0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612dd857612dd7612fed565b5b828201905092915050565b6000612dee82612ee0565b9150612df983612ee0565b925082612e0957612e0861301c565b5b828204905092915050565b6000612e1f82612ee0565b9150612e2a83612ee0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e6357612e62612fed565b5b828202905092915050565b6000612e7982612ee0565b9150612e8483612ee0565b925082821015612e9757612e96612fed565b5b828203905092915050565b6000612ead82612ec0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f0282612f1b565b9050919050565b6000612f1482612ee0565b9050919050565b6000612f2682612f2d565b9050919050565b6000612f3882612ec0565b9050919050565b60005b83811015612f5d578082015181840152602081019050612f42565b83811115612f6c576000848401525b50505050565b60006002820490506001821680612f8a57607f821691505b60208210811415612f9e57612f9d61304b565b5b50919050565b6000612faf82612ee0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612fe257612fe1612fed565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f6c696d6974000000000000000000000000000000000000000000000000000000600082015250565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f426c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6134ee81612ea2565b81146134f957600080fd5b50565b61350581612eb4565b811461351057600080fd5b50565b61351c81612ee0565b811461352757600080fd5b5056fea264697066735822122089b4249c31dc12e673c9198d18828e4cff512569e1e2980ccc2d113e108410f664736f6c63430008070033

Deployed Bytecode Sourcemap

1119:5434:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4552:91:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4271:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1162:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:110:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5142:631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5203:256:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1420:23:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1515:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:91:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4766:135:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1211:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1580:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1547:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4651:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5781:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4422:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1450:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3419:125:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;;;;;;;;;;;:::i;:::-;;1483:25:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1201:85:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4909:225:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6575:427:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1389:24:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1314:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1288:19:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1350:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6234:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3987::1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1615:22:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2158:98:1;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;4543:13;4559:12;:10;:12::i;:::-;4543:28;;4581:32;4590:5;4597:7;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;:::o;4552:91:5:-;1094:13:0;:11;:13::i;:::-;4626:9:5::1;4616:7;;:19;;;;;;;;;;;;;;;;;;4552:91:::0;:::o;4271:143::-;1094:13:0;:11;:13::i;:::-;4363:6:5::1;4354;;:15;;;;;;;;;;;;;;;;;;4394:12;4380:11;:26;;;;4271:143:::0;;:::o;1162:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;3255:106:1:-;3316:7;3342:12;;3335:19;;3255:106;:::o;6395:110:5:-;1094:13:0;:11;:13::i;:::-;6469:10:5::1;6461:28;;:36;6490:6;6461:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6395:110:::0;:::o;5142:631::-;5268:3;5249:9;;:16;;:22;5241:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;5360:7;;:14;;5340:9;;:16;;:34;5332:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;5432:11;5463:9;5458:96;5482:9;;:16;;5478:1;:20;5458:96;;;5532:7;;5540:1;5532:10;;;;;;;:::i;:::-;;;;;;;;5526:3;:16;;;;:::i;:::-;5520:22;;5500:3;;;;;:::i;:::-;;;;5458:96;;;;5599:3;5574:21;5584:10;5574:9;:21::i;:::-;:28;;5566:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5650:9;5645:121;5669:9;;:16;;5665:1;:20;5645:121;;;5707:47;5717:10;5729:9;;5739:1;5729:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5743:7;;5751:1;5743:10;;;;;;;:::i;:::-;;;;;;;;5707:9;:47::i;:::-;5687:3;;;;;:::i;:::-;;;;5645:121;;;;5230:543;5142:631;;;;:::o;5203:256:1:-;5300:4;5316:15;5334:12;:10;:12::i;:::-;5316:30;;5356:38;5372:4;5378:7;5387:6;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;5448:4;5441:11;;;5203:256;;;;;:::o;1420:23:5:-;;;;:::o;1515:25::-;;;;;;;;;;;;;:::o;3104:91:1:-;3162:5;3186:2;3179:9;;3104:91;:::o;5854:234::-;5942:4;5958:13;5974:12;:10;:12::i;:::-;5958:28;;5996:64;6005:5;6012:7;6049:10;6021:25;6031:5;6038:7;6021:9;:25::i;:::-;:38;;;;:::i;:::-;5996:8;:64::i;:::-;6077:4;6070:11;;;5854:234;;;;:::o;4766:135:5:-;1094:13:0;:11;:13::i;:::-;4878:15:5::1;4855:10;:20;4866:8;4855:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;4766:135:::0;;:::o;1211:70::-;;;;;;;;;;;;;:::o;1580:28::-;;;;;;;;;;;;;:::o;1547:26::-;;;;;;;;;;;;;:::o;4651:107::-;1094:13:0;:11;:13::i;:::-;4739:11:5::1;4726:10;:24;;;;4651:107:::0;:::o;5781:443::-;5901:4;5882:9;;:16;;:23;5874:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;5969:11;5992:9;;:16;;5983:6;:25;;;;:::i;:::-;5969:39;;6052:3;6027:21;6037:10;6027:9;:21::i;:::-;:28;;6019:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6105:9;6100:117;6124:9;;:16;;6120:1;:20;6100:117;;;6162:43;6172:10;6184:9;;6194:1;6184:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6198:6;6162:9;:43::i;:::-;6142:3;;;;;:::i;:::-;;;;6100:117;;;;5863:361;5781:443;;;:::o;4422:122::-;1094:13:0;:11;:13::i;:::-;4505:5:5::1;4498:4;:12;;;;4528:5;4521:4;:12;;;;4422:122:::0;;:::o;1450:26::-;;;;:::o;3419:125:1:-;3493:7;3519:9;:18;3529:7;3519:18;;;;;;;;;;;;;;;;3512:25;;3419:125;;;:::o;1824:101:0:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;1483:25:5:-;;;;:::o;1201:85:0:-;1247:7;1273:6;;;;;;;;;;;1266:13;;1201:85;:::o;2369:102:1:-;2425:13;2457:7;2450:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2369:102;:::o;4909:225:5:-;1094:13:0;:11;:13::i;:::-;5016:9:5::1;5011:116;5035:9;;:16;;5031:1;:20;5011:116;;;5100:15;5073:10;:24;5084:9;;5094:1;5084:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5073:24;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;5053:3;;;;;:::i;:::-;;;;5011:116;;;;4909:225:::0;;;:::o;6575:427:1:-;6668:4;6684:13;6700:12;:10;:12::i;:::-;6684:28;;6722:24;6749:25;6759:5;6766:7;6749:9;:25::i;:::-;6722:52;;6812:15;6792:16;:35;;6784:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;:::-;6991:4;6984:11;;;;6575:427;;;;:::o;1389:24:5:-;;;;:::o;1314:29::-;;;;:::o;3740:189:1:-;3819:4;3835:13;3851:12;:10;:12::i;:::-;3835:28;;3873;3883:5;3890:2;3894:6;3873:9;:28::i;:::-;3918:4;3911:11;;;3740:189;;;;:::o;1288:19:5:-;;;;;;;;;;;;;:::o;1350:32::-;;;;:::o;6234:149::-;1094:13:0;:11;:13::i;:::-;6306:6:5::1;6300:22;;;6323:10;6342:6;6335:24;;;6368:4;6335:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6300:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6234:149:::0;:::o;3987::1:-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;1615:22:5:-;;;;;;;;;;;;;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;;;2154:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;640:96:4:-;693:7;719:10;712:17;;640:96;:::o;10457:340:1:-;10575:1;10558:19;;:5;:19;;;;10550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:1;10636:21;;:7;:21;;;;10628:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10737:6;10707:11;:18;10719:5;10707:18;;;;;;;;;;;;;;;:27;10726:7;10707:27;;;;;;;;;;;;;;;:36;;;;10774:7;10758:32;;10767:5;10758:32;;;10783:6;10758:32;;;;;;:::i;:::-;;;;;;;;10457:340;;;:::o;1359:130:0:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;2261:1482:5:-;2360:10;:14;2371:2;2360:14;;;;;;;;;;;;;;;;;;;;;;;;;2359:15;:36;;;;;2379:10;:16;2390:4;2379:16;;;;;;;;;;;;;;;;;;;;;;;;;2378:17;2359:36;2351:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;2444:2;2427:19;;:13;;;;;;;;;;;:19;;;:38;;;;;2464:1;2450:10;;:15;2427:38;2424:98;;;2495:15;2482:10;:28;;;;2424:98;2545:7;:5;:7::i;:::-;2537:15;;:4;:15;;;:47;;;;2574:10;;;;;;;;;;;2566:18;;:4;:18;;;2537:47;:84;;;;2613:7;;;;;;;;;;;2597:24;;:4;:24;;;2537:84;:110;;;;2640:7;:5;:7::i;:::-;2634:13;;:2;:13;;;2537:110;:140;;;;2667:10;;;;;;;;;;;2661:16;;:2;:16;;;2537:140;:175;;;;2704:7;;;;;;;;;;;2690:22;;:2;:22;;;2537:175;:209;;;;2741:4;2725:21;;:4;:21;;;2537:209;:241;;;;2773:4;2759:19;;:2;:19;;;2537:241;2534:327;;;2795:33;2811:4;2817:2;2821:6;2795:15;:33::i;:::-;2843:7;;2534:327;2894:4;2876:22;;:13;;;;;;;;;;;:22;;;:46;;;;2920:2;2902:20;;:13;;;;;;;;;;;:20;;;2876:46;2873:819;;;2942:6;;;;;;;;;;;:32;;;;;2970:4;2952:22;;:13;;;;;;;;;;;:22;;;2942:32;:58;;;;;2998:2;2978:22;;2986:7;;;;;;;;;;;2978:22;;;;2942:58;2939:153;;;3055:11;;3038:13;3048:2;3038:9;:13::i;:::-;3029:6;:22;;;;:::i;:::-;3028:38;3020:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2939:153;3106:11;3120:1;3106:15;;3171:11;;3158:10;;:24;;;;:::i;:::-;3139:15;:44;3136:144;;;3209:4;;3203:10;;3136:144;;;3260:4;;3254:10;;3136:144;3296:9;3323:3;3314:6;3308:3;:12;;;;:::i;:::-;:18;;;;:::i;:::-;3296:30;;3344:7;;;;;;;;;;;3341:267;;;3372:39;3388:4;3402;3409:1;3372:15;:39::i;:::-;3434:6;;;;;;;;;;;3433:7;:31;;;;;3462:2;3444:20;;:13;;;;;;;;;;;:20;;;3433:31;3430:88;;;3489:9;:7;:9::i;:::-;3430:88;3341:267;;;3556:36;3572:4;3578:10;;;;;;;;;;;3590:1;3556:15;:36::i;:::-;3341:267;3622:37;3638:4;3644:2;3657:1;3648:6;:10;;;;:::i;:::-;3622:15;:37::i;:::-;3674:7;;;;2873:819;3702:33;3718:4;3724:2;3728:6;3702:15;:33::i;:::-;2261:1482;;;;:::o;11078:411:1:-;11178:24;11205:25;11215:5;11222:7;11205:9;:25::i;:::-;11178:52;;11264:17;11244:16;:37;11240:243;;11325:6;11305:16;:26;;11297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11240:243;11168:321;11078:411;;;:::o;2426:187:0:-;2499:16;2518:6;;;;;;;;;;;2499:25;;2543:8;2534:6;;:17;;;;;;;;;;;;;;;;;;2597:8;2566:40;;2587:8;2566:40;;;;;;;;;;;;2489:124;2426:187;:::o;7456:788:1:-;7568:1;7552:18;;:4;:18;;;;7544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7644:1;7630:16;;:2;:16;;;;7622:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:38;7718:4;7724:2;7728:6;7697:20;:38::i;:::-;7746:19;7768:9;:15;7778:4;7768:15;;;;;;;;;;;;;;;;7746:37;;7816:6;7801:11;:21;;7793:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7931:6;7917:11;:20;7899:9;:15;7909:4;7899:15;;;;;;;;;;;;;;;:38;;;;8131:6;8114:9;:13;8124:2;8114:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;8178:2;8163:26;;8172:4;8163:26;;;8182:6;8163:26;;;;;;:::i;:::-;;;;;;;;8200:37;8220:4;8226:2;8230:6;8200:19;:37::i;:::-;7534:710;7456:788;;;:::o;3875:388:5:-;3818:4;3809:6;;:13;;;;;;;;;;;;;;;;;;3925:15:::1;3943:24;3961:4;3943:9;:24::i;:::-;3925:42;;3978:21;4016:1;4002:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3978:40;;4042:10;;4032:7;:20;4029:227;;;4087:4;4069;4074:1;4069:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4117:4;;;;;;;;;;;4107;4112:1;4107:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;4136:7;;;;;;;;;;;:61;;;4198:7;4207:1;4210:4;4216:10;;;;;;;;;;;4228:15;4136:108;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4029:227;3914:349;;3854:5:::0;3845:6;;:14;;;;;;;;;;;;;;;;;;3875:388::o;12073:91:1:-;;;;:::o;12752:90::-;;;;:::o;7:139:6:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;169:568::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:122;;310:79;;:::i;:::-;269:122;423:6;410:20;400:30;;453:18;445:6;442:30;439:117;;;475:79;;:::i;:::-;439:117;589:4;581:6;577:17;565:29;;643:3;635:4;627:6;623:17;613:8;609:32;606:41;603:128;;;650:79;;:::i;:::-;603:128;169:568;;;;;:::o;760:::-;833:8;843:6;893:3;886:4;878:6;874:17;870:27;860:122;;901:79;;:::i;:::-;860:122;1014:6;1001:20;991:30;;1044:18;1036:6;1033:30;1030:117;;;1066:79;;:::i;:::-;1030:117;1180:4;1172:6;1168:17;1156:29;;1234:3;1226:4;1218:6;1214:17;1204:8;1200:32;1197:41;1194:128;;;1241:79;;:::i;:::-;1194:128;760:568;;;;;:::o;1334:133::-;1377:5;1415:6;1402:20;1393:29;;1431:30;1455:5;1431:30;:::i;:::-;1334:133;;;;:::o;1473:137::-;1527:5;1558:6;1552:13;1543:22;;1574:30;1598:5;1574:30;:::i;:::-;1473:137;;;;:::o;1616:139::-;1662:5;1700:6;1687:20;1678:29;;1716:33;1743:5;1716:33;:::i;:::-;1616:139;;;;:::o;1761:143::-;1818:5;1849:6;1843:13;1834:22;;1865:33;1892:5;1865:33;:::i;:::-;1761:143;;;;:::o;1910:329::-;1969:6;2018:2;2006:9;1997:7;1993:23;1989:32;1986:119;;;2024:79;;:::i;:::-;1986:119;2144:1;2169:53;2214:7;2205:6;2194:9;2190:22;2169:53;:::i;:::-;2159:63;;2115:117;1910:329;;;;:::o;2245:474::-;2313:6;2321;2370:2;2358:9;2349:7;2345:23;2341:32;2338:119;;;2376:79;;:::i;:::-;2338:119;2496:1;2521:53;2566:7;2557:6;2546:9;2542:22;2521:53;:::i;:::-;2511:63;;2467:117;2623:2;2649:53;2694:7;2685:6;2674:9;2670:22;2649:53;:::i;:::-;2639:63;;2594:118;2245:474;;;;;:::o;2725:619::-;2802:6;2810;2818;2867:2;2855:9;2846:7;2842:23;2838:32;2835:119;;;2873:79;;:::i;:::-;2835:119;2993:1;3018:53;3063:7;3054:6;3043:9;3039:22;3018:53;:::i;:::-;3008:63;;2964:117;3120:2;3146:53;3191:7;3182:6;3171:9;3167:22;3146:53;:::i;:::-;3136:63;;3091:118;3248:2;3274:53;3319:7;3310:6;3299:9;3295:22;3274:53;:::i;:::-;3264:63;;3219:118;2725:619;;;;;:::o;3350:468::-;3415:6;3423;3472:2;3460:9;3451:7;3447:23;3443:32;3440:119;;;3478:79;;:::i;:::-;3440:119;3598:1;3623:53;3668:7;3659:6;3648:9;3644:22;3623:53;:::i;:::-;3613:63;;3569:117;3725:2;3751:50;3793:7;3784:6;3773:9;3769:22;3751:50;:::i;:::-;3741:60;;3696:115;3350:468;;;;;:::o;3824:474::-;3892:6;3900;3949:2;3937:9;3928:7;3924:23;3920:32;3917:119;;;3955:79;;:::i;:::-;3917:119;4075:1;4100:53;4145:7;4136:6;4125:9;4121:22;4100:53;:::i;:::-;4090:63;;4046:117;4202:2;4228:53;4273:7;4264:6;4253:9;4249:22;4228:53;:::i;:::-;4218:63;;4173:118;3824:474;;;;;:::o;4304:934::-;4426:6;4434;4442;4450;4499:2;4487:9;4478:7;4474:23;4470:32;4467:119;;;4505:79;;:::i;:::-;4467:119;4653:1;4642:9;4638:17;4625:31;4683:18;4675:6;4672:30;4669:117;;;4705:79;;:::i;:::-;4669:117;4818:80;4890:7;4881:6;4870:9;4866:22;4818:80;:::i;:::-;4800:98;;;;4596:312;4975:2;4964:9;4960:18;4947:32;5006:18;4998:6;4995:30;4992:117;;;5028:79;;:::i;:::-;4992:117;5141:80;5213:7;5204:6;5193:9;5189:22;5141:80;:::i;:::-;5123:98;;;;4918:313;4304:934;;;;;;;:::o;5244:698::-;5336:6;5344;5352;5401:2;5389:9;5380:7;5376:23;5372:32;5369:119;;;5407:79;;:::i;:::-;5369:119;5555:1;5544:9;5540:17;5527:31;5585:18;5577:6;5574:30;5571:117;;;5607:79;;:::i;:::-;5571:117;5720:80;5792:7;5783:6;5772:9;5768:22;5720:80;:::i;:::-;5702:98;;;;5498:312;5849:2;5875:50;5917:7;5908:6;5897:9;5893:22;5875:50;:::i;:::-;5865:60;;5820:115;5244:698;;;;;:::o;5948:704::-;6043:6;6051;6059;6108:2;6096:9;6087:7;6083:23;6079:32;6076:119;;;6114:79;;:::i;:::-;6076:119;6262:1;6251:9;6247:17;6234:31;6292:18;6284:6;6281:30;6278:117;;;6314:79;;:::i;:::-;6278:117;6427:80;6499:7;6490:6;6479:9;6475:22;6427:80;:::i;:::-;6409:98;;;;6205:312;6556:2;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6527:118;5948:704;;;;;:::o;6658:323::-;6714:6;6763:2;6751:9;6742:7;6738:23;6734:32;6731:119;;;6769:79;;:::i;:::-;6731:119;6889:1;6914:50;6956:7;6947:6;6936:9;6932:22;6914:50;:::i;:::-;6904:60;;6860:114;6658:323;;;;:::o;6987:345::-;7054:6;7103:2;7091:9;7082:7;7078:23;7074:32;7071:119;;;7109:79;;:::i;:::-;7071:119;7229:1;7254:61;7307:7;7298:6;7287:9;7283:22;7254:61;:::i;:::-;7244:71;;7200:125;6987:345;;;;:::o;7338:468::-;7403:6;7411;7460:2;7448:9;7439:7;7435:23;7431:32;7428:119;;;7466:79;;:::i;:::-;7428:119;7586:1;7611:50;7653:7;7644:6;7633:9;7629:22;7611:50;:::i;:::-;7601:60;;7557:114;7710:2;7736:53;7781:7;7772:6;7761:9;7757:22;7736:53;:::i;:::-;7726:63;;7681:118;7338:468;;;;;:::o;7812:329::-;7871:6;7920:2;7908:9;7899:7;7895:23;7891:32;7888:119;;;7926:79;;:::i;:::-;7888:119;8046:1;8071:53;8116:7;8107:6;8096:9;8092:22;8071:53;:::i;:::-;8061:63;;8017:117;7812:329;;;;:::o;8147:351::-;8217:6;8266:2;8254:9;8245:7;8241:23;8237:32;8234:119;;;8272:79;;:::i;:::-;8234:119;8392:1;8417:64;8473:7;8464:6;8453:9;8449:22;8417:64;:::i;:::-;8407:74;;8363:128;8147:351;;;;:::o;8504:474::-;8572:6;8580;8629:2;8617:9;8608:7;8604:23;8600:32;8597:119;;;8635:79;;:::i;:::-;8597:119;8755:1;8780:53;8825:7;8816:6;8805:9;8801:22;8780:53;:::i;:::-;8770:63;;8726:117;8882:2;8908:53;8953:7;8944:6;8933:9;8929:22;8908:53;:::i;:::-;8898:63;;8853:118;8504:474;;;;;:::o;8984:179::-;9053:10;9074:46;9116:3;9108:6;9074:46;:::i;:::-;9152:4;9147:3;9143:14;9129:28;;8984:179;;;;:::o;9169:108::-;9246:24;9264:5;9246:24;:::i;:::-;9241:3;9234:37;9169:108;;:::o;9283:118::-;9370:24;9388:5;9370:24;:::i;:::-;9365:3;9358:37;9283:118;;:::o;9437:732::-;9556:3;9585:54;9633:5;9585:54;:::i;:::-;9655:86;9734:6;9729:3;9655:86;:::i;:::-;9648:93;;9765:56;9815:5;9765:56;:::i;:::-;9844:7;9875:1;9860:284;9885:6;9882:1;9879:13;9860:284;;;9961:6;9955:13;9988:63;10047:3;10032:13;9988:63;:::i;:::-;9981:70;;10074:60;10127:6;10074:60;:::i;:::-;10064:70;;9920:224;9907:1;9904;9900:9;9895:14;;9860:284;;;9864:14;10160:3;10153:10;;9561:608;;;9437:732;;;;:::o;10175:109::-;10256:21;10271:5;10256:21;:::i;:::-;10251:3;10244:34;10175:109;;:::o;10290:161::-;10392:52;10438:5;10392:52;:::i;:::-;10387:3;10380:65;10290:161;;:::o;10457:147::-;10552:45;10591:5;10552:45;:::i;:::-;10547:3;10540:58;10457:147;;:::o;10610:364::-;10698:3;10726:39;10759:5;10726:39;:::i;:::-;10781:71;10845:6;10840:3;10781:71;:::i;:::-;10774:78;;10861:52;10906:6;10901:3;10894:4;10887:5;10883:16;10861:52;:::i;:::-;10938:29;10960:6;10938:29;:::i;:::-;10933:3;10929:39;10922:46;;10702:272;10610:364;;;;:::o;10980:366::-;11122:3;11143:67;11207:2;11202:3;11143:67;:::i;:::-;11136:74;;11219:93;11308:3;11219:93;:::i;:::-;11337:2;11332:3;11328:12;11321:19;;10980:366;;;:::o;11352:::-;11494:3;11515:67;11579:2;11574:3;11515:67;:::i;:::-;11508:74;;11591:93;11680:3;11591:93;:::i;:::-;11709:2;11704:3;11700:12;11693:19;;11352:366;;;:::o;11724:::-;11866:3;11887:67;11951:2;11946:3;11887:67;:::i;:::-;11880:74;;11963:93;12052:3;11963:93;:::i;:::-;12081:2;12076:3;12072:12;12065:19;;11724:366;;;:::o;12096:::-;12238:3;12259:67;12323:2;12318:3;12259:67;:::i;:::-;12252:74;;12335:93;12424:3;12335:93;:::i;:::-;12453:2;12448:3;12444:12;12437:19;;12096:366;;;:::o;12468:::-;12610:3;12631:67;12695:2;12690:3;12631:67;:::i;:::-;12624:74;;12707:93;12796:3;12707:93;:::i;:::-;12825:2;12820:3;12816:12;12809:19;;12468:366;;;:::o;12840:::-;12982:3;13003:67;13067:2;13062:3;13003:67;:::i;:::-;12996:74;;13079:93;13168:3;13079:93;:::i;:::-;13197:2;13192:3;13188:12;13181:19;;12840:366;;;:::o;13212:::-;13354:3;13375:67;13439:2;13434:3;13375:67;:::i;:::-;13368:74;;13451:93;13540:3;13451:93;:::i;:::-;13569:2;13564:3;13560:12;13553:19;;13212:366;;;:::o;13584:365::-;13726:3;13747:66;13811:1;13806:3;13747:66;:::i;:::-;13740:73;;13822:93;13911:3;13822:93;:::i;:::-;13940:2;13935:3;13931:12;13924:19;;13584:365;;;:::o;13955:366::-;14097:3;14118:67;14182:2;14177:3;14118:67;:::i;:::-;14111:74;;14194:93;14283:3;14194:93;:::i;:::-;14312:2;14307:3;14303:12;14296:19;;13955:366;;;:::o;14327:::-;14469:3;14490:67;14554:2;14549:3;14490:67;:::i;:::-;14483:74;;14566:93;14655:3;14566:93;:::i;:::-;14684:2;14679:3;14675:12;14668:19;;14327:366;;;:::o;14699:::-;14841:3;14862:67;14926:2;14921:3;14862:67;:::i;:::-;14855:74;;14938:93;15027:3;14938:93;:::i;:::-;15056:2;15051:3;15047:12;15040:19;;14699:366;;;:::o;15071:::-;15213:3;15234:67;15298:2;15293:3;15234:67;:::i;:::-;15227:74;;15310:93;15399:3;15310:93;:::i;:::-;15428:2;15423:3;15419:12;15412:19;;15071:366;;;:::o;15443:::-;15585:3;15606:67;15670:2;15665:3;15606:67;:::i;:::-;15599:74;;15682:93;15771:3;15682:93;:::i;:::-;15800:2;15795:3;15791:12;15784:19;;15443:366;;;:::o;15815:::-;15957:3;15978:67;16042:2;16037:3;15978:67;:::i;:::-;15971:74;;16054:93;16143:3;16054:93;:::i;:::-;16172:2;16167:3;16163:12;16156:19;;15815:366;;;:::o;16187:::-;16329:3;16350:67;16414:2;16409:3;16350:67;:::i;:::-;16343:74;;16426:93;16515:3;16426:93;:::i;:::-;16544:2;16539:3;16535:12;16528:19;;16187:366;;;:::o;16559:118::-;16646:24;16664:5;16646:24;:::i;:::-;16641:3;16634:37;16559:118;;:::o;16683:112::-;16766:22;16782:5;16766:22;:::i;:::-;16761:3;16754:35;16683:112;;:::o;16801:222::-;16894:4;16932:2;16921:9;16917:18;16909:26;;16945:71;17013:1;17002:9;16998:17;16989:6;16945:71;:::i;:::-;16801:222;;;;:::o;17029:332::-;17150:4;17188:2;17177:9;17173:18;17165:26;;17201:71;17269:1;17258:9;17254:17;17245:6;17201:71;:::i;:::-;17282:72;17350:2;17339:9;17335:18;17326:6;17282:72;:::i;:::-;17029:332;;;;;:::o;17367:210::-;17454:4;17492:2;17481:9;17477:18;17469:26;;17505:65;17567:1;17556:9;17552:17;17543:6;17505:65;:::i;:::-;17367:210;;;;:::o;17583:252::-;17691:4;17729:2;17718:9;17714:18;17706:26;;17742:86;17825:1;17814:9;17810:17;17801:6;17742:86;:::i;:::-;17583:252;;;;:::o;17841:313::-;17954:4;17992:2;17981:9;17977:18;17969:26;;18041:9;18035:4;18031:20;18027:1;18016:9;18012:17;18005:47;18069:78;18142:4;18133:6;18069:78;:::i;:::-;18061:86;;17841:313;;;;:::o;18160:419::-;18326:4;18364:2;18353:9;18349:18;18341:26;;18413:9;18407:4;18403:20;18399:1;18388:9;18384:17;18377:47;18441:131;18567:4;18441:131;:::i;:::-;18433:139;;18160:419;;;:::o;18585:::-;18751:4;18789:2;18778:9;18774:18;18766:26;;18838:9;18832:4;18828:20;18824:1;18813:9;18809:17;18802:47;18866:131;18992:4;18866:131;:::i;:::-;18858:139;;18585:419;;;:::o;19010:::-;19176:4;19214:2;19203:9;19199:18;19191:26;;19263:9;19257:4;19253:20;19249:1;19238:9;19234:17;19227:47;19291:131;19417:4;19291:131;:::i;:::-;19283:139;;19010:419;;;:::o;19435:::-;19601:4;19639:2;19628:9;19624:18;19616:26;;19688:9;19682:4;19678:20;19674:1;19663:9;19659:17;19652:47;19716:131;19842:4;19716:131;:::i;:::-;19708:139;;19435:419;;;:::o;19860:::-;20026:4;20064:2;20053:9;20049:18;20041:26;;20113:9;20107:4;20103:20;20099:1;20088:9;20084:17;20077:47;20141:131;20267:4;20141:131;:::i;:::-;20133:139;;19860:419;;;:::o;20285:::-;20451:4;20489:2;20478:9;20474:18;20466:26;;20538:9;20532:4;20528:20;20524:1;20513:9;20509:17;20502:47;20566:131;20692:4;20566:131;:::i;:::-;20558:139;;20285:419;;;:::o;20710:::-;20876:4;20914:2;20903:9;20899:18;20891:26;;20963:9;20957:4;20953:20;20949:1;20938:9;20934:17;20927:47;20991:131;21117:4;20991:131;:::i;:::-;20983:139;;20710:419;;;:::o;21135:::-;21301:4;21339:2;21328:9;21324:18;21316:26;;21388:9;21382:4;21378:20;21374:1;21363:9;21359:17;21352:47;21416:131;21542:4;21416:131;:::i;:::-;21408:139;;21135:419;;;:::o;21560:::-;21726:4;21764:2;21753:9;21749:18;21741:26;;21813:9;21807:4;21803:20;21799:1;21788:9;21784:17;21777:47;21841:131;21967:4;21841:131;:::i;:::-;21833:139;;21560:419;;;:::o;21985:::-;22151:4;22189:2;22178:9;22174:18;22166:26;;22238:9;22232:4;22228:20;22224:1;22213:9;22209:17;22202:47;22266:131;22392:4;22266:131;:::i;:::-;22258:139;;21985:419;;;:::o;22410:::-;22576:4;22614:2;22603:9;22599:18;22591:26;;22663:9;22657:4;22653:20;22649:1;22638:9;22634:17;22627:47;22691:131;22817:4;22691:131;:::i;:::-;22683:139;;22410:419;;;:::o;22835:::-;23001:4;23039:2;23028:9;23024:18;23016:26;;23088:9;23082:4;23078:20;23074:1;23063:9;23059:17;23052:47;23116:131;23242:4;23116:131;:::i;:::-;23108:139;;22835:419;;;:::o;23260:::-;23426:4;23464:2;23453:9;23449:18;23441:26;;23513:9;23507:4;23503:20;23499:1;23488:9;23484:17;23477:47;23541:131;23667:4;23541:131;:::i;:::-;23533:139;;23260:419;;;:::o;23685:::-;23851:4;23889:2;23878:9;23874:18;23866:26;;23938:9;23932:4;23928:20;23924:1;23913:9;23909:17;23902:47;23966:131;24092:4;23966:131;:::i;:::-;23958:139;;23685:419;;;:::o;24110:::-;24276:4;24314:2;24303:9;24299:18;24291:26;;24363:9;24357:4;24353:20;24349:1;24338:9;24334:17;24327:47;24391:131;24517:4;24391:131;:::i;:::-;24383:139;;24110:419;;;:::o;24535:222::-;24628:4;24666:2;24655:9;24651:18;24643:26;;24679:71;24747:1;24736:9;24732:17;24723:6;24679:71;:::i;:::-;24535:222;;;;:::o;24763:831::-;25026:4;25064:3;25053:9;25049:19;25041:27;;25078:71;25146:1;25135:9;25131:17;25122:6;25078:71;:::i;:::-;25159:80;25235:2;25224:9;25220:18;25211:6;25159:80;:::i;:::-;25286:9;25280:4;25276:20;25271:2;25260:9;25256:18;25249:48;25314:108;25417:4;25408:6;25314:108;:::i;:::-;25306:116;;25432:72;25500:2;25489:9;25485:18;25476:6;25432:72;:::i;:::-;25514:73;25582:3;25571:9;25567:19;25558:6;25514:73;:::i;:::-;24763:831;;;;;;;;:::o;25600:214::-;25689:4;25727:2;25716:9;25712:18;25704:26;;25740:67;25804:1;25793:9;25789:17;25780:6;25740:67;:::i;:::-;25600:214;;;;:::o;25901:132::-;25968:4;25991:3;25983:11;;26021:4;26016:3;26012:14;26004:22;;25901:132;;;:::o;26039:114::-;26106:6;26140:5;26134:12;26124:22;;26039:114;;;:::o;26159:99::-;26211:6;26245:5;26239:12;26229:22;;26159:99;;;:::o;26264:113::-;26334:4;26366;26361:3;26357:14;26349:22;;26264:113;;;:::o;26383:184::-;26482:11;26516:6;26511:3;26504:19;26556:4;26551:3;26547:14;26532:29;;26383:184;;;;:::o;26573:169::-;26657:11;26691:6;26686:3;26679:19;26731:4;26726:3;26722:14;26707:29;;26573:169;;;;:::o;26748:305::-;26788:3;26807:20;26825:1;26807:20;:::i;:::-;26802:25;;26841:20;26859:1;26841:20;:::i;:::-;26836:25;;26995:1;26927:66;26923:74;26920:1;26917:81;26914:107;;;27001:18;;:::i;:::-;26914:107;27045:1;27042;27038:9;27031:16;;26748:305;;;;:::o;27059:185::-;27099:1;27116:20;27134:1;27116:20;:::i;:::-;27111:25;;27150:20;27168:1;27150:20;:::i;:::-;27145:25;;27189:1;27179:35;;27194:18;;:::i;:::-;27179:35;27236:1;27233;27229:9;27224:14;;27059:185;;;;:::o;27250:348::-;27290:7;27313:20;27331:1;27313:20;:::i;:::-;27308:25;;27347:20;27365:1;27347:20;:::i;:::-;27342:25;;27535:1;27467:66;27463:74;27460:1;27457:81;27452:1;27445:9;27438:17;27434:105;27431:131;;;27542:18;;:::i;:::-;27431:131;27590:1;27587;27583:9;27572:20;;27250:348;;;;:::o;27604:191::-;27644:4;27664:20;27682:1;27664:20;:::i;:::-;27659:25;;27698:20;27716:1;27698:20;:::i;:::-;27693:25;;27737:1;27734;27731:8;27728:34;;;27742:18;;:::i;:::-;27728:34;27787:1;27784;27780:9;27772:17;;27604:191;;;;:::o;27801:96::-;27838:7;27867:24;27885:5;27867:24;:::i;:::-;27856:35;;27801:96;;;:::o;27903:90::-;27937:7;27980:5;27973:13;27966:21;27955:32;;27903:90;;;:::o;27999:126::-;28036:7;28076:42;28069:5;28065:54;28054:65;;27999:126;;;:::o;28131:77::-;28168:7;28197:5;28186:16;;28131:77;;;:::o;28214:86::-;28249:7;28289:4;28282:5;28278:16;28267:27;;28214:86;;;:::o;28306:141::-;28371:9;28404:37;28435:5;28404:37;:::i;:::-;28391:50;;28306:141;;;:::o;28453:121::-;28511:9;28544:24;28562:5;28544:24;:::i;:::-;28531:37;;28453:121;;;:::o;28580:126::-;28630:9;28663:37;28694:5;28663:37;:::i;:::-;28650:50;;28580:126;;;:::o;28712:113::-;28762:9;28795:24;28813:5;28795:24;:::i;:::-;28782:37;;28712:113;;;:::o;28831:307::-;28899:1;28909:113;28923:6;28920:1;28917:13;28909:113;;;29008:1;29003:3;28999:11;28993:18;28989:1;28984:3;28980:11;28973:39;28945:2;28942:1;28938:10;28933:15;;28909:113;;;29040:6;29037:1;29034:13;29031:101;;;29120:1;29111:6;29106:3;29102:16;29095:27;29031:101;28880:258;28831:307;;;:::o;29144:320::-;29188:6;29225:1;29219:4;29215:12;29205:22;;29272:1;29266:4;29262:12;29293:18;29283:81;;29349:4;29341:6;29337:17;29327:27;;29283:81;29411:2;29403:6;29400:14;29380:18;29377:38;29374:84;;;29430:18;;:::i;:::-;29374:84;29195:269;29144:320;;;:::o;29470:233::-;29509:3;29532:24;29550:5;29532:24;:::i;:::-;29523:33;;29578:66;29571:5;29568:77;29565:103;;;29648:18;;:::i;:::-;29565:103;29695:1;29688:5;29684:13;29677:20;;29470:233;;;:::o;29709:180::-;29757:77;29754:1;29747:88;29854:4;29851:1;29844:15;29878:4;29875:1;29868:15;29895:180;29943:77;29940:1;29933:88;30040:4;30037:1;30030:15;30064:4;30061:1;30054:15;30081:180;30129:77;30126:1;30119:88;30226:4;30223:1;30216:15;30250:4;30247:1;30240:15;30267:180;30315:77;30312:1;30305:88;30412:4;30409:1;30402:15;30436:4;30433:1;30426:15;30453:180;30501:77;30498:1;30491:88;30598:4;30595:1;30588:15;30622:4;30619:1;30612:15;30639:117;30748:1;30745;30738:12;30762:117;30871:1;30868;30861:12;30885:117;30994:1;30991;30984:12;31008:117;31117:1;31114;31107:12;31131:117;31240:1;31237;31230:12;31254:102;31295:6;31346:2;31342:7;31337:2;31330:5;31326:14;31322:28;31312:38;;31254:102;;;:::o;31362:222::-;31502:34;31498:1;31490:6;31486:14;31479:58;31571:5;31566:2;31558:6;31554:15;31547:30;31362:222;:::o;31590:227::-;31730:34;31726:1;31718:6;31714:14;31707:58;31799:10;31794:2;31786:6;31782:15;31775:35;31590:227;:::o;31823:225::-;31963:34;31959:1;31951:6;31947:14;31940:58;32032:8;32027:2;32019:6;32015:15;32008:33;31823:225;:::o;32054:221::-;32194:34;32190:1;32182:6;32178:14;32171:58;32263:4;32258:2;32250:6;32246:15;32239:29;32054:221;:::o;32281:179::-;32421:31;32417:1;32409:6;32405:14;32398:55;32281:179;:::o;32466:177::-;32606:29;32602:1;32594:6;32590:14;32583:53;32466:177;:::o;32649:225::-;32789:34;32785:1;32777:6;32773:14;32766:58;32858:8;32853:2;32845:6;32841:15;32834:33;32649:225;:::o;32880:155::-;33020:7;33016:1;33008:6;33004:14;32997:31;32880:155;:::o;33041:233::-;33181:34;33177:1;33169:6;33165:14;33158:58;33250:16;33245:2;33237:6;33233:15;33226:41;33041:233;:::o;33280:182::-;33420:34;33416:1;33408:6;33404:14;33397:58;33280:182;:::o;33468:224::-;33608:34;33604:1;33596:6;33592:14;33585:58;33677:7;33672:2;33664:6;33660:15;33653:32;33468:224;:::o;33698:232::-;33838:34;33834:1;33826:6;33822:14;33815:58;33907:15;33902:2;33894:6;33890:15;33883:40;33698:232;:::o;33936:223::-;34076:34;34072:1;34064:6;34060:14;34053:58;34145:6;34140:2;34132:6;34128:15;34121:31;33936:223;:::o;34165:224::-;34305:34;34301:1;34293:6;34289:14;34282:58;34374:7;34369:2;34361:6;34357:15;34350:32;34165:224;:::o;34395:161::-;34535:13;34531:1;34523:6;34519:14;34512:37;34395:161;:::o;34562:122::-;34635:24;34653:5;34635:24;:::i;:::-;34628:5;34625:35;34615:63;;34674:1;34671;34664:12;34615:63;34562:122;:::o;34690:116::-;34760:21;34775:5;34760:21;:::i;:::-;34753:5;34750:32;34740:60;;34796:1;34793;34786:12;34740:60;34690:116;:::o;34812:122::-;34885:24;34903:5;34885:24;:::i;:::-;34878:5;34875:35;34865:63;;34924:1;34921;34914:12;34865:63;34812:122;:::o

Swarm Source

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