ETH Price: $3,698.13 (+1.09%)

Token

ERC-20: Vin Diesel (VIND)
 

Overview

Max Total Supply

10,000,000,000 VIND

Holders

260

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.286427636286319128 VIND

Value
$0.00
0x56ff5f22449243db3344f14685cdcffee35861ee
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:
VIND

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 6 : VIND.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

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


contract VIND is ERC20,Ownable {
    IRouter public router;
    address public uniswapV2Pair;
    bool public limited;
    uint256 public maxHoldingAmount;
    uint256 public minHoldingAmount;
    mapping(address => bool) public blacklists;
    mapping(address => bool) public excludeLimited;


    constructor() ERC20("Vin Diesel", "VIND") {
        _mint(msg.sender, 100000000000 * 10**18);

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        uniswapV2Pair = _pair;
        limited = true;
        maxHoldingAmount = 100000000 * 10**18;
        minHoldingAmount = 0;
    }

    function burn(uint256 amount) public {
        _burn(msg.sender, amount * 10**18);
    }

    function _beforeTokenTransfer(address from,address to,uint256 amount) internal override virtual {
        if (blacklists[from] || blacklists[to]) {
            revert("Blacklisted address");
        }

        if (to == owner() || from == owner()) {
            return;
        }

        if (limited && from == uniswapV2Pair && !excludeLimited[to]) {
            require(balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid");
        }
    }

    function setLimited(bool _limited, uint256 _max, uint256 min) external onlyOwner {
        limited = _limited;
        maxHoldingAmount = _max;
        minHoldingAmount = min;
    }

    function setExcludeLimited(address _address, bool _excludeLimited) external onlyOwner {
        excludeLimited[_address] = _excludeLimited;
    }

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

    function settblacklist(address[] memory accounts, bool _isBlacklisting) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            blacklists[accounts[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);
        }
    }
}

