BNB Price: $622.32 (+2.65%)
 

Overview

Max Total Supply

12,131,419BQB (CSupply: 12,131,418.999)

Holders

1,055

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
0.001 BQB

Value
$0.00
0x97620e003c03381eacbde7135f28d94303bb5672
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BQB

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2025-12-11
*/

// SPDX-License-Identifier: MIT
// Sources flattened with hardhat v2.6.6 https://hardhat.org

// File @openzeppelin/contracts/token/ERC20/[email protected]


pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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


// File @openzeppelin/contracts/token/ERC20/extensions/[email protected]


pragma solidity ^0.8.0;

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

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

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


// File @openzeppelin/contracts/utils/[email protected]


pragma solidity ^0.8.0;

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

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


// File @openzeppelin/contracts/token/ERC20/[email protected]


pragma solidity ^0.8.0;



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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

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

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


// File @openzeppelin/contracts/access/[email protected]


pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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


// File contracts/BQB.sol

pragma solidity ^0.8.0;


contract BQB is Ownable, ERC20 {
    address public exchangePool;

    uint256 public burnTotal;
    uint256 public burnCurrent;
    uint256 public burnPercent;

    address[] public recipients;
    uint256[] public percents;

    constructor() ERC20("BQB", "BQB") {
        _mint(msg.sender, 12131419 * 10**decimals());
        burnTotal = 21000000 * 10**decimals();
        burnPercent = 10;
    }

    function setRecipients(address[] memory _rcpts, uint256[] memory _percents)
        public
        virtual
        onlyOwner
    {
        require(_rcpts.length == _percents.length, "invalid arguments");
        uint256 n = 0;
        for (uint256 i = 0; i < _percents.length; i++) {
            n += _percents[i];
        }
        require(n <= 100, "invalid arguments");
        recipients = _rcpts;
        percents = _percents;
    }

    function setBurnPercent(uint256 _percent) public virtual onlyOwner {
        require(_percent < 100, "invalid argument");
        burnPercent = _percent;
    }

    function setPoolAddress(address _pool) public virtual onlyOwner {
        require(_pool != address(0), "invalid arguments");
        exchangePool = _pool;
    }

    function setBurnTotal(uint256 total) public virtual onlyOwner {
        burnTotal = total;
    }

    function mint(address _to, uint256 amount) public virtual onlyOwner {
        _mint(_to, amount);
    }

    function decimals() public view virtual override returns (uint8) {
        return 6;
    }

    function burn(address _from, uint256 amount) public virtual onlyOwner {
        _burn(_from, amount);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual override {
        if (
            (sender != exchangePool && recipient != exchangePool) ||
            burnCurrent >= burnTotal
        ) {
            super._transfer(sender, recipient, amount);
            return;
        }

        uint256 toBurn = (amount * burnPercent) / 100;
        uint256 remain = amount - toBurn;

        super._transfer(sender, recipient, remain);

        if (toBurn == 0) {
            return;
        }

        burnCurrent += toBurn;

        uint256 n;
        uint256 n1;

        for (uint256 i = 0; i < recipients.length; i++) {
            n = (toBurn * percents[i]) / 100;
            if (n > 0 && recipients[i] != address(0)) {
                super._transfer(sender, recipients[i], n);
                n1 += n;
            }
        }
        if (n1 < toBurn) {
            _burn(sender, toBurn - n1);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"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":"_from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnCurrent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangePool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"percents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"recipients","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"setBurnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"}],"name":"setBurnTotal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"setPoolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_rcpts","type":"address[]"},{"internalType":"uint256[]","name":"_percents","type":"uint256[]"}],"name":"setRecipients","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600381526020017f42514200000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42514200000000000000000000000000000000000000000000000000000000008152506200009e620000926200014660201b60201c565b6200014e60201b60201c565b8160049081620000af919062000618565b508060059081620000c1919062000618565b5050506200010333620000d96200021260201b60201c565b600a620000e791906200088f565b62b91c5b620000f79190620008e0565b6200021b60201b60201c565b620001136200021260201b60201c565b600a6200012191906200088f565b6301406f40620001329190620008e0565b600781905550600a60098190555062000a17565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006006905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200028d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000284906200098c565b60405180910390fd5b620002a1600083836200039460201b60201c565b8060036000828254620002b59190620009ae565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200030d9190620009ae565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003749190620009fa565b60405180910390a362000390600083836200039960201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200042057607f821691505b602082108103620004365762000435620003d8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000461565b620004ac868362000461565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004f9620004f3620004ed84620004c4565b620004ce565b620004c4565b9050919050565b6000819050919050565b6200051583620004d8565b6200052d620005248262000500565b8484546200046e565b825550505050565b600090565b6200054462000535565b620005518184846200050a565b505050565b5b8181101562000579576200056d6000826200053a565b60018101905062000557565b5050565b601f821115620005c85762000592816200043c565b6200059d8462000451565b81016020851015620005ad578190505b620005c5620005bc8562000451565b83018262000556565b50505b505050565b600082821c905092915050565b6000620005ed60001984600802620005cd565b1980831691505092915050565b6000620006088383620005da565b9150826002028217905092915050565b62000623826200039e565b67ffffffffffffffff8111156200063f576200063e620003a9565b5b6200064b825462000407565b620006588282856200057d565b600060209050601f8311600181146200069057600084156200067b578287015190505b620006878582620005fa565b865550620006f7565b601f198416620006a0866200043c565b60005b82811015620006ca57848901518255600182019150602085019450602081019050620006a3565b86831015620006ea5784890151620006e6601f891682620005da565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200078d57808604811115620007655762000764620006ff565b5b6001851615620007755780820291505b808102905062000785856200072e565b945062000745565b94509492505050565b600082620007a857600190506200087b565b81620007b857600090506200087b565b8160018114620007d15760028114620007dc5762000812565b60019150506200087b565b60ff841115620007f157620007f0620006ff565b5b8360020a9150848211156200080b576200080a620006ff565b5b506200087b565b5060208310610133831016604e8410600b84101617156200084c5782820a905083811115620008465762000845620006ff565b5b6200087b565b6200085b84848460016200073b565b92509050818404811115620008755762000874620006ff565b5b81810290505b9392505050565b600060ff82169050919050565b60006200089c82620004c4565b9150620008a98362000882565b9250620008d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000796565b905092915050565b6000620008ed82620004c4565b9150620008fa83620004c4565b92508282026200090a81620004c4565b91508282048414831517620009245762000923620006ff565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000974601f836200092b565b915062000981826200093c565b602082019050919050565b60006020820190508181036000830152620009a78162000965565b9050919050565b6000620009bb82620004c4565b9150620009c883620004c4565b9250828201905080821115620009e357620009e2620006ff565b5b92915050565b620009f481620004c4565b82525050565b600060208201905062000a116000830184620009e9565b92915050565b612c988062000a276000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806395d89b41116100de578063d1bc76a111610097578063e013847611610071578063e0138476146104ad578063e9e15b4f146104cb578063f2fde38b146104e7578063fc959e6e146105035761018e565b8063d1bc76a11461042f578063d24ec6901461045f578063dd62ed3e1461047d5761018e565b806395d89b411461035d5780639dc29fac1461037b578063a457c2d714610397578063a9059cbb146103c7578063ae373c1b146103f7578063bb1570da146104135761018e565b8063313ce5671161014b57806370a082311161012557806370a08231146102d5578063715018a6146103055780638da5cb5b1461030f5780638db1342d1461032d5761018e565b8063313ce5671461026b578063395093511461028957806340c10f19146102b95761018e565b806303807ee51461019357806306fdde03146101b1578063095ea7b3146101cf57806310dc97c0146101ff57806318160ddd1461021d57806323b872dd1461023b575b600080fd5b61019b61051f565b6040516101a89190611d3c565b60405180910390f35b6101b9610525565b6040516101c69190611de7565b60405180910390f35b6101e960048036038101906101e49190611ea7565b6105b7565b6040516101f69190611f02565b60405180910390f35b6102076105d5565b6040516102149190611d3c565b60405180910390f35b6102256105db565b6040516102329190611d3c565b60405180910390f35b61025560048036038101906102509190611f1d565b6105e5565b6040516102629190611f02565b60405180910390f35b6102736106dd565b6040516102809190611f8c565b60405180910390f35b6102a3600480360381019061029e9190611ea7565b6106e6565b6040516102b09190611f02565b60405180910390f35b6102d360048036038101906102ce9190611ea7565b610792565b005b6102ef60048036038101906102ea9190611fa7565b61081c565b6040516102fc9190611d3c565b60405180910390f35b61030d610865565b005b6103176108ed565b6040516103249190611fe3565b60405180910390f35b61034760048036038101906103429190611ffe565b610916565b6040516103549190611d3c565b60405180910390f35b61036561093a565b6040516103729190611de7565b60405180910390f35b61039560048036038101906103909190611ea7565b6109cc565b005b6103b160048036038101906103ac9190611ea7565b610a56565b6040516103be9190611f02565b60405180910390f35b6103e160048036038101906103dc9190611ea7565b610b41565b6040516103ee9190611f02565b60405180910390f35b610411600480360381019061040c9190612236565b610b5f565b005b61042d60048036038101906104289190611ffe565b610cdf565b005b61044960048036038101906104449190611ffe565b610da8565b6040516104569190611fe3565b60405180910390f35b610467610de7565b6040516104749190611d3c565b60405180910390f35b610497600480360381019061049291906122ae565b610ded565b6040516104a49190611d3c565b60405180910390f35b6104b5610e74565b6040516104c29190611fe3565b60405180910390f35b6104e560048036038101906104e09190611fa7565b610e9a565b005b61050160048036038101906104fc9190611fa7565b610fc9565b005b61051d60048036038101906105189190611ffe565b6110c0565b005b60095481565b6060600480546105349061231d565b80601f01602080910402602001604051908101604052809291908181526020018280546105609061231d565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b60006105cb6105c4611146565b848461114e565b6001905092915050565b60075481565b6000600354905090565b60006105f2848484611317565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061063d611146565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b4906123c0565b60405180910390fd5b6106d1856106c9611146565b85840361114e565b60019150509392505050565b60006006905090565b60006107886106f3611146565b848460026000610701611146565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610783919061240f565b61114e565b6001905092915050565b61079a611146565b73ffffffffffffffffffffffffffffffffffffffff166107b86108ed565b73ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108059061248f565b60405180910390fd5b61081882826115a7565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61086d611146565b73ffffffffffffffffffffffffffffffffffffffff1661088b6108ed565b73ffffffffffffffffffffffffffffffffffffffff16146108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d89061248f565b60405180910390fd5b6108eb6000611707565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b818154811061092657600080fd5b906000526020600020016000915090505481565b6060600580546109499061231d565b80601f01602080910402602001604051908101604052809291908181526020018280546109759061231d565b80156109c25780601f10610997576101008083540402835291602001916109c2565b820191906000526020600020905b8154815290600101906020018083116109a557829003601f168201915b5050505050905090565b6109d4611146565b73ffffffffffffffffffffffffffffffffffffffff166109f26108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f9061248f565b60405180910390fd5b610a5282826117cb565b5050565b60008060026000610a65611146565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990612521565b60405180910390fd5b610b36610b2d611146565b8585840361114e565b600191505092915050565b6000610b55610b4e611146565b8484611317565b6001905092915050565b610b67611146565b73ffffffffffffffffffffffffffffffffffffffff16610b856108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd29061248f565b60405180910390fd5b8051825114610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c169061258d565b60405180910390fd5b6000805b8251811015610c6757828181518110610c3f57610c3e6125ad565b5b602002602001015182610c52919061240f565b91508080610c5f906125dc565b915050610c23565b506064811115610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca39061258d565b60405180910390fd5b82600a9080519060200190610cc2929190611c2f565b5081600b9080519060200190610cd9929190611cb9565b50505050565b610ce7611146565b73ffffffffffffffffffffffffffffffffffffffff16610d056108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d529061248f565b60405180910390fd5b60648110610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590612670565b60405180910390fd5b8060098190555050565b600a8181548110610db857600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea2611146565b73ffffffffffffffffffffffffffffffffffffffff16610ec06108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0d9061248f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c9061258d565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fd1611146565b73ffffffffffffffffffffffffffffffffffffffff16610fef6108ed565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061248f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90612702565b60405180910390fd5b6110bd81611707565b50565b6110c8611146565b73ffffffffffffffffffffffffffffffffffffffff166110e66108ed565b73ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111339061248f565b60405180910390fd5b8060078190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612794565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390612826565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130a9190611d3c565b60405180910390a3505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c35750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b806113d2575060075460085410155b156113e7576113e28383836119a3565b6115a2565b60006064600954836113f99190612846565b61140391906128b7565b90506000818361141391906128e8565b90506114208585836119a3565b6000820361142f5750506115a2565b8160086000828254611441919061240f565b9250508190555060008060005b600a8054905081101561157e576064600b8281548110611471576114706125ad565b5b9060005260206000200154866114879190612846565b61149191906128b7565b925060008311801561150e5750600073ffffffffffffffffffffffffffffffffffffffff16600a82815481106114ca576114c96125ad565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561156b5761155c88600a838154811061152b5761152a6125ad565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856119a3565b8282611568919061240f565b91505b8080611576906125dc565b91505061144e565b508381101561159d5761159c87828661159791906128e8565b6117cb565b5b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612968565b60405180910390fd5b61162260008383611c25565b8060036000828254611634919061240f565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461168a919061240f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116ef9190611d3c565b60405180910390a361170360008383611c2a565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129fa565b60405180910390fd5b61184682600083611c25565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490612a8c565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461192591906128e8565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161198a9190611d3c565b60405180910390a361199e83600084611c2a565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0990612b1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890612bb0565b60405180910390fd5b611a8c838383611c25565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90612c42565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ba8919061240f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c0c9190611d3c565b60405180910390a3611c1f848484611c2a565b50505050565b505050565b505050565b828054828255906000526020600020908101928215611ca8579160200282015b82811115611ca75782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611c4f565b5b509050611cb59190611d06565b5090565b828054828255906000526020600020908101928215611cf5579160200282015b82811115611cf4578251825591602001919060010190611cd9565b5b509050611d029190611d06565b5090565b5b80821115611d1f576000816000905550600101611d07565b5090565b6000819050919050565b611d3681611d23565b82525050565b6000602082019050611d516000830184611d2d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d91578082015181840152602081019050611d76565b60008484015250505050565b6000601f19601f8301169050919050565b6000611db982611d57565b611dc38185611d62565b9350611dd3818560208601611d73565b611ddc81611d9d565b840191505092915050565b60006020820190508181036000830152611e018184611dae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e4882611e1d565b9050919050565b611e5881611e3d565b8114611e6357600080fd5b50565b600081359050611e7581611e4f565b92915050565b611e8481611d23565b8114611e8f57600080fd5b50565b600081359050611ea181611e7b565b92915050565b60008060408385031215611ebe57611ebd611e13565b5b6000611ecc85828601611e66565b9250506020611edd85828601611e92565b9150509250929050565b60008115159050919050565b611efc81611ee7565b82525050565b6000602082019050611f176000830184611ef3565b92915050565b600080600060608486031215611f3657611f35611e13565b5b6000611f4486828701611e66565b9350506020611f5586828701611e66565b9250506040611f6686828701611e92565b9150509250925092565b600060ff82169050919050565b611f8681611f70565b82525050565b6000602082019050611fa16000830184611f7d565b92915050565b600060208284031215611fbd57611fbc611e13565b5b6000611fcb84828501611e66565b91505092915050565b611fdd81611e3d565b82525050565b6000602082019050611ff86000830184611fd4565b92915050565b60006020828403121561201457612013611e13565b5b600061202284828501611e92565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61206882611d9d565b810181811067ffffffffffffffff8211171561208757612086612030565b5b80604052505050565b600061209a611e09565b90506120a6828261205f565b919050565b600067ffffffffffffffff8211156120c6576120c5612030565b5b602082029050602081019050919050565b600080fd5b60006120ef6120ea846120ab565b612090565b90508083825260208201905060208402830185811115612112576121116120d7565b5b835b8181101561213b57806121278882611e66565b845260208401935050602081019050612114565b5050509392505050565b600082601f83011261215a5761215961202b565b5b813561216a8482602086016120dc565b91505092915050565b600067ffffffffffffffff82111561218e5761218d612030565b5b602082029050602081019050919050565b60006121b26121ad84612173565b612090565b905080838252602082019050602084028301858111156121d5576121d46120d7565b5b835b818110156121fe57806121ea8882611e92565b8452602084019350506020810190506121d7565b5050509392505050565b600082601f83011261221d5761221c61202b565b5b813561222d84826020860161219f565b91505092915050565b6000806040838503121561224d5761224c611e13565b5b600083013567ffffffffffffffff81111561226b5761226a611e18565b5b61227785828601612145565b925050602083013567ffffffffffffffff81111561229857612297611e18565b5b6122a485828601612208565b9150509250929050565b600080604083850312156122c5576122c4611e13565b5b60006122d385828601611e66565b92505060206122e485828601611e66565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233557607f821691505b602082108103612348576123476122ee565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123aa602883611d62565b91506123b58261234e565b604082019050919050565b600060208201905081810360008301526123d98161239d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061241a82611d23565b915061242583611d23565b925082820190508082111561243d5761243c6123e0565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612479602083611d62565b915061248482612443565b602082019050919050565b600060208201905081810360008301526124a88161246c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061250b602583611d62565b9150612516826124af565b604082019050919050565b6000602082019050818103600083015261253a816124fe565b9050919050565b7f696e76616c696420617267756d656e7473000000000000000000000000000000600082015250565b6000612577601183611d62565b915061258282612541565b602082019050919050565b600060208201905081810360008301526125a68161256a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006125e782611d23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612619576126186123e0565b5b600182019050919050565b7f696e76616c696420617267756d656e7400000000000000000000000000000000600082015250565b600061265a601083611d62565b915061266582612624565b602082019050919050565b600060208201905081810360008301526126898161264d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006126ec602683611d62565b91506126f782612690565b604082019050919050565b6000602082019050818103600083015261271b816126df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061277e602483611d62565b915061278982612722565b604082019050919050565b600060208201905081810360008301526127ad81612771565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612810602283611d62565b915061281b826127b4565b604082019050919050565b6000602082019050818103600083015261283f81612803565b9050919050565b600061285182611d23565b915061285c83611d23565b925082820261286a81611d23565b91508282048414831517612881576128806123e0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128c282611d23565b91506128cd83611d23565b9250826128dd576128dc612888565b5b828204905092915050565b60006128f382611d23565b91506128fe83611d23565b9250828203905081811115612916576129156123e0565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612952601f83611d62565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006129e4602183611d62565b91506129ef82612988565b604082019050919050565b60006020820190508181036000830152612a13816129d7565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a76602283611d62565b9150612a8182612a1a565b604082019050919050565b60006020820190508181036000830152612aa581612a69565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b08602583611d62565b9150612b1382612aac565b604082019050919050565b60006020820190508181036000830152612b3781612afb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b9a602383611d62565b9150612ba582612b3e565b604082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612c2c602683611d62565b9150612c3782612bd0565b604082019050919050565b60006020820190508181036000830152612c5b81612c1f565b905091905056fea2646970667358221220574e7c5947c7242d09810b14f3d610035393be831f03b4a1fd0cb0d23ff5e36f64736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806395d89b41116100de578063d1bc76a111610097578063e013847611610071578063e0138476146104ad578063e9e15b4f146104cb578063f2fde38b146104e7578063fc959e6e146105035761018e565b8063d1bc76a11461042f578063d24ec6901461045f578063dd62ed3e1461047d5761018e565b806395d89b411461035d5780639dc29fac1461037b578063a457c2d714610397578063a9059cbb146103c7578063ae373c1b146103f7578063bb1570da146104135761018e565b8063313ce5671161014b57806370a082311161012557806370a08231146102d5578063715018a6146103055780638da5cb5b1461030f5780638db1342d1461032d5761018e565b8063313ce5671461026b578063395093511461028957806340c10f19146102b95761018e565b806303807ee51461019357806306fdde03146101b1578063095ea7b3146101cf57806310dc97c0146101ff57806318160ddd1461021d57806323b872dd1461023b575b600080fd5b61019b61051f565b6040516101a89190611d3c565b60405180910390f35b6101b9610525565b6040516101c69190611de7565b60405180910390f35b6101e960048036038101906101e49190611ea7565b6105b7565b6040516101f69190611f02565b60405180910390f35b6102076105d5565b6040516102149190611d3c565b60405180910390f35b6102256105db565b6040516102329190611d3c565b60405180910390f35b61025560048036038101906102509190611f1d565b6105e5565b6040516102629190611f02565b60405180910390f35b6102736106dd565b6040516102809190611f8c565b60405180910390f35b6102a3600480360381019061029e9190611ea7565b6106e6565b6040516102b09190611f02565b60405180910390f35b6102d360048036038101906102ce9190611ea7565b610792565b005b6102ef60048036038101906102ea9190611fa7565b61081c565b6040516102fc9190611d3c565b60405180910390f35b61030d610865565b005b6103176108ed565b6040516103249190611fe3565b60405180910390f35b61034760048036038101906103429190611ffe565b610916565b6040516103549190611d3c565b60405180910390f35b61036561093a565b6040516103729190611de7565b60405180910390f35b61039560048036038101906103909190611ea7565b6109cc565b005b6103b160048036038101906103ac9190611ea7565b610a56565b6040516103be9190611f02565b60405180910390f35b6103e160048036038101906103dc9190611ea7565b610b41565b6040516103ee9190611f02565b60405180910390f35b610411600480360381019061040c9190612236565b610b5f565b005b61042d60048036038101906104289190611ffe565b610cdf565b005b61044960048036038101906104449190611ffe565b610da8565b6040516104569190611fe3565b60405180910390f35b610467610de7565b6040516104749190611d3c565b60405180910390f35b610497600480360381019061049291906122ae565b610ded565b6040516104a49190611d3c565b60405180910390f35b6104b5610e74565b6040516104c29190611fe3565b60405180910390f35b6104e560048036038101906104e09190611fa7565b610e9a565b005b61050160048036038101906104fc9190611fa7565b610fc9565b005b61051d60048036038101906105189190611ffe565b6110c0565b005b60095481565b6060600480546105349061231d565b80601f01602080910402602001604051908101604052809291908181526020018280546105609061231d565b80156105ad5780601f10610582576101008083540402835291602001916105ad565b820191906000526020600020905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b60006105cb6105c4611146565b848461114e565b6001905092915050565b60075481565b6000600354905090565b60006105f2848484611317565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061063d611146565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b4906123c0565b60405180910390fd5b6106d1856106c9611146565b85840361114e565b60019150509392505050565b60006006905090565b60006107886106f3611146565b848460026000610701611146565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610783919061240f565b61114e565b6001905092915050565b61079a611146565b73ffffffffffffffffffffffffffffffffffffffff166107b86108ed565b73ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108059061248f565b60405180910390fd5b61081882826115a7565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61086d611146565b73ffffffffffffffffffffffffffffffffffffffff1661088b6108ed565b73ffffffffffffffffffffffffffffffffffffffff16146108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d89061248f565b60405180910390fd5b6108eb6000611707565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b818154811061092657600080fd5b906000526020600020016000915090505481565b6060600580546109499061231d565b80601f01602080910402602001604051908101604052809291908181526020018280546109759061231d565b80156109c25780601f10610997576101008083540402835291602001916109c2565b820191906000526020600020905b8154815290600101906020018083116109a557829003601f168201915b5050505050905090565b6109d4611146565b73ffffffffffffffffffffffffffffffffffffffff166109f26108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f9061248f565b60405180910390fd5b610a5282826117cb565b5050565b60008060026000610a65611146565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990612521565b60405180910390fd5b610b36610b2d611146565b8585840361114e565b600191505092915050565b6000610b55610b4e611146565b8484611317565b6001905092915050565b610b67611146565b73ffffffffffffffffffffffffffffffffffffffff16610b856108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd29061248f565b60405180910390fd5b8051825114610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c169061258d565b60405180910390fd5b6000805b8251811015610c6757828181518110610c3f57610c3e6125ad565b5b602002602001015182610c52919061240f565b91508080610c5f906125dc565b915050610c23565b506064811115610cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca39061258d565b60405180910390fd5b82600a9080519060200190610cc2929190611c2f565b5081600b9080519060200190610cd9929190611cb9565b50505050565b610ce7611146565b73ffffffffffffffffffffffffffffffffffffffff16610d056108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610d5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d529061248f565b60405180910390fd5b60648110610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9590612670565b60405180910390fd5b8060098190555050565b600a8181548110610db857600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea2611146565b73ffffffffffffffffffffffffffffffffffffffff16610ec06108ed565b73ffffffffffffffffffffffffffffffffffffffff1614610f16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0d9061248f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c9061258d565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fd1611146565b73ffffffffffffffffffffffffffffffffffffffff16610fef6108ed565b73ffffffffffffffffffffffffffffffffffffffff1614611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061248f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90612702565b60405180910390fd5b6110bd81611707565b50565b6110c8611146565b73ffffffffffffffffffffffffffffffffffffffff166110e66108ed565b73ffffffffffffffffffffffffffffffffffffffff161461113c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111339061248f565b60405180910390fd5b8060078190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b490612794565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390612826565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161130a9190611d3c565b60405180910390a3505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113c35750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b806113d2575060075460085410155b156113e7576113e28383836119a3565b6115a2565b60006064600954836113f99190612846565b61140391906128b7565b90506000818361141391906128e8565b90506114208585836119a3565b6000820361142f5750506115a2565b8160086000828254611441919061240f565b9250508190555060008060005b600a8054905081101561157e576064600b8281548110611471576114706125ad565b5b9060005260206000200154866114879190612846565b61149191906128b7565b925060008311801561150e5750600073ffffffffffffffffffffffffffffffffffffffff16600a82815481106114ca576114c96125ad565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561156b5761155c88600a838154811061152b5761152a6125ad565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856119a3565b8282611568919061240f565b91505b8080611576906125dc565b91505061144e565b508381101561159d5761159c87828661159791906128e8565b6117cb565b5b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90612968565b60405180910390fd5b61162260008383611c25565b8060036000828254611634919061240f565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461168a919061240f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116ef9190611d3c565b60405180910390a361170360008383611c2a565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361183a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611831906129fa565b60405180910390fd5b61184682600083611c25565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490612a8c565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461192591906128e8565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161198a9190611d3c565b60405180910390a361199e83600084611c2a565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0990612b1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890612bb0565b60405180910390fd5b611a8c838383611c25565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90612c42565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ba8919061240f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c0c9190611d3c565b60405180910390a3611c1f848484611c2a565b50505050565b505050565b505050565b828054828255906000526020600020908101928215611ca8579160200282015b82811115611ca75782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611c4f565b5b509050611cb59190611d06565b5090565b828054828255906000526020600020908101928215611cf5579160200282015b82811115611cf4578251825591602001919060010190611cd9565b5b509050611d029190611d06565b5090565b5b80821115611d1f576000816000905550600101611d07565b5090565b6000819050919050565b611d3681611d23565b82525050565b6000602082019050611d516000830184611d2d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d91578082015181840152602081019050611d76565b60008484015250505050565b6000601f19601f8301169050919050565b6000611db982611d57565b611dc38185611d62565b9350611dd3818560208601611d73565b611ddc81611d9d565b840191505092915050565b60006020820190508181036000830152611e018184611dae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e4882611e1d565b9050919050565b611e5881611e3d565b8114611e6357600080fd5b50565b600081359050611e7581611e4f565b92915050565b611e8481611d23565b8114611e8f57600080fd5b50565b600081359050611ea181611e7b565b92915050565b60008060408385031215611ebe57611ebd611e13565b5b6000611ecc85828601611e66565b9250506020611edd85828601611e92565b9150509250929050565b60008115159050919050565b611efc81611ee7565b82525050565b6000602082019050611f176000830184611ef3565b92915050565b600080600060608486031215611f3657611f35611e13565b5b6000611f4486828701611e66565b9350506020611f5586828701611e66565b9250506040611f6686828701611e92565b9150509250925092565b600060ff82169050919050565b611f8681611f70565b82525050565b6000602082019050611fa16000830184611f7d565b92915050565b600060208284031215611fbd57611fbc611e13565b5b6000611fcb84828501611e66565b91505092915050565b611fdd81611e3d565b82525050565b6000602082019050611ff86000830184611fd4565b92915050565b60006020828403121561201457612013611e13565b5b600061202284828501611e92565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61206882611d9d565b810181811067ffffffffffffffff8211171561208757612086612030565b5b80604052505050565b600061209a611e09565b90506120a6828261205f565b919050565b600067ffffffffffffffff8211156120c6576120c5612030565b5b602082029050602081019050919050565b600080fd5b60006120ef6120ea846120ab565b612090565b90508083825260208201905060208402830185811115612112576121116120d7565b5b835b8181101561213b57806121278882611e66565b845260208401935050602081019050612114565b5050509392505050565b600082601f83011261215a5761215961202b565b5b813561216a8482602086016120dc565b91505092915050565b600067ffffffffffffffff82111561218e5761218d612030565b5b602082029050602081019050919050565b60006121b26121ad84612173565b612090565b905080838252602082019050602084028301858111156121d5576121d46120d7565b5b835b818110156121fe57806121ea8882611e92565b8452602084019350506020810190506121d7565b5050509392505050565b600082601f83011261221d5761221c61202b565b5b813561222d84826020860161219f565b91505092915050565b6000806040838503121561224d5761224c611e13565b5b600083013567ffffffffffffffff81111561226b5761226a611e18565b5b61227785828601612145565b925050602083013567ffffffffffffffff81111561229857612297611e18565b5b6122a485828601612208565b9150509250929050565b600080604083850312156122c5576122c4611e13565b5b60006122d385828601611e66565b92505060206122e485828601611e66565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233557607f821691505b602082108103612348576123476122ee565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123aa602883611d62565b91506123b58261234e565b604082019050919050565b600060208201905081810360008301526123d98161239d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061241a82611d23565b915061242583611d23565b925082820190508082111561243d5761243c6123e0565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612479602083611d62565b915061248482612443565b602082019050919050565b600060208201905081810360008301526124a88161246c565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061250b602583611d62565b9150612516826124af565b604082019050919050565b6000602082019050818103600083015261253a816124fe565b9050919050565b7f696e76616c696420617267756d656e7473000000000000000000000000000000600082015250565b6000612577601183611d62565b915061258282612541565b602082019050919050565b600060208201905081810360008301526125a68161256a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006125e782611d23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612619576126186123e0565b5b600182019050919050565b7f696e76616c696420617267756d656e7400000000000000000000000000000000600082015250565b600061265a601083611d62565b915061266582612624565b602082019050919050565b600060208201905081810360008301526126898161264d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006126ec602683611d62565b91506126f782612690565b604082019050919050565b6000602082019050818103600083015261271b816126df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061277e602483611d62565b915061278982612722565b604082019050919050565b600060208201905081810360008301526127ad81612771565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612810602283611d62565b915061281b826127b4565b604082019050919050565b6000602082019050818103600083015261283f81612803565b9050919050565b600061285182611d23565b915061285c83611d23565b925082820261286a81611d23565b91508282048414831517612881576128806123e0565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006128c282611d23565b91506128cd83611d23565b9250826128dd576128dc612888565b5b828204905092915050565b60006128f382611d23565b91506128fe83611d23565b9250828203905081811115612916576129156123e0565b5b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612952601f83611d62565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006129e4602183611d62565b91506129ef82612988565b604082019050919050565b60006020820190508181036000830152612a13816129d7565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a76602283611d62565b9150612a8182612a1a565b604082019050919050565b60006020820190508181036000830152612aa581612a69565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b08602583611d62565b9150612b1382612aac565b604082019050919050565b60006020820190508181036000830152612b3781612afb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b9a602383611d62565b9150612ba582612b3e565b604082019050919050565b60006020820190508181036000830152612bc981612b8d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612c2c602683611d62565b9150612c3782612bd0565b604082019050919050565b60006020820190508181036000830152612c5b81612c1f565b905091905056fea2646970667358221220574e7c5947c7242d09810b14f3d610035393be831f03b4a1fd0cb0d23ff5e36f64736f6c63430008120033

Deployed Bytecode Sourcemap

18824:2673:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18962:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6521:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8688:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18898:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7641:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9339:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20263:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10240:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20150:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7812:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18135:94;;;:::i;:::-;;17484:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19031:25;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6740:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20363:109;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10958:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8152:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19245:450;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19703:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18997:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18929:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8390:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18862:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19873:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18384:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20044:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18962:26;;;;:::o;6521:100::-;6575:13;6608:5;6601:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6521:100;:::o;8688:169::-;8771:4;8788:39;8797:12;:10;:12::i;:::-;8811:7;8820:6;8788:8;:39::i;:::-;8845:4;8838:11;;8688:169;;;;:::o;18898:24::-;;;;:::o;7641:108::-;7702:7;7729:12;;7722:19;;7641:108;:::o;9339:492::-;9479:4;9496:36;9506:6;9514:9;9525:6;9496:9;:36::i;:::-;9545:24;9572:11;:19;9584:6;9572:19;;;;;;;;;;;;;;;:33;9592:12;:10;:12::i;:::-;9572:33;;;;;;;;;;;;;;;;9545:60;;9644:6;9624:16;:26;;9616:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9731:57;9740:6;9748:12;:10;:12::i;:::-;9781:6;9762:16;:25;9731:8;:57::i;:::-;9819:4;9812:11;;;9339:492;;;;;:::o;20263:92::-;20321:5;20346:1;20339:8;;20263:92;:::o;10240:215::-;10328:4;10345:80;10354:12;:10;:12::i;:::-;10368:7;10414:10;10377:11;:25;10389:12;:10;:12::i;:::-;10377:25;;;;;;;;;;;;;;;:34;10403:7;10377:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10345:8;:80::i;:::-;10443:4;10436:11;;10240:215;;;;:::o;20150:105::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20229:18:::1;20235:3;20240:6;20229:5;:18::i;:::-;20150:105:::0;;:::o;7812:127::-;7886:7;7913:9;:18;7923:7;7913:18;;;;;;;;;;;;;;;;7906:25;;7812:127;;;:::o;18135:94::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18200:21:::1;18218:1;18200:9;:21::i;:::-;18135:94::o:0;17484:87::-;17530:7;17557:6;;;;;;;;;;;17550:13;;17484:87;:::o;19031:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6740:104::-;6796:13;6829:7;6822:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6740:104;:::o;20363:109::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20444:20:::1;20450:5;20457:6;20444:5;:20::i;:::-;20363:109:::0;;:::o;10958:413::-;11051:4;11068:24;11095:11;:25;11107:12;:10;:12::i;:::-;11095:25;;;;;;;;;;;;;;;:34;11121:7;11095:34;;;;;;;;;;;;;;;;11068:61;;11168:15;11148:16;:35;;11140:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11261:67;11270:12;:10;:12::i;:::-;11284:7;11312:15;11293:16;:34;11261:8;:67::i;:::-;11359:4;11352:11;;;10958:413;;;;:::o;8152:175::-;8238:4;8255:42;8265:12;:10;:12::i;:::-;8279:9;8290:6;8255:9;:42::i;:::-;8315:4;8308:11;;8152:175;;;;:::o;19245:450::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19414:9:::1;:16;19397:6;:13;:33;19389:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;19463:9;19492::::0;19487:91:::1;19511:9;:16;19507:1;:20;19487:91;;;19554:9;19564:1;19554:12;;;;;;;;:::i;:::-;;;;;;;;19549:17;;;;;:::i;:::-;;;19529:3;;;;;:::i;:::-;;;;19487:91;;;;19601:3;19596:1;:8;;19588:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19650:6;19637:10;:19;;;;;;;;;;;;:::i;:::-;;19678:9;19667:8;:20;;;;;;;;;;;;:::i;:::-;;19378:317;19245:450:::0;;:::o;19703:162::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19800:3:::1;19789:8;:14;19781:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;19849:8;19835:11;:22;;;;19703:162:::0;:::o;18997:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18929:26::-;;;;:::o;8390:151::-;8479:7;8506:11;:18;8518:5;8506:18;;;;;;;;;;;;;;;:27;8525:7;8506:27;;;;;;;;;;;;;;;;8499:34;;8390:151;;;;:::o;18862:27::-;;;;;;;;;;;;;:::o;19873:163::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19973:1:::1;19956:19;;:5;:19;;::::0;19948:49:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;20023:5;20008:12;;:20;;;;;;;;;;;;;;;;;;19873:163:::0;:::o;18384:192::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18493:1:::1;18473:22;;:8;:22;;::::0;18465:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18549:19;18559:8;18549:9;:19::i;:::-;18384:192:::0;:::o;20044:98::-;17715:12;:10;:12::i;:::-;17704:23;;:7;:5;:7::i;:::-;:23;;;17696:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20129:5:::1;20117:9;:17;;;;20044:98:::0;:::o;4230:::-;4283:7;4310:10;4303:17;;4230:98;:::o;14642:380::-;14795:1;14778:19;;:5;:19;;;14770:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14876:1;14857:21;;:7;:21;;;14849:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14960:6;14930:11;:18;14942:5;14930:18;;;;;;;;;;;;;;;:27;14949:7;14930:27;;;;;;;;;;;;;;;:36;;;;14998:7;14982:32;;14991:5;14982:32;;;15007:6;14982:32;;;;;;:::i;:::-;;;;;;;;14642:380;;;:::o;20480:1014::-;20650:12;;;;;;;;;;;20640:22;;:6;:22;;;;:51;;;;;20679:12;;;;;;;;;;;20666:25;;:9;:25;;;;20640:51;20639:94;;;;20724:9;;20709:11;;:24;;20639:94;20621:214;;;20760:42;20776:6;20784:9;20795:6;20760:15;:42::i;:::-;20817:7;;20621:214;20847:14;20889:3;20874:11;;20865:6;:20;;;;:::i;:::-;20864:28;;;;:::i;:::-;20847:45;;20903:14;20929:6;20920;:15;;;;:::i;:::-;20903:32;;20948:42;20964:6;20972:9;20983:6;20948:15;:42::i;:::-;21017:1;21007:6;:11;21003:50;;21035:7;;;;21003:50;21080:6;21065:11;;:21;;;;;;;:::i;:::-;;;;;;;;21099:9;21119:10;21147:9;21142:265;21166:10;:17;;;;21162:1;:21;21142:265;;;21234:3;21219:8;21228:1;21219:11;;;;;;;;:::i;:::-;;;;;;;;;;21210:6;:20;;;;:::i;:::-;21209:28;;;;:::i;:::-;21205:32;;21260:1;21256;:5;:36;;;;;21290:1;21265:27;;:10;21276:1;21265:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:27;;;;21256:36;21252:144;;;21313:41;21329:6;21337:10;21348:1;21337:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21352:1;21313:15;:41::i;:::-;21379:1;21373:7;;;;;:::i;:::-;;;21252:144;21185:3;;;;;:::i;:::-;;;;21142:265;;;;21426:6;21421:2;:11;21417:70;;;21449:26;21455:6;21472:2;21463:6;:11;;;;:::i;:::-;21449:5;:26::i;:::-;21417:70;20610:884;;;;20480:1014;;;;:::o;12881:399::-;12984:1;12965:21;;:7;:21;;;12957:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13035:49;13064:1;13068:7;13077:6;13035:20;:49::i;:::-;13113:6;13097:12;;:22;;;;;;;:::i;:::-;;;;;;;;13152:6;13130:9;:18;13140:7;13130:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13195:7;13174:37;;13191:1;13174:37;;;13204:6;13174:37;;;;;;:::i;:::-;;;;;;;;13224:48;13252:1;13256:7;13265:6;13224:19;:48::i;:::-;12881:399;;:::o;18584:173::-;18640:16;18659:6;;;;;;;;;;;18640:25;;18685:8;18676:6;;:17;;;;;;;;;;;;;;;;;;18740:8;18709:40;;18730:8;18709:40;;;;;;;;;;;;18629:128;18584:173;:::o;13613:591::-;13716:1;13697:21;;:7;:21;;;13689:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13769:49;13790:7;13807:1;13811:6;13769:20;:49::i;:::-;13831:22;13856:9;:18;13866:7;13856:18;;;;;;;;;;;;;;;;13831:43;;13911:6;13893:14;:24;;13885:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14030:6;14013:14;:23;13992:9;:18;14002:7;13992:18;;;;;;;;;;;;;;;:44;;;;14074:6;14058:12;;:22;;;;;;;:::i;:::-;;;;;;;;14124:1;14098:37;;14107:7;14098:37;;;14128:6;14098:37;;;;;;:::i;:::-;;;;;;;;14148:48;14168:7;14185:1;14189:6;14148:19;:48::i;:::-;13678:526;13613:591;;:::o;11861:733::-;12019:1;12001:20;;:6;:20;;;11993:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12103:1;12082:23;;:9;:23;;;12074:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12158:47;12179:6;12187:9;12198:6;12158:20;:47::i;:::-;12218:21;12242:9;:17;12252:6;12242:17;;;;;;;;;;;;;;;;12218:41;;12295:6;12278:13;:23;;12270:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12416:6;12400:13;:22;12380:9;:17;12390:6;12380:17;;;;;;;;;;;;;;;:42;;;;12468:6;12444:9;:20;12454:9;12444:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12509:9;12492:35;;12501:6;12492:35;;;12520:6;12492:35;;;;;;:::i;:::-;;;;;;;;12540:46;12560:6;12568:9;12579:6;12540:19;:46::i;:::-;11982:612;11861:733;;;:::o;15622:125::-;;;;:::o;16351:124::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:329::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:180;6046:77;6043:1;6036:88;6143:4;6140:1;6133:15;6167:4;6164:1;6157:15;6184:281;6267:27;6289:4;6267:27;:::i;:::-;6259:6;6255:40;6397:6;6385:10;6382:22;6361:18;6349:10;6346:34;6343:62;6340:88;;;6408:18;;:::i;:::-;6340:88;6448:10;6444:2;6437:22;6227:238;6184:281;;:::o;6471:129::-;6505:6;6532:20;;:::i;:::-;6522:30;;6561:33;6589:4;6581:6;6561:33;:::i;:::-;6471:129;;;:::o;6606:311::-;6683:4;6773:18;6765:6;6762:30;6759:56;;;6795:18;;:::i;:::-;6759:56;6845:4;6837:6;6833:17;6825:25;;6905:4;6899;6895:15;6887:23;;6606:311;;;:::o;6923:117::-;7032:1;7029;7022:12;7063:710;7159:5;7184:81;7200:64;7257:6;7200:64;:::i;:::-;7184:81;:::i;:::-;7175:90;;7285:5;7314:6;7307:5;7300:21;7348:4;7341:5;7337:16;7330:23;;7401:4;7393:6;7389:17;7381:6;7377:30;7430:3;7422:6;7419:15;7416:122;;;7449:79;;:::i;:::-;7416:122;7564:6;7547:220;7581:6;7576:3;7573:15;7547:220;;;7656:3;7685:37;7718:3;7706:10;7685:37;:::i;:::-;7680:3;7673:50;7752:4;7747:3;7743:14;7736:21;;7623:144;7607:4;7602:3;7598:14;7591:21;;7547:220;;;7551:21;7165:608;;7063:710;;;;;:::o;7796:370::-;7867:5;7916:3;7909:4;7901:6;7897:17;7893:27;7883:122;;7924:79;;:::i;:::-;7883:122;8041:6;8028:20;8066:94;8156:3;8148:6;8141:4;8133:6;8129:17;8066:94;:::i;:::-;8057:103;;7873:293;7796:370;;;;:::o;8172:311::-;8249:4;8339:18;8331:6;8328:30;8325:56;;;8361:18;;:::i;:::-;8325:56;8411:4;8403:6;8399:17;8391:25;;8471:4;8465;8461:15;8453:23;;8172:311;;;:::o;8506:710::-;8602:5;8627:81;8643:64;8700:6;8643:64;:::i;:::-;8627:81;:::i;:::-;8618:90;;8728:5;8757:6;8750:5;8743:21;8791:4;8784:5;8780:16;8773:23;;8844:4;8836:6;8832:17;8824:6;8820:30;8873:3;8865:6;8862:15;8859:122;;;8892:79;;:::i;:::-;8859:122;9007:6;8990:220;9024:6;9019:3;9016:15;8990:220;;;9099:3;9128:37;9161:3;9149:10;9128:37;:::i;:::-;9123:3;9116:50;9195:4;9190:3;9186:14;9179:21;;9066:144;9050:4;9045:3;9041:14;9034:21;;8990:220;;;8994:21;8608:608;;8506:710;;;;;:::o;9239:370::-;9310:5;9359:3;9352:4;9344:6;9340:17;9336:27;9326:122;;9367:79;;:::i;:::-;9326:122;9484:6;9471:20;9509:94;9599:3;9591:6;9584:4;9576:6;9572:17;9509:94;:::i;:::-;9500:103;;9316:293;9239:370;;;;:::o;9615:894::-;9733:6;9741;9790:2;9778:9;9769:7;9765:23;9761:32;9758:119;;;9796:79;;:::i;:::-;9758:119;9944:1;9933:9;9929:17;9916:31;9974:18;9966:6;9963:30;9960:117;;;9996:79;;:::i;:::-;9960:117;10101:78;10171:7;10162:6;10151:9;10147:22;10101:78;:::i;:::-;10091:88;;9887:302;10256:2;10245:9;10241:18;10228:32;10287:18;10279:6;10276:30;10273:117;;;10309:79;;:::i;:::-;10273:117;10414:78;10484:7;10475:6;10464:9;10460:22;10414:78;:::i;:::-;10404:88;;10199:303;9615:894;;;;;:::o;10515:474::-;10583:6;10591;10640:2;10628:9;10619:7;10615:23;10611:32;10608:119;;;10646:79;;:::i;:::-;10608:119;10766:1;10791:53;10836:7;10827:6;10816:9;10812:22;10791:53;:::i;:::-;10781:63;;10737:117;10893:2;10919:53;10964:7;10955:6;10944:9;10940:22;10919:53;:::i;:::-;10909:63;;10864:118;10515:474;;;;;:::o;10995:180::-;11043:77;11040:1;11033:88;11140:4;11137:1;11130:15;11164:4;11161:1;11154:15;11181:320;11225:6;11262:1;11256:4;11252:12;11242:22;;11309:1;11303:4;11299:12;11330:18;11320:81;;11386:4;11378:6;11374:17;11364:27;;11320:81;11448:2;11440:6;11437:14;11417:18;11414:38;11411:84;;11467:18;;:::i;:::-;11411:84;11232:269;11181:320;;;:::o;11507:227::-;11647:34;11643:1;11635:6;11631:14;11624:58;11716:10;11711:2;11703:6;11699:15;11692:35;11507:227;:::o;11740:366::-;11882:3;11903:67;11967:2;11962:3;11903:67;:::i;:::-;11896:74;;11979:93;12068:3;11979:93;:::i;:::-;12097:2;12092:3;12088:12;12081:19;;11740:366;;;:::o;12112:419::-;12278:4;12316:2;12305:9;12301:18;12293:26;;12365:9;12359:4;12355:20;12351:1;12340:9;12336:17;12329:47;12393:131;12519:4;12393:131;:::i;:::-;12385:139;;12112:419;;;:::o;12537:180::-;12585:77;12582:1;12575:88;12682:4;12679:1;12672:15;12706:4;12703:1;12696:15;12723:191;12763:3;12782:20;12800:1;12782:20;:::i;:::-;12777:25;;12816:20;12834:1;12816:20;:::i;:::-;12811:25;;12859:1;12856;12852:9;12845:16;;12880:3;12877:1;12874:10;12871:36;;;12887:18;;:::i;:::-;12871:36;12723:191;;;;:::o;12920:182::-;13060:34;13056:1;13048:6;13044:14;13037:58;12920:182;:::o;13108:366::-;13250:3;13271:67;13335:2;13330:3;13271:67;:::i;:::-;13264:74;;13347:93;13436:3;13347:93;:::i;:::-;13465:2;13460:3;13456:12;13449:19;;13108:366;;;:::o;13480:419::-;13646:4;13684:2;13673:9;13669:18;13661:26;;13733:9;13727:4;13723:20;13719:1;13708:9;13704:17;13697:47;13761:131;13887:4;13761:131;:::i;:::-;13753:139;;13480:419;;;:::o;13905:224::-;14045:34;14041:1;14033:6;14029:14;14022:58;14114:7;14109:2;14101:6;14097:15;14090:32;13905:224;:::o;14135:366::-;14277:3;14298:67;14362:2;14357:3;14298:67;:::i;:::-;14291:74;;14374:93;14463:3;14374:93;:::i;:::-;14492:2;14487:3;14483:12;14476:19;;14135:366;;;:::o;14507:419::-;14673:4;14711:2;14700:9;14696:18;14688:26;;14760:9;14754:4;14750:20;14746:1;14735:9;14731:17;14724:47;14788:131;14914:4;14788:131;:::i;:::-;14780:139;;14507:419;;;:::o;14932:167::-;15072:19;15068:1;15060:6;15056:14;15049:43;14932:167;:::o;15105:366::-;15247:3;15268:67;15332:2;15327:3;15268:67;:::i;:::-;15261:74;;15344:93;15433:3;15344:93;:::i;:::-;15462:2;15457:3;15453:12;15446:19;;15105:366;;;:::o;15477:419::-;15643:4;15681:2;15670:9;15666:18;15658:26;;15730:9;15724:4;15720:20;15716:1;15705:9;15701:17;15694:47;15758:131;15884:4;15758:131;:::i;:::-;15750:139;;15477:419;;;:::o;15902:180::-;15950:77;15947:1;15940:88;16047:4;16044:1;16037:15;16071:4;16068:1;16061:15;16088:233;16127:3;16150:24;16168:5;16150:24;:::i;:::-;16141:33;;16196:66;16189:5;16186:77;16183:103;;16266:18;;:::i;:::-;16183:103;16313:1;16306:5;16302:13;16295:20;;16088:233;;;:::o;16327:166::-;16467:18;16463:1;16455:6;16451:14;16444:42;16327:166;:::o;16499:366::-;16641:3;16662:67;16726:2;16721:3;16662:67;:::i;:::-;16655:74;;16738:93;16827:3;16738:93;:::i;:::-;16856:2;16851:3;16847:12;16840:19;;16499:366;;;:::o;16871:419::-;17037:4;17075:2;17064:9;17060:18;17052:26;;17124:9;17118:4;17114:20;17110:1;17099:9;17095:17;17088:47;17152:131;17278:4;17152:131;:::i;:::-;17144:139;;16871:419;;;:::o;17296:225::-;17436:34;17432:1;17424:6;17420:14;17413:58;17505:8;17500:2;17492:6;17488:15;17481:33;17296:225;:::o;17527:366::-;17669:3;17690:67;17754:2;17749:3;17690:67;:::i;:::-;17683:74;;17766:93;17855:3;17766:93;:::i;:::-;17884:2;17879:3;17875:12;17868:19;;17527:366;;;:::o;17899:419::-;18065:4;18103:2;18092:9;18088:18;18080:26;;18152:9;18146:4;18142:20;18138:1;18127:9;18123:17;18116:47;18180:131;18306:4;18180:131;:::i;:::-;18172:139;;17899:419;;;:::o;18324:223::-;18464:34;18460:1;18452:6;18448:14;18441:58;18533:6;18528:2;18520:6;18516:15;18509:31;18324:223;:::o;18553:366::-;18695:3;18716:67;18780:2;18775:3;18716:67;:::i;:::-;18709:74;;18792:93;18881:3;18792:93;:::i;:::-;18910:2;18905:3;18901:12;18894:19;;18553:366;;;:::o;18925:419::-;19091:4;19129:2;19118:9;19114:18;19106:26;;19178:9;19172:4;19168:20;19164:1;19153:9;19149:17;19142:47;19206:131;19332:4;19206:131;:::i;:::-;19198:139;;18925:419;;;:::o;19350:221::-;19490:34;19486:1;19478:6;19474:14;19467:58;19559:4;19554:2;19546:6;19542:15;19535:29;19350:221;:::o;19577:366::-;19719:3;19740:67;19804:2;19799:3;19740:67;:::i;:::-;19733:74;;19816:93;19905:3;19816:93;:::i;:::-;19934:2;19929:3;19925:12;19918:19;;19577:366;;;:::o;19949:419::-;20115:4;20153:2;20142:9;20138:18;20130:26;;20202:9;20196:4;20192:20;20188:1;20177:9;20173:17;20166:47;20230:131;20356:4;20230:131;:::i;:::-;20222:139;;19949:419;;;:::o;20374:410::-;20414:7;20437:20;20455:1;20437:20;:::i;:::-;20432:25;;20471:20;20489:1;20471:20;:::i;:::-;20466:25;;20526:1;20523;20519:9;20548:30;20566:11;20548:30;:::i;:::-;20537:41;;20727:1;20718:7;20714:15;20711:1;20708:22;20688:1;20681:9;20661:83;20638:139;;20757:18;;:::i;:::-;20638:139;20422:362;20374:410;;;;:::o;20790:180::-;20838:77;20835:1;20828:88;20935:4;20932:1;20925:15;20959:4;20956:1;20949:15;20976:185;21016:1;21033:20;21051:1;21033:20;:::i;:::-;21028:25;;21067:20;21085:1;21067:20;:::i;:::-;21062:25;;21106:1;21096:35;;21111:18;;:::i;:::-;21096:35;21153:1;21150;21146:9;21141:14;;20976:185;;;;:::o;21167:194::-;21207:4;21227:20;21245:1;21227:20;:::i;:::-;21222:25;;21261:20;21279:1;21261:20;:::i;:::-;21256:25;;21305:1;21302;21298:9;21290:17;;21329:1;21323:4;21320:11;21317:37;;;21334:18;;:::i;:::-;21317:37;21167:194;;;;:::o;21367:181::-;21507:33;21503:1;21495:6;21491:14;21484:57;21367:181;:::o;21554:366::-;21696:3;21717:67;21781:2;21776:3;21717:67;:::i;:::-;21710:74;;21793:93;21882:3;21793:93;:::i;:::-;21911:2;21906:3;21902:12;21895:19;;21554:366;;;:::o;21926:419::-;22092:4;22130:2;22119:9;22115:18;22107:26;;22179:9;22173:4;22169:20;22165:1;22154:9;22150:17;22143:47;22207:131;22333:4;22207:131;:::i;:::-;22199:139;;21926:419;;;:::o;22351:220::-;22491:34;22487:1;22479:6;22475:14;22468:58;22560:3;22555:2;22547:6;22543:15;22536:28;22351:220;:::o;22577:366::-;22719:3;22740:67;22804:2;22799:3;22740:67;:::i;:::-;22733:74;;22816:93;22905:3;22816:93;:::i;:::-;22934:2;22929:3;22925:12;22918:19;;22577:366;;;:::o;22949:419::-;23115:4;23153:2;23142:9;23138:18;23130:26;;23202:9;23196:4;23192:20;23188:1;23177:9;23173:17;23166:47;23230:131;23356:4;23230:131;:::i;:::-;23222:139;;22949:419;;;:::o;23374:221::-;23514:34;23510:1;23502:6;23498:14;23491:58;23583:4;23578:2;23570:6;23566:15;23559:29;23374:221;:::o;23601:366::-;23743:3;23764:67;23828:2;23823:3;23764:67;:::i;:::-;23757:74;;23840:93;23929:3;23840:93;:::i;:::-;23958:2;23953:3;23949:12;23942:19;;23601:366;;;:::o;23973:419::-;24139:4;24177:2;24166:9;24162:18;24154:26;;24226:9;24220:4;24216:20;24212:1;24201:9;24197:17;24190:47;24254:131;24380:4;24254:131;:::i;:::-;24246:139;;23973:419;;;:::o;24398:224::-;24538:34;24534:1;24526:6;24522:14;24515:58;24607:7;24602:2;24594:6;24590:15;24583:32;24398:224;:::o;24628:366::-;24770:3;24791:67;24855:2;24850:3;24791:67;:::i;:::-;24784:74;;24867:93;24956:3;24867:93;:::i;:::-;24985:2;24980:3;24976:12;24969:19;;24628:366;;;:::o;25000:419::-;25166:4;25204:2;25193:9;25189:18;25181:26;;25253:9;25247:4;25243:20;25239:1;25228:9;25224:17;25217:47;25281:131;25407:4;25281:131;:::i;:::-;25273:139;;25000:419;;;:::o;25425:222::-;25565:34;25561:1;25553:6;25549:14;25542:58;25634:5;25629:2;25621:6;25617:15;25610:30;25425:222;:::o;25653:366::-;25795:3;25816:67;25880:2;25875:3;25816:67;:::i;:::-;25809:74;;25892:93;25981:3;25892:93;:::i;:::-;26010:2;26005:3;26001:12;25994:19;;25653:366;;;:::o;26025:419::-;26191:4;26229:2;26218:9;26214:18;26206:26;;26278:9;26272:4;26268:20;26264:1;26253:9;26249:17;26242:47;26306:131;26432:4;26306:131;:::i;:::-;26298:139;;26025:419;;;:::o;26450:225::-;26590:34;26586:1;26578:6;26574:14;26567:58;26659:8;26654:2;26646:6;26642:15;26635:33;26450:225;:::o;26681:366::-;26823:3;26844:67;26908:2;26903:3;26844:67;:::i;:::-;26837:74;;26920:93;27009:3;26920:93;:::i;:::-;27038:2;27033:3;27029:12;27022:19;;26681:366;;;:::o;27053:419::-;27219:4;27257:2;27246:9;27242:18;27234:26;;27306:9;27300:4;27296:20;27292:1;27281:9;27277:17;27270:47;27334:131;27460:4;27334:131;:::i;:::-;27326:139;;27053:419;;;:::o

Swarm Source

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