File 2 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 3 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 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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"excludeLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_excludeLimited","type":"bool"}],"name":"setExcludeLimited","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_max","type":"uint256"},{"internalType":"uint256","name":"min","type":"uint256"}],"name":"setLimited","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"settblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f56696e2044696573656c000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f56494e440000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000b22565b508060049081620000a1919062000b22565b505050620000c4620000b86200032460201b60201c565b6200032c60201b60201c565b620000e3336c01431e0fae6d7217caa0000000620003f260201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000170919062000c73565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000c73565b6040518363ffffffff1660e01b81526004016200021d92919062000cb6565b6020604051808303816000875af11580156200023d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000263919062000c73565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760146101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e40000006008819055506000600981905550505062000ee2565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000464576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200045b9062000d44565b60405180910390fd5b62000478600083836200055f60201b60201c565b80600260008282546200048c919062000d95565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200053f919062000de1565b60405180910390a36200055b600083836200083160201b60201c565b5050565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680620006015750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1562000644576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200063b9062000e4e565b60405180910390fd5b620006546200083660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480620006c85750620006996200083660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6200082c57600760149054906101000a900460ff168015620007375750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156200078e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156200082b5760085481620007a9846200086060201b60201c565b620007b5919062000d95565b11158015620007e8575060095481620007d9846200086060201b62000aa61760201c565b620007e5919062000d95565b10155b6200082a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008219062000ec0565b60405180910390fd5b5b5b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200092a57607f821691505b60208210810362000940576200093f620008e2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009aa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200096b565b620009b686836200096b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a03620009fd620009f784620009ce565b620009d8565b620009ce565b9050919050565b6000819050919050565b62000a1f83620009e2565b62000a3762000a2e8262000a0a565b84845462000978565b825550505050565b600090565b62000a4e62000a3f565b62000a5b81848462000a14565b505050565b5b8181101562000a835762000a7760008262000a44565b60018101905062000a61565b5050565b601f82111562000ad25762000a9c8162000946565b62000aa7846200095b565b8101602085101562000ab7578190505b62000acf62000ac6856200095b565b83018262000a60565b50505b505050565b600082821c905092915050565b600062000af76000198460080262000ad7565b1980831691505092915050565b600062000b12838362000ae4565b9150826002028217905092915050565b62000b2d82620008a8565b67ffffffffffffffff81111562000b495762000b48620008b3565b5b62000b55825462000911565b62000b6282828562000a87565b600060209050601f83116001811462000b9a576000841562000b85578287015190505b62000b91858262000b04565b86555062000c01565b601f19841662000baa8662000946565b60005b8281101562000bd45784890151825560018201915060208501945060208101905062000bad565b8683101562000bf4578489015162000bf0601f89168262000ae4565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c3b8262000c0e565b9050919050565b62000c4d8162000c2e565b811462000c5957600080fd5b50565b60008151905062000c6d8162000c42565b92915050565b60006020828403121562000c8c5762000c8b62000c09565b5b600062000c9c8482850162000c5c565b91505092915050565b62000cb08162000c2e565b82525050565b600060408201905062000ccd600083018562000ca5565b62000cdc602083018462000ca5565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000d2c601f8362000ce3565b915062000d398262000cf4565b602082019050919050565b6000602082019050818103600083015262000d5f8162000d1d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000da282620009ce565b915062000daf83620009ce565b925082820190508082111562000dca5762000dc962000d66565b5b92915050565b62000ddb81620009ce565b82525050565b600060208201905062000df8600083018462000dd0565b92915050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b600062000e3660138362000ce3565b915062000e438262000dfe565b602082019050919050565b6000602082019050818103600083015262000e698162000e27565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b600062000ea860068362000ce3565b915062000eb58262000e70565b602082019050919050565b6000602082019050818103600083015262000edb8162000e99565b9050919050565b612b558062000ef26000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063632e5442116100f9578063a457c2d711610097578063db0e2c8711610071578063db0e2c8714610509578063dd62ed3e14610525578063f2fde38b14610555578063f887ea4014610571576101c4565b8063a457c2d71461048d578063a9059cbb146104bd578063d0e0bbe5146104ed576101c4565b8063860a32ec116100d3578063860a32ec1461041557806389f9a1d3146104335780638da5cb5b1461045157806395d89b411461046f576101c4565b8063632e5442146103bf57806370a08231146103db578063715018a61461040b576101c4565b806328d5421711610166578063404e512911610140578063404e51291461033957806342966c681461035557806349bd5a5e14610371578063573cf6b51461038f576101c4565b806328d54217146102cf578063313ce567146102eb5780633950935114610309576101c4565b806318160ddd116101a257806318160ddd146102475780631ab99e12146102655780631e89d5451461028357806323b872dd1461029f576101c4565b806306fdde03146101c9578063095ea7b3146101e757806316c0212914610217575b600080fd5b6101d161058f565b6040516101de9190611988565b60405180910390f35b61020160048036038101906101fc9190611a52565b610621565b60405161020e9190611aad565b60405180910390f35b610231600480360381019061022c9190611ac8565b610644565b60405161023e9190611aad565b60405180910390f35b61024f610664565b60405161025c9190611b04565b60405180910390f35b61026d61066e565b60405161027a9190611b04565b60405180910390f35b61029d60048036038101906102989190611bda565b610674565b005b6102b960048036038101906102b49190611c5b565b61080c565b6040516102c69190611aad565b60405180910390f35b6102e960048036038101906102e49190611cda565b61083b565b005b6102f361089e565b6040516103009190611d36565b60405180910390f35b610323600480360381019061031e9190611a52565b6108a7565b6040516103309190611aad565b60405180910390f35b610353600480360381019061034e9190611cda565b6108de565b005b61036f600480360381019061036a9190611d51565b610941565b005b610379610961565b6040516103869190611d8d565b60405180910390f35b6103a960048036038101906103a49190611ac8565b610987565b6040516103b69190611aad565b60405180910390f35b6103d960048036038101906103d49190611da8565b6109a7565b005b6103f560048036038101906103f09190611ac8565b610aa6565b6040516104029190611b04565b60405180910390f35b610413610aee565b005b61041d610b02565b60405161042a9190611aad565b60405180910390f35b61043b610b15565b6040516104489190611b04565b60405180910390f35b610459610b1b565b6040516104669190611d8d565b60405180910390f35b610477610b45565b6040516104849190611988565b60405180910390f35b6104a760048036038101906104a29190611a52565b610bd7565b6040516104b49190611aad565b60405180910390f35b6104d760048036038101906104d29190611a52565b610c4e565b6040516104e49190611aad565b60405180910390f35b61050760048036038101906105029190611e08565b610c71565b005b610523600480360381019061051e9190611f99565b610ca6565b005b61053f600480360381019061053a9190611ff5565b610d43565b60405161054c9190611b04565b60405180910390f35b61056f600480360381019061056a9190611ac8565b610dca565b005b610579610e4d565b6040516105869190612094565b60405180910390f35b60606003805461059e906120de565b80601f01602080910402602001604051908101604052809291908181526020018280546105ca906120de565b80156106175780601f106105ec57610100808354040283529160200191610617565b820191906000526020600020905b8154815290600101906020018083116105fa57829003601f168201915b5050505050905090565b60008061062c610e73565b9050610639818585610e7b565b600191505092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60095481565b61032184849050106106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612181565b60405180910390fd5b818190508484905014610703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fa90612213565b60405180910390fd5b6000805b8585905081101561074c5783838281811061072557610724612233565b5b90506020020135826107379190612291565b91508080610744906122c5565b915050610707565b508061075733610aa6565b1015610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90612359565b60405180910390fd5b60005b85859050811015610804576107f1338787848181106107bd576107bc612233565b5b90506020020160208101906107d29190611ac8565b8686858181106107e5576107e4612233565b5b90506020020135611044565b80806107fc906122c5565b91505061079b565b505050505050565b600080610817610e73565b90506108248582856112ba565b61082f858585611044565b60019150509392505050565b610843611346565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6000806108b2610e73565b90506108d38185856108c48589610d43565b6108ce9190612291565b610e7b565b600191505092915050565b6108e6611346565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61095e33670de0b6b3a7640000836109599190612379565b6113c4565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6107d183839050106109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e59061242d565b60405180910390fd5b600083839050826109ff9190612379565b905080610a0b33610aa6565b1015610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390612359565b60405180910390fd5b60005b84849050811015610a9f57610a8c33868684818110610a7157610a70612233565b5b9050602002016020810190610a869190611ac8565b85611044565b8080610a97906122c5565b915050610a4f565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610af6611346565b610b006000611591565b565b600760149054906101000a900460ff1681565b60085481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b54906120de565b80601f0160208091040260200160405190810160405280929190818152602001828054610b80906120de565b8015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b5050505050905090565b600080610be2610e73565b90506000610bf08286610d43565b905083811015610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c906124bf565b60405180910390fd5b610c428286868403610e7b565b60019250505092915050565b600080610c59610e73565b9050610c66818585611044565b600191505092915050565b610c79611346565b82600760146101000a81548160ff0219169083151502179055508160088190555080600981905550505050565b610cae611346565b60005b8251811015610d3e5781600a6000858481518110610cd257610cd1612233565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d36906122c5565b915050610cb1565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dd2611346565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612551565b60405180910390fd5b610e4a81611591565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee1906125e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090612675565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110379190611b04565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90612707565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111990612799565b60405180910390fd5b61112d838383611657565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa9061282b565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a19190611b04565b60405180910390a36112b48484846118f3565b50505050565b60006112c68484610d43565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113405781811015611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990612897565b60405180910390fd5b61133f8484848403610e7b565b5b50505050565b61134e610e73565b73ffffffffffffffffffffffffffffffffffffffff1661136c610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612903565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90612995565b60405180910390fd5b61143f82600083611657565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90612a27565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115789190611b04565b60405180910390a361158c836000846118f3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f85750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90612a93565b60405180910390fd5b611740610b1b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806117ab575061177c610b1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6118ee57600760149054906101000a900460ff1680156118185750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561186e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118ed576008548161188084610aa6565b61188a9190612291565b111580156118ad5750600954816118a084610aa6565b6118aa9190612291565b10155b6118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e390612aff565b60405180910390fd5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611932578082015181840152602081019050611917565b60008484015250505050565b6000601f19601f8301169050919050565b600061195a826118f8565b6119648185611903565b9350611974818560208601611914565b61197d8161193e565b840191505092915050565b600060208201905081810360008301526119a2818461194f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119e9826119be565b9050919050565b6119f9816119de565b8114611a0457600080fd5b50565b600081359050611a16816119f0565b92915050565b6000819050919050565b611a2f81611a1c565b8114611a3a57600080fd5b50565b600081359050611a4c81611a26565b92915050565b60008060408385031215611a6957611a686119b4565b5b6000611a7785828601611a07565b9250506020611a8885828601611a3d565b9150509250929050565b60008115159050919050565b611aa781611a92565b82525050565b6000602082019050611ac26000830184611a9e565b92915050565b600060208284031215611ade57611add6119b4565b5b6000611aec84828501611a07565b91505092915050565b611afe81611a1c565b82525050565b6000602082019050611b196000830184611af5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611b4457611b43611b1f565b5b8235905067ffffffffffffffff811115611b6157611b60611b24565b5b602083019150836020820283011115611b7d57611b7c611b29565b5b9250929050565b60008083601f840112611b9a57611b99611b1f565b5b8235905067ffffffffffffffff811115611bb757611bb6611b24565b5b602083019150836020820283011115611bd357611bd2611b29565b5b9250929050565b60008060008060408587031215611bf457611bf36119b4565b5b600085013567ffffffffffffffff811115611c1257611c116119b9565b5b611c1e87828801611b2e565b9450945050602085013567ffffffffffffffff811115611c4157611c406119b9565b5b611c4d87828801611b84565b925092505092959194509250565b600080600060608486031215611c7457611c736119b4565b5b6000611c8286828701611a07565b9350506020611c9386828701611a07565b9250506040611ca486828701611a3d565b9150509250925092565b611cb781611a92565b8114611cc257600080fd5b50565b600081359050611cd481611cae565b92915050565b60008060408385031215611cf157611cf06119b4565b5b6000611cff85828601611a07565b9250506020611d1085828601611cc5565b9150509250929050565b600060ff82169050919050565b611d3081611d1a565b82525050565b6000602082019050611d4b6000830184611d27565b92915050565b600060208284031215611d6757611d666119b4565b5b6000611d7584828501611a3d565b91505092915050565b611d87816119de565b82525050565b6000602082019050611da26000830184611d7e565b92915050565b600080600060408486031215611dc157611dc06119b4565b5b600084013567ffffffffffffffff811115611ddf57611dde6119b9565b5b611deb86828701611b2e565b93509350506020611dfe86828701611a3d565b9150509250925092565b600080600060608486031215611e2157611e206119b4565b5b6000611e2f86828701611cc5565b9350506020611e4086828701611a3d565b9250506040611e5186828701611a3d565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e938261193e565b810181811067ffffffffffffffff82111715611eb257611eb1611e5b565b5b80604052505050565b6000611ec56119aa565b9050611ed18282611e8a565b919050565b600067ffffffffffffffff821115611ef157611ef0611e5b565b5b602082029050602081019050919050565b6000611f15611f1084611ed6565b611ebb565b90508083825260208201905060208402830185811115611f3857611f37611b29565b5b835b81811015611f615780611f4d8882611a07565b845260208401935050602081019050611f3a565b5050509392505050565b600082601f830112611f8057611f7f611b1f565b5b8135611f90848260208601611f02565b91505092915050565b60008060408385031215611fb057611faf6119b4565b5b600083013567ffffffffffffffff811115611fce57611fcd6119b9565b5b611fda85828601611f6b565b9250506020611feb85828601611cc5565b9150509250929050565b6000806040838503121561200c5761200b6119b4565b5b600061201a85828601611a07565b925050602061202b85828601611a07565b9150509250929050565b6000819050919050565b600061205a612055612050846119be565b612035565b6119be565b9050919050565b600061206c8261203f565b9050919050565b600061207e82612061565b9050919050565b61208e81612073565b82525050565b60006020820190506120a96000830184612085565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120f657607f821691505b602082108103612109576121086120af565b5b50919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b600061216b602d83611903565b91506121768261210f565b604082019050919050565b6000602082019050818103600083015261219a8161215e565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b60006121fd602883611903565b9150612208826121a1565b604082019050919050565b6000602082019050818103600083015261222c816121f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061229c82611a1c565b91506122a783611a1c565b92508282019050808211156122bf576122be612262565b5b92915050565b60006122d082611a1c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361230257612301612262565b5b600182019050919050565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b6000612343601b83611903565b915061234e8261230d565b602082019050919050565b6000602082019050818103600083015261237281612336565b9050919050565b600061238482611a1c565b915061238f83611a1c565b925082820261239d81611a1c565b915082820484148315176123b4576123b3612262565b5b5092915050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612417602e83611903565b9150612422826123bb565b604082019050919050565b600060208201905081810360008301526124468161240a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006124a9602583611903565b91506124b48261244d565b604082019050919050565b600060208201905081810360008301526124d88161249c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061253b602683611903565b9150612546826124df565b604082019050919050565b6000602082019050818103600083015261256a8161252e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125cd602483611903565b91506125d882612571565b604082019050919050565b600060208201905081810360008301526125fc816125c0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061265f602283611903565b915061266a82612603565b604082019050919050565b6000602082019050818103600083015261268e81612652565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126f1602583611903565b91506126fc82612695565b604082019050919050565b60006020820190508181036000830152612720816126e4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612783602383611903565b915061278e82612727565b604082019050919050565b600060208201905081810360008301526127b281612776565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612815602683611903565b9150612820826127b9565b604082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612881601d83611903565b915061288c8261284b565b602082019050919050565b600060208201905081810360008301526128b081612874565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ed602083611903565b91506128f8826128b7565b602082019050919050565b6000602082019050818103600083015261291c816128e0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061297f602183611903565b915061298a82612923565b604082019050919050565b600060208201905081810360008301526129ae81612972565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a11602283611903565b9150612a1c826129b5565b604082019050919050565b60006020820190508181036000830152612a4081612a04565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000612a7d601383611903565b9150612a8882612a47565b602082019050919050565b60006020820190508181036000830152612aac81612a70565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000612ae9600683611903565b9150612af482612ab3565b602082019050919050565b60006020820190508181036000830152612b1881612adc565b905091905056fea2646970667358221220132a424bbacb8e82ed82085e5bc1cad53896843e15da658794c2c471af1bf7be64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063632e5442116100f9578063a457c2d711610097578063db0e2c8711610071578063db0e2c8714610509578063dd62ed3e14610525578063f2fde38b14610555578063f887ea4014610571576101c4565b8063a457c2d71461048d578063a9059cbb146104bd578063d0e0bbe5146104ed576101c4565b8063860a32ec116100d3578063860a32ec1461041557806389f9a1d3146104335780638da5cb5b1461045157806395d89b411461046f576101c4565b8063632e5442146103bf57806370a08231146103db578063715018a61461040b576101c4565b806328d5421711610166578063404e512911610140578063404e51291461033957806342966c681461035557806349bd5a5e14610371578063573cf6b51461038f576101c4565b806328d54217146102cf578063313ce567146102eb5780633950935114610309576101c4565b806318160ddd116101a257806318160ddd146102475780631ab99e12146102655780631e89d5451461028357806323b872dd1461029f576101c4565b806306fdde03146101c9578063095ea7b3146101e757806316c0212914610217575b600080fd5b6101d161058f565b6040516101de9190611988565b60405180910390f35b61020160048036038101906101fc9190611a52565b610621565b60405161020e9190611aad565b60405180910390f35b610231600480360381019061022c9190611ac8565b610644565b60405161023e9190611aad565b60405180910390f35b61024f610664565b60405161025c9190611b04565b60405180910390f35b61026d61066e565b60405161027a9190611b04565b60405180910390f35b61029d60048036038101906102989190611bda565b610674565b005b6102b960048036038101906102b49190611c5b565b61080c565b6040516102c69190611aad565b60405180910390f35b6102e960048036038101906102e49190611cda565b61083b565b005b6102f361089e565b6040516103009190611d36565b60405180910390f35b610323600480360381019061031e9190611a52565b6108a7565b6040516103309190611aad565b60405180910390f35b610353600480360381019061034e9190611cda565b6108de565b005b61036f600480360381019061036a9190611d51565b610941565b005b610379610961565b6040516103869190611d8d565b60405180910390f35b6103a960048036038101906103a49190611ac8565b610987565b6040516103b69190611aad565b60405180910390f35b6103d960048036038101906103d49190611da8565b6109a7565b005b6103f560048036038101906103f09190611ac8565b610aa6565b6040516104029190611b04565b60405180910390f35b610413610aee565b005b61041d610b02565b60405161042a9190611aad565b60405180910390f35b61043b610b15565b6040516104489190611b04565b60405180910390f35b610459610b1b565b6040516104669190611d8d565b60405180910390f35b610477610b45565b6040516104849190611988565b60405180910390f35b6104a760048036038101906104a29190611a52565b610bd7565b6040516104b49190611aad565b60405180910390f35b6104d760048036038101906104d29190611a52565b610c4e565b6040516104e49190611aad565b60405180910390f35b61050760048036038101906105029190611e08565b610c71565b005b610523600480360381019061051e9190611f99565b610ca6565b005b61053f600480360381019061053a9190611ff5565b610d43565b60405161054c9190611b04565b60405180910390f35b61056f600480360381019061056a9190611ac8565b610dca565b005b610579610e4d565b6040516105869190612094565b60405180910390f35b60606003805461059e906120de565b80601f01602080910402602001604051908101604052809291908181526020018280546105ca906120de565b80156106175780601f106105ec57610100808354040283529160200191610617565b820191906000526020600020905b8154815290600101906020018083116105fa57829003601f168201915b5050505050905090565b60008061062c610e73565b9050610639818585610e7b565b600191505092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000600254905090565b60095481565b61032184849050106106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612181565b60405180910390fd5b818190508484905014610703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fa90612213565b60405180910390fd5b6000805b8585905081101561074c5783838281811061072557610724612233565b5b90506020020135826107379190612291565b91508080610744906122c5565b915050610707565b508061075733610aa6565b1015610798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078f90612359565b60405180910390fd5b60005b85859050811015610804576107f1338787848181106107bd576107bc612233565b5b90506020020160208101906107d29190611ac8565b8686858181106107e5576107e4612233565b5b90506020020135611044565b80806107fc906122c5565b91505061079b565b505050505050565b600080610817610e73565b90506108248582856112ba565b61082f858585611044565b60019150509392505050565b610843611346565b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006012905090565b6000806108b2610e73565b90506108d38185856108c48589610d43565b6108ce9190612291565b610e7b565b600191505092915050565b6108e6611346565b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61095e33670de0b6b3a7640000836109599190612379565b6113c4565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b6020528060005260406000206000915054906101000a900460ff1681565b6107d183839050106109ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e59061242d565b60405180910390fd5b600083839050826109ff9190612379565b905080610a0b33610aa6565b1015610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4390612359565b60405180910390fd5b60005b84849050811015610a9f57610a8c33868684818110610a7157610a70612233565b5b9050602002016020810190610a869190611ac8565b85611044565b8080610a97906122c5565b915050610a4f565b5050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610af6611346565b610b006000611591565b565b600760149054906101000a900460ff1681565b60085481565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b54906120de565b80601f0160208091040260200160405190810160405280929190818152602001828054610b80906120de565b8015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b5050505050905090565b600080610be2610e73565b90506000610bf08286610d43565b905083811015610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c906124bf565b60405180910390fd5b610c428286868403610e7b565b60019250505092915050565b600080610c59610e73565b9050610c66818585611044565b600191505092915050565b610c79611346565b82600760146101000a81548160ff0219169083151502179055508160088190555080600981905550505050565b610cae611346565b60005b8251811015610d3e5781600a6000858481518110610cd257610cd1612233565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d36906122c5565b915050610cb1565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dd2611346565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3890612551565b60405180910390fd5b610e4a81611591565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee1906125e3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5090612675565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110379190611b04565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110aa90612707565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111990612799565b60405180910390fd5b61112d838383611657565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa9061282b565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112a19190611b04565b60405180910390a36112b48484846118f3565b50505050565b60006112c68484610d43565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146113405781811015611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990612897565b60405180910390fd5b61133f8484848403610e7b565b5b50505050565b61134e610e73565b73ffffffffffffffffffffffffffffffffffffffff1661136c610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612903565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611433576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142a90612995565b60405180910390fd5b61143f82600083611657565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bc90612a27565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115789190611b04565b60405180910390a361158c836000846118f3565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116f85750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611738576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172f90612a93565b60405180910390fd5b611740610b1b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806117ab575061177c610b1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6118ee57600760149054906101000a900460ff1680156118185750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561186e5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118ed576008548161188084610aa6565b61188a9190612291565b111580156118ad5750600954816118a084610aa6565b6118aa9190612291565b10155b6118ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e390612aff565b60405180910390fd5b5b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611932578082015181840152602081019050611917565b60008484015250505050565b6000601f19601f8301169050919050565b600061195a826118f8565b6119648185611903565b9350611974818560208601611914565b61197d8161193e565b840191505092915050565b600060208201905081810360008301526119a2818461194f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119e9826119be565b9050919050565b6119f9816119de565b8114611a0457600080fd5b50565b600081359050611a16816119f0565b92915050565b6000819050919050565b611a2f81611a1c565b8114611a3a57600080fd5b50565b600081359050611a4c81611a26565b92915050565b60008060408385031215611a6957611a686119b4565b5b6000611a7785828601611a07565b9250506020611a8885828601611a3d565b9150509250929050565b60008115159050919050565b611aa781611a92565b82525050565b6000602082019050611ac26000830184611a9e565b92915050565b600060208284031215611ade57611add6119b4565b5b6000611aec84828501611a07565b91505092915050565b611afe81611a1c565b82525050565b6000602082019050611b196000830184611af5565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611b4457611b43611b1f565b5b8235905067ffffffffffffffff811115611b6157611b60611b24565b5b602083019150836020820283011115611b7d57611b7c611b29565b5b9250929050565b60008083601f840112611b9a57611b99611b1f565b5b8235905067ffffffffffffffff811115611bb757611bb6611b24565b5b602083019150836020820283011115611bd357611bd2611b29565b5b9250929050565b60008060008060408587031215611bf457611bf36119b4565b5b600085013567ffffffffffffffff811115611c1257611c116119b9565b5b611c1e87828801611b2e565b9450945050602085013567ffffffffffffffff811115611c4157611c406119b9565b5b611c4d87828801611b84565b925092505092959194509250565b600080600060608486031215611c7457611c736119b4565b5b6000611c8286828701611a07565b9350506020611c9386828701611a07565b9250506040611ca486828701611a3d565b9150509250925092565b611cb781611a92565b8114611cc257600080fd5b50565b600081359050611cd481611cae565b92915050565b60008060408385031215611cf157611cf06119b4565b5b6000611cff85828601611a07565b9250506020611d1085828601611cc5565b9150509250929050565b600060ff82169050919050565b611d3081611d1a565b82525050565b6000602082019050611d4b6000830184611d27565b92915050565b600060208284031215611d6757611d666119b4565b5b6000611d7584828501611a3d565b91505092915050565b611d87816119de565b82525050565b6000602082019050611da26000830184611d7e565b92915050565b600080600060408486031215611dc157611dc06119b4565b5b600084013567ffffffffffffffff811115611ddf57611dde6119b9565b5b611deb86828701611b2e565b93509350506020611dfe86828701611a3d565b9150509250925092565b600080600060608486031215611e2157611e206119b4565b5b6000611e2f86828701611cc5565b9350506020611e4086828701611a3d565b9250506040611e5186828701611a3d565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e938261193e565b810181811067ffffffffffffffff82111715611eb257611eb1611e5b565b5b80604052505050565b6000611ec56119aa565b9050611ed18282611e8a565b919050565b600067ffffffffffffffff821115611ef157611ef0611e5b565b5b602082029050602081019050919050565b6000611f15611f1084611ed6565b611ebb565b90508083825260208201905060208402830185811115611f3857611f37611b29565b5b835b81811015611f615780611f4d8882611a07565b845260208401935050602081019050611f3a565b5050509392505050565b600082601f830112611f8057611f7f611b1f565b5b8135611f90848260208601611f02565b91505092915050565b60008060408385031215611fb057611faf6119b4565b5b600083013567ffffffffffffffff811115611fce57611fcd6119b9565b5b611fda85828601611f6b565b9250506020611feb85828601611cc5565b9150509250929050565b6000806040838503121561200c5761200b6119b4565b5b600061201a85828601611a07565b925050602061202b85828601611a07565b9150509250929050565b6000819050919050565b600061205a612055612050846119be565b612035565b6119be565b9050919050565b600061206c8261203f565b9050919050565b600061207e82612061565b9050919050565b61208e81612073565b82525050565b60006020820190506120a96000830184612085565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120f657607f821691505b602082108103612109576121086120af565b5b50919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3530302061646472657373657300000000000000000000000000000000000000602082015250565b600061216b602d83611903565b91506121768261210f565b604082019050919050565b6000602082019050818103600083015261219a8161215e565b9050919050565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b60006121fd602883611903565b9150612208826121a1565b604082019050919050565b6000602082019050818103600083015261222c816121f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061229c82611a1c565b91506122a783611a1c565b92508282019050808211156122bf576122be612262565b5b92915050565b60006122d082611a1c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361230257612301612262565b5b600182019050919050565b7f4e6f7420656e6f75676820616d6f756e7420696e2077616c6c65740000000000600082015250565b6000612343601b83611903565b915061234e8261230d565b602082019050919050565b6000602082019050818103600083015261237281612336565b9050919050565b600061238482611a1c565b915061238f83611a1c565b925082820261239d81611a1c565b915082820484148315176123b4576123b3612262565b5b5092915050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612417602e83611903565b9150612422826123bb565b604082019050919050565b600060208201905081810360008301526124468161240a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006124a9602583611903565b91506124b48261244d565b604082019050919050565b600060208201905081810360008301526124d88161249c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061253b602683611903565b9150612546826124df565b604082019050919050565b6000602082019050818103600083015261256a8161252e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125cd602483611903565b91506125d882612571565b604082019050919050565b600060208201905081810360008301526125fc816125c0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061265f602283611903565b915061266a82612603565b604082019050919050565b6000602082019050818103600083015261268e81612652565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006126f1602583611903565b91506126fc82612695565b604082019050919050565b60006020820190508181036000830152612720816126e4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612783602383611903565b915061278e82612727565b604082019050919050565b600060208201905081810360008301526127b281612776565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612815602683611903565b9150612820826127b9565b604082019050919050565b6000602082019050818103600083015261284481612808565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612881601d83611903565b915061288c8261284b565b602082019050919050565b600060208201905081810360008301526128b081612874565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128ed602083611903565b91506128f8826128b7565b602082019050919050565b6000602082019050818103600083015261291c816128e0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061297f602183611903565b915061298a82612923565b604082019050919050565b600060208201905081810360008301526129ae81612972565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a11602283611903565b9150612a1c826129b5565b604082019050919050565b60006020820190508181036000830152612a4081612a04565b9050919050565b7f426c61636b6c6973746564206164647265737300000000000000000000000000600082015250565b6000612a7d601383611903565b9150612a8882612a47565b602082019050919050565b60006020820190508181036000830152612aac81612a70565b9050919050565b7f466f726269640000000000000000000000000000000000000000000000000000600082015250565b6000612ae9600683611903565b9150612af482612ab3565b602082019050919050565b60006020820190508181036000830152612b1881612adc565b905091905056fea2646970667358221220132a424bbacb8e82ed82085e5bc1cad53896843e15da658794c2c471af1bf7be64736f6c63430008120033

Deployed Bytecode Sourcemap

432:3178:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;635:42:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3255:106:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;597:31:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2525:631;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5203:256:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1996:147:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3104:91:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2151:135:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1191:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;498:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;684:46;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3164:443;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3419:125:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:101:0;;;:::i;:::-;;533:19:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;559:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1201:85:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2369:102:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6575:427;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3740:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1803:185:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2294:223;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3987:149:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:198:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;470:21:5;;;:::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;635:42:5:-;;;;;;;;;;;;;;;;;;;;;;:::o;3255:106:1:-;3316:7;3342:12;;3335:19;;3255:106;:::o;597:31:5:-;;;;:::o;2525:631::-;2651:3;2632:9;;:16;;:22;2624:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;2743:7;;:14;;2723:9;;:16;;:34;2715:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;2815:11;2846:9;2841:96;2865:9;;:16;;2861:1;:20;2841:96;;;2915:7;;2923:1;2915:10;;;;;;;:::i;:::-;;;;;;;;2909:3;:16;;;;:::i;:::-;2903:22;;2883:3;;;;;:::i;:::-;;;;2841:96;;;;2982:3;2957:21;2967:10;2957:9;:21::i;:::-;:28;;2949:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3033:9;3028:121;3052:9;;:16;;3048:1;:20;3028:121;;;3090:47;3100:10;3112:9;;3122:1;3112:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3126:7;;3134:1;3126:10;;;;;;;:::i;:::-;;;;;;;;3090:9;:47::i;:::-;3070:3;;;;;:::i;:::-;;;;3028:121;;;;2613:543;2525: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;1996:147:5:-;1094:13:0;:11;:13::i;:::-;2120:15:5::1;2093:14;:24;2108:8;2093:24;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;1996:147:::0;;:::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;2151:135:5:-;1094:13:0;:11;:13::i;:::-;2263:15:5::1;2240:10;:20;2251:8;2240:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;2151:135:::0;;:::o;1191:90::-;1239:34;1245:10;1266:6;1257;:15;;;;:::i;:::-;1239:5;:34::i;:::-;1191:90;:::o;498:28::-;;;;;;;;;;;;;:::o;684:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;3164:443::-;3284:4;3265:9;;:16;;:23;3257:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;3352:11;3375:9;;:16;;3366:6;:25;;;;:::i;:::-;3352:39;;3435:3;3410:21;3420:10;3410:9;:21::i;:::-;:28;;3402:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3488:9;3483:117;3507:9;;:16;;3503:1;:20;3483:117;;;3545:43;3555:10;3567:9;;3577:1;3567:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3581:6;3545:9;:43::i;:::-;3525:3;;;;;:::i;:::-;;;;3483:117;;;;3246:361;3164:443;;;:::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;533:19:5:-;;;;;;;;;;;;;:::o;559:31::-;;;;:::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;6575:427::-;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;3740:189::-;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;1803:185:5:-;1094:13:0;:11;:13::i;:::-;1905:8:5::1;1895:7;;:18;;;;;;;;;;;;;;;;;;1943:4;1924:16;:23;;;;1977:3;1958:16;:22;;;;1803:185:::0;;;:::o;2294:223::-;1094:13:0;:11;:13::i;:::-;2401:9:5::1;2396:114;2420:8;:15;2416:1;:19;2396:114;;;2483:15;2457:10;:23;2468:8;2477:1;2468:11;;;;;;;;:::i;:::-;;;;;;;;2457:23;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;2437:3;;;;;:::i;:::-;;;;2396:114;;;;2294:223:::0;;:::o;3987:149:1:-;4076:7;4102:11;:18;4114:5;4102:18;;;;;;;;;;;;;;;:27;4121:7;4102:27;;;;;;;;;;;;;;;;4095:34;;3987:149;;;;:::o;2074:198:0:-;1094:13;:11;:13::i;:::-;2182:1:::1;2162:22;;:8;:22;;::::0;2154:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;470:21:5:-;;;;;;;;;;;;;:::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;7456:788::-;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;11078:411::-;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;1359:130:0:-;1433:12;:10;:12::i;:::-;1422:23;;:7;:5;:7::i;:::-;:23;;;1414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1359:130::o;9375:659:1:-;9477:1;9458:21;;:7;:21;;;9450:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9528:49;9549:7;9566:1;9570:6;9528:20;:49::i;:::-;9588:22;9613:9;:18;9623:7;9613:18;;;;;;;;;;;;;;;;9588:43;;9667:6;9649:14;:24;;9641:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9784:6;9767:14;:23;9746:9;:18;9756:7;9746:18;;;;;;;;;;;;;;;:44;;;;9899:6;9883:12;;:22;;;;;;;;;;;9957:1;9931:37;;9940:7;9931:37;;;9961:6;9931:37;;;;;;:::i;:::-;;;;;;;;9979:48;9999:7;10016:1;10020:6;9979:19;:48::i;:::-;9440:594;9375:659;;:::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;1289:506:5:-;1400:10;:16;1411:4;1400:16;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;1420:10;:14;1431:2;1420:14;;;;;;;;;;;;;;;;;;;;;;;;;1400:34;1396:96;;;1451:29;;;;;;;;;;:::i;:::-;;;;;;;;1396:96;1514:7;:5;:7::i;:::-;1508:13;;:2;:13;;;:32;;;;1533:7;:5;:7::i;:::-;1525:15;;:4;:15;;;1508:32;1557:7;1504:71;1591:7;;;;;;;;;;;:32;;;;;1610:13;;;;;;;;;;;1602:21;;:4;:21;;;1591:32;:55;;;;;1628:14;:18;1643:2;1628:18;;;;;;;;;;;;;;;;;;;;;;;;;1627:19;1591:55;1587:201;;;1697:16;;1687:6;1671:13;1681:2;1671:9;:13::i;:::-;:22;;;;:::i;:::-;:42;;:94;;;;;1749:16;;1739:6;1717:19;1733:2;1717:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;1671:94;1663:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;1587:201;1289:506;;;;:::o;12752:90:1:-;;;;:::o;7:99:6:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:117::-;4242:1;4239;4232:12;4256:117;4365:1;4362;4355:12;4379:117;4488:1;4485;4478:12;4519:568;4592:8;4602:6;4652:3;4645:4;4637:6;4633:17;4629:27;4619:122;;4660:79;;:::i;:::-;4619:122;4773:6;4760:20;4750:30;;4803:18;4795:6;4792:30;4789:117;;;4825:79;;:::i;:::-;4789:117;4939:4;4931:6;4927:17;4915:29;;4993:3;4985:4;4977:6;4973:17;4963:8;4959:32;4956:41;4953:128;;;5000:79;;:::i;:::-;4953:128;4519:568;;;;;:::o;5110:::-;5183:8;5193:6;5243:3;5236:4;5228:6;5224:17;5220:27;5210:122;;5251:79;;:::i;:::-;5210:122;5364:6;5351:20;5341:30;;5394:18;5386:6;5383:30;5380:117;;;5416:79;;:::i;:::-;5380:117;5530:4;5522:6;5518:17;5506:29;;5584:3;5576:4;5568:6;5564:17;5554:8;5550:32;5547:41;5544:128;;;5591:79;;:::i;:::-;5544:128;5110:568;;;;;:::o;5684:934::-;5806:6;5814;5822;5830;5879:2;5867:9;5858:7;5854:23;5850:32;5847:119;;;5885:79;;:::i;:::-;5847:119;6033:1;6022:9;6018:17;6005:31;6063:18;6055:6;6052:30;6049:117;;;6085:79;;:::i;:::-;6049:117;6198:80;6270:7;6261:6;6250:9;6246:22;6198:80;:::i;:::-;6180:98;;;;5976:312;6355:2;6344:9;6340:18;6327:32;6386:18;6378:6;6375:30;6372:117;;;6408:79;;:::i;:::-;6372:117;6521:80;6593:7;6584:6;6573:9;6569:22;6521:80;:::i;:::-;6503:98;;;;6298:313;5684:934;;;;;;;:::o;6624:619::-;6701:6;6709;6717;6766:2;6754:9;6745:7;6741:23;6737:32;6734:119;;;6772:79;;:::i;:::-;6734:119;6892:1;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6863:117;7019:2;7045:53;7090:7;7081:6;7070:9;7066:22;7045:53;:::i;:::-;7035:63;;6990:118;7147:2;7173:53;7218:7;7209:6;7198:9;7194:22;7173:53;:::i;:::-;7163:63;;7118:118;6624:619;;;;;:::o;7249:116::-;7319:21;7334:5;7319:21;:::i;:::-;7312:5;7309:32;7299:60;;7355:1;7352;7345:12;7299:60;7249:116;:::o;7371:133::-;7414:5;7452:6;7439:20;7430:29;;7468:30;7492:5;7468:30;:::i;:::-;7371:133;;;;:::o;7510:468::-;7575:6;7583;7632:2;7620:9;7611:7;7607:23;7603:32;7600:119;;;7638:79;;:::i;:::-;7600:119;7758:1;7783:53;7828:7;7819:6;7808:9;7804:22;7783:53;:::i;:::-;7773:63;;7729:117;7885:2;7911:50;7953:7;7944:6;7933:9;7929:22;7911:50;:::i;:::-;7901:60;;7856:115;7510:468;;;;;:::o;7984:86::-;8019:7;8059:4;8052:5;8048:16;8037:27;;7984:86;;;:::o;8076:112::-;8159:22;8175:5;8159:22;:::i;:::-;8154:3;8147:35;8076:112;;:::o;8194:214::-;8283:4;8321:2;8310:9;8306:18;8298:26;;8334:67;8398:1;8387:9;8383:17;8374:6;8334:67;:::i;:::-;8194:214;;;;:::o;8414:329::-;8473:6;8522:2;8510:9;8501:7;8497:23;8493:32;8490:119;;;8528:79;;:::i;:::-;8490:119;8648:1;8673:53;8718:7;8709:6;8698:9;8694:22;8673:53;:::i;:::-;8663:63;;8619:117;8414:329;;;;:::o;8749:118::-;8836:24;8854:5;8836:24;:::i;:::-;8831:3;8824:37;8749:118;;:::o;8873:222::-;8966:4;9004:2;8993:9;8989:18;8981:26;;9017:71;9085:1;9074:9;9070:17;9061:6;9017:71;:::i;:::-;8873:222;;;;:::o;9101:704::-;9196:6;9204;9212;9261:2;9249:9;9240:7;9236:23;9232:32;9229:119;;;9267:79;;:::i;:::-;9229:119;9415:1;9404:9;9400:17;9387:31;9445:18;9437:6;9434:30;9431:117;;;9467:79;;:::i;:::-;9431:117;9580:80;9652:7;9643:6;9632:9;9628:22;9580:80;:::i;:::-;9562:98;;;;9358:312;9709:2;9735:53;9780:7;9771:6;9760:9;9756:22;9735:53;:::i;:::-;9725:63;;9680:118;9101:704;;;;;:::o;9811:613::-;9885:6;9893;9901;9950:2;9938:9;9929:7;9925:23;9921:32;9918:119;;;9956:79;;:::i;:::-;9918:119;10076:1;10101:50;10143:7;10134:6;10123:9;10119:22;10101:50;:::i;:::-;10091:60;;10047:114;10200:2;10226:53;10271:7;10262:6;10251:9;10247:22;10226:53;:::i;:::-;10216:63;;10171:118;10328:2;10354:53;10399:7;10390:6;10379:9;10375:22;10354:53;:::i;:::-;10344:63;;10299:118;9811:613;;;;;:::o;10430:180::-;10478:77;10475:1;10468:88;10575:4;10572:1;10565:15;10599:4;10596:1;10589:15;10616:281;10699:27;10721:4;10699:27;:::i;:::-;10691:6;10687:40;10829:6;10817:10;10814:22;10793:18;10781:10;10778:34;10775:62;10772:88;;;10840:18;;:::i;:::-;10772:88;10880:10;10876:2;10869:22;10659:238;10616:281;;:::o;10903:129::-;10937:6;10964:20;;:::i;:::-;10954:30;;10993:33;11021:4;11013:6;10993:33;:::i;:::-;10903:129;;;:::o;11038:311::-;11115:4;11205:18;11197:6;11194:30;11191:56;;;11227:18;;:::i;:::-;11191:56;11277:4;11269:6;11265:17;11257:25;;11337:4;11331;11327:15;11319:23;;11038:311;;;:::o;11372:710::-;11468:5;11493:81;11509:64;11566:6;11509:64;:::i;:::-;11493:81;:::i;:::-;11484:90;;11594:5;11623:6;11616:5;11609:21;11657:4;11650:5;11646:16;11639:23;;11710:4;11702:6;11698:17;11690:6;11686:30;11739:3;11731:6;11728:15;11725:122;;;11758:79;;:::i;:::-;11725:122;11873:6;11856:220;11890:6;11885:3;11882:15;11856:220;;;11965:3;11994:37;12027:3;12015:10;11994:37;:::i;:::-;11989:3;11982:50;12061:4;12056:3;12052:14;12045:21;;11932:144;11916:4;11911:3;11907:14;11900:21;;11856:220;;;11860:21;11474:608;;11372:710;;;;;:::o;12105:370::-;12176:5;12225:3;12218:4;12210:6;12206:17;12202:27;12192:122;;12233:79;;:::i;:::-;12192:122;12350:6;12337:20;12375:94;12465:3;12457:6;12450:4;12442:6;12438:17;12375:94;:::i;:::-;12366:103;;12182:293;12105:370;;;;:::o;12481:678::-;12571:6;12579;12628:2;12616:9;12607:7;12603:23;12599:32;12596:119;;;12634:79;;:::i;:::-;12596:119;12782:1;12771:9;12767:17;12754:31;12812:18;12804:6;12801:30;12798:117;;;12834:79;;:::i;:::-;12798:117;12939:78;13009:7;13000:6;12989:9;12985:22;12939:78;:::i;:::-;12929:88;;12725:302;13066:2;13092:50;13134:7;13125:6;13114:9;13110:22;13092:50;:::i;:::-;13082:60;;13037:115;12481:678;;;;;:::o;13165:474::-;13233:6;13241;13290:2;13278:9;13269:7;13265:23;13261:32;13258:119;;;13296:79;;:::i;:::-;13258:119;13416:1;13441:53;13486:7;13477:6;13466:9;13462:22;13441:53;:::i;:::-;13431:63;;13387:117;13543:2;13569:53;13614:7;13605:6;13594:9;13590:22;13569:53;:::i;:::-;13559:63;;13514:118;13165:474;;;;;:::o;13645:60::-;13673:3;13694:5;13687:12;;13645:60;;;:::o;13711:142::-;13761:9;13794:53;13812:34;13821:24;13839:5;13821:24;:::i;:::-;13812:34;:::i;:::-;13794:53;:::i;:::-;13781:66;;13711:142;;;:::o;13859:126::-;13909:9;13942:37;13973:5;13942:37;:::i;:::-;13929:50;;13859:126;;;:::o;13991:141::-;14056:9;14089:37;14120:5;14089:37;:::i;:::-;14076:50;;13991:141;;;:::o;14138:161::-;14240:52;14286:5;14240:52;:::i;:::-;14235:3;14228:65;14138:161;;:::o;14305:252::-;14413:4;14451:2;14440:9;14436:18;14428:26;;14464:86;14547:1;14536:9;14532:17;14523:6;14464:86;:::i;:::-;14305:252;;;;:::o;14563:180::-;14611:77;14608:1;14601:88;14708:4;14705:1;14698:15;14732:4;14729:1;14722:15;14749:320;14793:6;14830:1;14824:4;14820:12;14810:22;;14877:1;14871:4;14867:12;14898:18;14888:81;;14954:4;14946:6;14942:17;14932:27;;14888:81;15016:2;15008:6;15005:14;14985:18;14982:38;14979:84;;15035:18;;:::i;:::-;14979:84;14800:269;14749:320;;;:::o;15075:232::-;15215:34;15211:1;15203:6;15199:14;15192:58;15284:15;15279:2;15271:6;15267:15;15260:40;15075:232;:::o;15313:366::-;15455:3;15476:67;15540:2;15535:3;15476:67;:::i;:::-;15469:74;;15552:93;15641:3;15552:93;:::i;:::-;15670:2;15665:3;15661:12;15654:19;;15313:366;;;:::o;15685:419::-;15851:4;15889:2;15878:9;15874:18;15866:26;;15938:9;15932:4;15928:20;15924:1;15913:9;15909:17;15902:47;15966:131;16092:4;15966:131;:::i;:::-;15958:139;;15685:419;;;:::o;16110:227::-;16250:34;16246:1;16238:6;16234:14;16227:58;16319:10;16314:2;16306:6;16302:15;16295:35;16110:227;:::o;16343:366::-;16485:3;16506:67;16570:2;16565:3;16506:67;:::i;:::-;16499:74;;16582:93;16671:3;16582:93;:::i;:::-;16700:2;16695:3;16691:12;16684:19;;16343:366;;;:::o;16715:419::-;16881:4;16919:2;16908:9;16904:18;16896:26;;16968:9;16962:4;16958:20;16954:1;16943:9;16939:17;16932:47;16996:131;17122:4;16996:131;:::i;:::-;16988:139;;16715:419;;;:::o;17140:180::-;17188:77;17185:1;17178:88;17285:4;17282:1;17275:15;17309:4;17306:1;17299:15;17326:180;17374:77;17371:1;17364:88;17471:4;17468:1;17461:15;17495:4;17492:1;17485:15;17512:191;17552:3;17571:20;17589:1;17571:20;:::i;:::-;17566:25;;17605:20;17623:1;17605:20;:::i;:::-;17600:25;;17648:1;17645;17641:9;17634:16;;17669:3;17666:1;17663:10;17660:36;;;17676:18;;:::i;:::-;17660:36;17512:191;;;;:::o;17709:233::-;17748:3;17771:24;17789:5;17771:24;:::i;:::-;17762:33;;17817:66;17810:5;17807:77;17804:103;;17887:18;;:::i;:::-;17804:103;17934:1;17927:5;17923:13;17916:20;;17709:233;;;:::o;17948:177::-;18088:29;18084:1;18076:6;18072:14;18065:53;17948:177;:::o;18131:366::-;18273:3;18294:67;18358:2;18353:3;18294:67;:::i;:::-;18287:74;;18370:93;18459:3;18370:93;:::i;:::-;18488:2;18483:3;18479:12;18472:19;;18131:366;;;:::o;18503:419::-;18669:4;18707:2;18696:9;18692:18;18684:26;;18756:9;18750:4;18746:20;18742:1;18731:9;18727:17;18720:47;18784:131;18910:4;18784:131;:::i;:::-;18776:139;;18503:419;;;:::o;18928:410::-;18968:7;18991:20;19009:1;18991:20;:::i;:::-;18986:25;;19025:20;19043:1;19025:20;:::i;:::-;19020:25;;19080:1;19077;19073:9;19102:30;19120:11;19102:30;:::i;:::-;19091:41;;19281:1;19272:7;19268:15;19265:1;19262:22;19242:1;19235:9;19215:83;19192:139;;19311:18;;:::i;:::-;19192:139;18976:362;18928:410;;;;:::o;19344:233::-;19484:34;19480:1;19472:6;19468:14;19461:58;19553:16;19548:2;19540:6;19536:15;19529:41;19344:233;:::o;19583:366::-;19725:3;19746:67;19810:2;19805:3;19746:67;:::i;:::-;19739:74;;19822:93;19911:3;19822:93;:::i;:::-;19940:2;19935:3;19931:12;19924:19;;19583:366;;;:::o;19955:419::-;20121:4;20159:2;20148:9;20144:18;20136:26;;20208:9;20202:4;20198:20;20194:1;20183:9;20179:17;20172:47;20236:131;20362:4;20236:131;:::i;:::-;20228:139;;19955:419;;;:::o;20380:224::-;20520:34;20516:1;20508:6;20504:14;20497:58;20589:7;20584:2;20576:6;20572:15;20565:32;20380:224;:::o;20610:366::-;20752:3;20773:67;20837:2;20832:3;20773:67;:::i;:::-;20766:74;;20849:93;20938:3;20849:93;:::i;:::-;20967:2;20962:3;20958:12;20951:19;;20610:366;;;:::o;20982:419::-;21148:4;21186:2;21175:9;21171:18;21163:26;;21235:9;21229:4;21225:20;21221:1;21210:9;21206:17;21199:47;21263:131;21389:4;21263:131;:::i;:::-;21255:139;;20982:419;;;:::o;21407:225::-;21547:34;21543:1;21535:6;21531:14;21524:58;21616:8;21611:2;21603:6;21599:15;21592:33;21407:225;:::o;21638:366::-;21780:3;21801:67;21865:2;21860:3;21801:67;:::i;:::-;21794:74;;21877:93;21966:3;21877:93;:::i;:::-;21995:2;21990:3;21986:12;21979:19;;21638:366;;;:::o;22010:419::-;22176:4;22214:2;22203:9;22199:18;22191:26;;22263:9;22257:4;22253:20;22249:1;22238:9;22234:17;22227:47;22291:131;22417:4;22291:131;:::i;:::-;22283:139;;22010:419;;;:::o;22435:223::-;22575:34;22571:1;22563:6;22559:14;22552:58;22644:6;22639:2;22631:6;22627:15;22620:31;22435:223;:::o;22664:366::-;22806:3;22827:67;22891:2;22886:3;22827:67;:::i;:::-;22820:74;;22903:93;22992:3;22903:93;:::i;:::-;23021:2;23016:3;23012:12;23005:19;;22664:366;;;:::o;23036:419::-;23202:4;23240:2;23229:9;23225:18;23217:26;;23289:9;23283:4;23279:20;23275:1;23264:9;23260:17;23253:47;23317:131;23443:4;23317:131;:::i;:::-;23309:139;;23036:419;;;:::o;23461:221::-;23601:34;23597:1;23589:6;23585:14;23578:58;23670:4;23665:2;23657:6;23653:15;23646:29;23461:221;:::o;23688:366::-;23830:3;23851:67;23915:2;23910:3;23851:67;:::i;:::-;23844:74;;23927:93;24016:3;23927:93;:::i;:::-;24045:2;24040:3;24036:12;24029:19;;23688:366;;;:::o;24060:419::-;24226:4;24264:2;24253:9;24249:18;24241:26;;24313:9;24307:4;24303:20;24299:1;24288:9;24284:17;24277:47;24341:131;24467:4;24341:131;:::i;:::-;24333:139;;24060:419;;;:::o;24485:224::-;24625:34;24621:1;24613:6;24609:14;24602:58;24694:7;24689:2;24681:6;24677:15;24670:32;24485:224;:::o;24715:366::-;24857:3;24878:67;24942:2;24937:3;24878:67;:::i;:::-;24871:74;;24954:93;25043:3;24954:93;:::i;:::-;25072:2;25067:3;25063:12;25056:19;;24715:366;;;:::o;25087:419::-;25253:4;25291:2;25280:9;25276:18;25268:26;;25340:9;25334:4;25330:20;25326:1;25315:9;25311:17;25304:47;25368:131;25494:4;25368:131;:::i;:::-;25360:139;;25087:419;;;:::o;25512:222::-;25652:34;25648:1;25640:6;25636:14;25629:58;25721:5;25716:2;25708:6;25704:15;25697:30;25512:222;:::o;25740:366::-;25882:3;25903:67;25967:2;25962:3;25903:67;:::i;:::-;25896:74;;25979:93;26068:3;25979:93;:::i;:::-;26097:2;26092:3;26088:12;26081:19;;25740:366;;;:::o;26112:419::-;26278:4;26316:2;26305:9;26301:18;26293:26;;26365:9;26359:4;26355:20;26351:1;26340:9;26336:17;26329:47;26393:131;26519:4;26393:131;:::i;:::-;26385:139;;26112:419;;;:::o;26537:225::-;26677:34;26673:1;26665:6;26661:14;26654:58;26746:8;26741:2;26733:6;26729:15;26722:33;26537:225;:::o;26768:366::-;26910:3;26931:67;26995:2;26990:3;26931:67;:::i;:::-;26924:74;;27007:93;27096:3;27007:93;:::i;:::-;27125:2;27120:3;27116:12;27109:19;;26768:366;;;:::o;27140:419::-;27306:4;27344:2;27333:9;27329:18;27321:26;;27393:9;27387:4;27383:20;27379:1;27368:9;27364:17;27357:47;27421:131;27547:4;27421:131;:::i;:::-;27413:139;;27140:419;;;:::o;27565:179::-;27705:31;27701:1;27693:6;27689:14;27682:55;27565:179;:::o;27750:366::-;27892:3;27913:67;27977:2;27972:3;27913:67;:::i;:::-;27906:74;;27989:93;28078:3;27989:93;:::i;:::-;28107:2;28102:3;28098:12;28091:19;;27750:366;;;:::o;28122:419::-;28288:4;28326:2;28315:9;28311:18;28303:26;;28375:9;28369:4;28365:20;28361:1;28350:9;28346:17;28339:47;28403:131;28529:4;28403:131;:::i;:::-;28395:139;;28122:419;;;:::o;28547:182::-;28687:34;28683:1;28675:6;28671:14;28664:58;28547:182;:::o;28735:366::-;28877:3;28898:67;28962:2;28957:3;28898:67;:::i;:::-;28891:74;;28974:93;29063:3;28974:93;:::i;:::-;29092:2;29087:3;29083:12;29076:19;;28735:366;;;:::o;29107:419::-;29273:4;29311:2;29300:9;29296:18;29288:26;;29360:9;29354:4;29350:20;29346:1;29335:9;29331:17;29324:47;29388:131;29514:4;29388:131;:::i;:::-;29380:139;;29107:419;;;:::o;29532:220::-;29672:34;29668:1;29660:6;29656:14;29649:58;29741:3;29736:2;29728:6;29724:15;29717:28;29532:220;:::o;29758:366::-;29900:3;29921:67;29985:2;29980:3;29921:67;:::i;:::-;29914:74;;29997:93;30086:3;29997:93;:::i;:::-;30115:2;30110:3;30106:12;30099:19;;29758:366;;;:::o;30130:419::-;30296:4;30334:2;30323:9;30319:18;30311:26;;30383:9;30377:4;30373:20;30369:1;30358:9;30354:17;30347:47;30411:131;30537:4;30411:131;:::i;:::-;30403:139;;30130:419;;;:::o;30555:221::-;30695:34;30691:1;30683:6;30679:14;30672:58;30764:4;30759:2;30751:6;30747:15;30740:29;30555:221;:::o;30782:366::-;30924:3;30945:67;31009:2;31004:3;30945:67;:::i;:::-;30938:74;;31021:93;31110:3;31021:93;:::i;:::-;31139:2;31134:3;31130:12;31123:19;;30782:366;;;:::o;31154:419::-;31320:4;31358:2;31347:9;31343:18;31335:26;;31407:9;31401:4;31397:20;31393:1;31382:9;31378:17;31371:47;31435:131;31561:4;31435:131;:::i;:::-;31427:139;;31154:419;;;:::o;31579:169::-;31719:21;31715:1;31707:6;31703:14;31696:45;31579:169;:::o;31754:366::-;31896:3;31917:67;31981:2;31976:3;31917:67;:::i;:::-;31910:74;;31993:93;32082:3;31993:93;:::i;:::-;32111:2;32106:3;32102:12;32095:19;;31754:366;;;:::o;32126:419::-;32292:4;32330:2;32319:9;32315:18;32307:26;;32379:9;32373:4;32369:20;32365:1;32354:9;32350:17;32343:47;32407:131;32533:4;32407:131;:::i;:::-;32399:139;;32126:419;;;:::o;32551:156::-;32691:8;32687:1;32679:6;32675:14;32668:32;32551:156;:::o;32713:365::-;32855:3;32876:66;32940:1;32935:3;32876:66;:::i;:::-;32869:73;;32951:93;33040:3;32951:93;:::i;:::-;33069:2;33064:3;33060:12;33053:19;;32713:365;;;:::o;33084:419::-;33250:4;33288:2;33277:9;33273:18;33265:26;;33337:9;33331:4;33327:20;33323:1;33312:9;33308:17;33301:47;33365:131;33491:4;33365:131;:::i;:::-;33357:139;;33084:419;;;:::o

Swarm Source

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