Contract 0x028E2a8C28AC1f5C6af8A8c5B32B08760a806f12

Contract Overview

Balance:
0 MATIC
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xc53e5aef916fbe208d7b0dcb500abf687dd5e43bfc9c54a0d6523825718eec37Transfer256088902022-03-21 19:17:24195 days 19 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.0000784365 1.500000011
0x910924858af59b9411c5148a1e5d41142f3084670592adb73e046fa0e0562f30Transfer256031882022-03-21 8:35:25196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.000078436498 1.499999965
0x31f238440ccd42f7e3a69dfd5728b149a3a30ec8e8e0f28c57643baa767a1df8Mint IMPACT256031452022-03-21 8:31:50196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.00009546 2.500000018
0x5f32c4386be5116cb49a703763e94fb6e3ebaaa134050ada5a5fcb8f5a276905Mint IMPACT256031452022-03-21 8:31:50196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.000057276 1.500000015
0xd9f3c7f88ad537d4db2ba388f5b04ebf2b2a7a59764c76fb90331b923375156aMint IMPACT256031452022-03-21 8:31:50196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.000057276 1.500000009
0x1d850d4987c71e878bc203fefbf487b65337b09db3e62b4205e34b2c68524a83Mint IMPACT256031452022-03-21 8:31:50196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.000057276 1.50000001
0xeb56ccd0a81654ed2836c77d0a50d5740cc0a408df9ac2842939cb5cf4a6253bMint IMPACT256031452022-03-21 8:31:50196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.000090655691 1.252427214
0x5264b6fd3da45a724a6599fce14b562e5610fdf7fb891061fd3262fda0dfb3fbTransfer From256031452022-03-21 8:31:50196 days 6 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  0x028e2a8c28ac1f5c6af8a8c5b32b08760a806f120 MATIC0.000038412005 1.500000219
0xb649b06cc1d30c26d1dd14067bc618e5286dcd91d0542181286669cdb86b65c10x60806040255965832022-03-20 19:42:37196 days 18 hrs ago0xbc4a346abcea636275a82efcca58052a3bdcd812 IN  Create: IMPACT0 MATIC0.00639276515 4.586974287
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IMPACT

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-03-20
*/

// SPDX-License-Identifier: MIT
// File: @openzeppelin/contracts/utils/Context.sol


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

pragma solidity ^0.8.0;

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

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

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


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

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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

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

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

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

    /**
     * @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/IERC20Metadata.sol


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

pragma solidity ^0.8.0;


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

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

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

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


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

pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

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

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

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        _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 Spend `amount` form the allowance of `owner` toward `spender`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

// File: Impact.sol


pragma solidity ^0.8.4;


contract IMPACT is ERC20 {
    address owner;
    uint256 MAX_SUPPLY = 1000000;

    constructor() ERC20("IMPACT", "IMT") {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "You are not the owner");
        _;
    }

    function mintIMPACT() external onlyOwner {
        _mint(msg.sender, MAX_SUPPLY);
    }

    function transferIMPACT(address to, uint256 amount)
        external
        returns (bool)
    {
        bool isTransferred = transfer(to, amount);
        return isTransferred;
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintIMPACT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferIMPACT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052620f42406006553480156200001857600080fd5b506040518060400160405280600681526020017f494d5041435400000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f494d54000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009d92919062000100565b508060049080519060200190620000b692919062000100565b50505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000215565b8280546200010e90620001b0565b90600052602060002090601f0160209004810192826200013257600085556200017e565b82601f106200014d57805160ff19168380011785556200017e565b828001600101855582156200017e579182015b828111156200017d57825182559160200191906001019062000160565b5b5090506200018d919062000191565b5090565b5b80821115620001ac57600081600090555060010162000192565b5090565b60006002820490506001821680620001c957607f821691505b60208210811415620001e057620001df620001e6565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61169d80620002256000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb1461023c578063dd62ed3e1461026c578063f3ed45921461029c578063f9fc2923146102a6576100cf565b806370a08231146101be57806395d89b41146101ee578063a457c2d71461020c576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd14610140578063313ce56714610170578063395093511461018e575b600080fd5b6100dc6102d6565b6040516100e991906110cc565b60405180910390f35b61010c60048036038101906101079190610ed0565b610368565b60405161011991906110b1565b60405180910390f35b61012a61038b565b604051610137919061120e565b60405180910390f35b61015a60048036038101906101559190610e7d565b610395565b60405161016791906110b1565b60405180910390f35b6101786103c4565b6040516101859190611229565b60405180910390f35b6101a860048036038101906101a39190610ed0565b6103cd565b6040516101b591906110b1565b60405180910390f35b6101d860048036038101906101d39190610e10565b610477565b6040516101e5919061120e565b60405180910390f35b6101f66104bf565b60405161020391906110cc565b60405180910390f35b61022660048036038101906102219190610ed0565b610551565b60405161023391906110b1565b60405180910390f35b61025660048036038101906102519190610ed0565b61063b565b60405161026391906110b1565b60405180910390f35b61028660048036038101906102819190610e3d565b61065e565b604051610293919061120e565b60405180910390f35b6102a46106e5565b005b6102c060048036038101906102bb9190610ed0565b610783565b6040516102cd91906110b1565b60405180910390f35b6060600380546102e59061133e565b80601f01602080910402602001604051908101604052809291908181526020018280546103119061133e565b801561035e5780601f106103335761010080835404028352916020019161035e565b820191906000526020600020905b81548152906001019060200180831161034157829003601f168201915b5050505050905090565b60008061037361079c565b90506103808185856107a4565b600191505092915050565b6000600254905090565b6000806103a061079c565b90506103ad85828561096f565b6103b88585856109fb565b60019150509392505050565b60006012905090565b6000806103d861079c565b905061046c818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104679190611260565b6107a4565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104ce9061133e565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa9061133e565b80156105475780601f1061051c57610100808354040283529160200191610547565b820191906000526020600020905b81548152906001019060200180831161052a57829003601f168201915b5050505050905090565b60008061055c61079c565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610622576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610619906111ce565b60405180910390fd5b61062f82868684036107a4565b60019250505092915050565b60008061064661079c565b90506106538185856109fb565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c9061116e565b60405180910390fd5b61078133600654610c7c565b565b600080610790848461063b565b90508091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080b906111ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087b9061110e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610962919061120e565b60405180910390a3505050565b600061097b848461065e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109f557818110156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de9061112e565b60405180910390fd5b6109f484848484036107a4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a629061118e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad2906110ee565b60405180910390fd5b610ae6838383610ddc565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b639061114e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610bff9190611260565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c63919061120e565b60405180910390a3610c76848484610de1565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce3906111ee565b60405180910390fd5b610cf860008383610ddc565b8060026000828254610d0a9190611260565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d5f9190611260565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610dc4919061120e565b60405180910390a3610dd860008383610de1565b5050565b505050565b505050565b600081359050610df581611639565b92915050565b600081359050610e0a81611650565b92915050565b600060208284031215610e2657610e256113ce565b5b6000610e3484828501610de6565b91505092915050565b60008060408385031215610e5457610e536113ce565b5b6000610e6285828601610de6565b9250506020610e7385828601610de6565b9150509250929050565b600080600060608486031215610e9657610e956113ce565b5b6000610ea486828701610de6565b9350506020610eb586828701610de6565b9250506040610ec686828701610dfb565b9150509250925092565b60008060408385031215610ee757610ee66113ce565b5b6000610ef585828601610de6565b9250506020610f0685828601610dfb565b9150509250929050565b610f19816112c8565b82525050565b6000610f2a82611244565b610f34818561124f565b9350610f4481856020860161130b565b610f4d816113d3565b840191505092915050565b6000610f6560238361124f565b9150610f70826113e4565b604082019050919050565b6000610f8860228361124f565b9150610f9382611433565b604082019050919050565b6000610fab601d8361124f565b9150610fb682611482565b602082019050919050565b6000610fce60268361124f565b9150610fd9826114ab565b604082019050919050565b6000610ff160158361124f565b9150610ffc826114fa565b602082019050919050565b600061101460258361124f565b915061101f82611523565b604082019050919050565b600061103760248361124f565b915061104282611572565b604082019050919050565b600061105a60258361124f565b9150611065826115c1565b604082019050919050565b600061107d601f8361124f565b915061108882611610565b602082019050919050565b61109c816112f4565b82525050565b6110ab816112fe565b82525050565b60006020820190506110c66000830184610f10565b92915050565b600060208201905081810360008301526110e68184610f1f565b905092915050565b6000602082019050818103600083015261110781610f58565b9050919050565b6000602082019050818103600083015261112781610f7b565b9050919050565b6000602082019050818103600083015261114781610f9e565b9050919050565b6000602082019050818103600083015261116781610fc1565b9050919050565b6000602082019050818103600083015261118781610fe4565b9050919050565b600060208201905081810360008301526111a781611007565b9050919050565b600060208201905081810360008301526111c78161102a565b9050919050565b600060208201905081810360008301526111e78161104d565b9050919050565b6000602082019050818103600083015261120781611070565b9050919050565b60006020820190506112236000830184611093565b92915050565b600060208201905061123e60008301846110a2565b92915050565b600081519050919050565b600082825260208201905092915050565b600061126b826112f4565b9150611276836112f4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156112ab576112aa611370565b5b828201905092915050565b60006112c1826112d4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561132957808201518184015260208101905061130e565b83811115611338576000848401525b50505050565b6000600282049050600182168061135657607f821691505b6020821081141561136a5761136961139f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f596f7520617265206e6f7420746865206f776e65720000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611642816112b6565b811461164d57600080fd5b50565b611659816112f4565b811461166457600080fd5b5056fea2646970667358221220f1531845323d8437379b3c5c1b5ce75ab9f4089bd3adbb5774e0c80c956bf08664736f6c63430008070033

Deployed ByteCode Sourcemap

17535:574:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6686:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9037:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7806:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9818:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7648:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10522:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7977:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6905:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11265:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8310:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8566:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17819:89;;;:::i;:::-;;17916:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6686:100;6740:13;6773:5;6766:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6686:100;:::o;9037:201::-;9120:4;9137:13;9153:12;:10;:12::i;:::-;9137:28;;9176:32;9185:5;9192:7;9201:6;9176:8;:32::i;:::-;9226:4;9219:11;;;9037:201;;;;:::o;7806:108::-;7867:7;7894:12;;7887:19;;7806:108;:::o;9818:295::-;9949:4;9966:15;9984:12;:10;:12::i;:::-;9966:30;;10007:38;10023:4;10029:7;10038:6;10007:15;:38::i;:::-;10056:27;10066:4;10072:2;10076:6;10056:9;:27::i;:::-;10101:4;10094:11;;;9818:295;;;;;:::o;7648:93::-;7706:5;7731:2;7724:9;;7648:93;:::o;10522:240::-;10610:4;10627:13;10643:12;:10;:12::i;:::-;10627:28;;10666:66;10675:5;10682:7;10721:10;10691:11;:18;10703:5;10691:18;;;;;;;;;;;;;;;:27;10710:7;10691:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;10666:8;:66::i;:::-;10750:4;10743:11;;;10522:240;;;;:::o;7977:127::-;8051:7;8078:9;:18;8088:7;8078:18;;;;;;;;;;;;;;;;8071:25;;7977:127;;;:::o;6905:104::-;6961:13;6994:7;6987:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6905:104;:::o;11265:438::-;11358:4;11375:13;11391:12;:10;:12::i;:::-;11375:28;;11414:24;11441:11;:18;11453:5;11441:18;;;;;;;;;;;;;;;:27;11460:7;11441:27;;;;;;;;;;;;;;;;11414:54;;11507:15;11487:16;:35;;11479:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11600:60;11609:5;11616:7;11644:15;11625:16;:34;11600:8;:60::i;:::-;11691:4;11684:11;;;;11265:438;;;;:::o;8310:193::-;8389:4;8406:13;8422:12;:10;:12::i;:::-;8406:28;;8445;8455:5;8462:2;8466:6;8445:9;:28::i;:::-;8491:4;8484:11;;;8310:193;;;;:::o;8566:151::-;8655:7;8682:11;:18;8694:5;8682:18;;;;;;;;;;;;;;;:27;8701:7;8682:27;;;;;;;;;;;;;;;;8675:34;;8566:151;;;;:::o;17819:89::-;17760:5;;;;;;;;;;;17746:19;;:10;:19;;;17738:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;17871:29:::1;17877:10;17889;;17871:5;:29::i;:::-;17819:89::o:0;17916:190::-;18004:4;18026:18;18047:20;18056:2;18060:6;18047:8;:20::i;:::-;18026:41;;18085:13;18078:20;;;17916:190;;;;:::o;712:98::-;765:7;792:10;785:17;;712:98;:::o;14901:380::-;15054:1;15037:19;;:5;:19;;;;15029:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15135:1;15116:21;;:7;:21;;;;15108:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15219:6;15189:11;:18;15201:5;15189:18;;;;;;;;;;;;;;;:27;15208:7;15189:27;;;;;;;;;;;;;;;:36;;;;15257:7;15241:32;;15250:5;15241:32;;;15266:6;15241:32;;;;;;:::i;:::-;;;;;;;;14901:380;;;:::o;15568:453::-;15703:24;15730:25;15740:5;15747:7;15730:9;:25::i;:::-;15703:52;;15790:17;15770:16;:37;15766:248;;15852:6;15832:16;:26;;15824:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15936:51;15945:5;15952:7;15980:6;15961:16;:25;15936:8;:51::i;:::-;15766:248;15692:329;15568:453;;;:::o;12182:671::-;12329:1;12313:18;;:4;:18;;;;12305:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12406:1;12392:16;;:2;:16;;;;12384:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12461:38;12482:4;12488:2;12492:6;12461:20;:38::i;:::-;12512:19;12534:9;:15;12544:4;12534:15;;;;;;;;;;;;;;;;12512:37;;12583:6;12568:11;:21;;12560:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12700:6;12686:11;:20;12668:9;:15;12678:4;12668:15;;;;;;;;;;;;;;;:38;;;;12745:6;12728:9;:13;12738:2;12728:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;12784:2;12769:26;;12778:4;12769:26;;;12788:6;12769:26;;;;;;:::i;:::-;;;;;;;;12808:37;12828:4;12834:2;12838:6;12808:19;:37::i;:::-;12294:559;12182:671;;;:::o;13140:399::-;13243:1;13224:21;;:7;:21;;;;13216:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13294:49;13323:1;13327:7;13336:6;13294:20;:49::i;:::-;13372:6;13356:12;;:22;;;;;;;:::i;:::-;;;;;;;;13411:6;13389:9;:18;13399:7;13389:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13454:7;13433:37;;13450:1;13433:37;;;13463:6;13433:37;;;;;;:::i;:::-;;;;;;;;13483:48;13511:1;13515:7;13524:6;13483:19;:48::i;:::-;13140:399;;:::o;16621:125::-;;;;:::o;17350:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2217:109;;:::o;2332:364::-;2420:3;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;2332:364;;;;:::o;2702:366::-;2844:3;2865:67;2929:2;2924:3;2865:67;:::i;:::-;2858:74;;2941:93;3030:3;2941:93;:::i;:::-;3059:2;3054:3;3050:12;3043:19;;2702:366;;;:::o;3074:::-;3216:3;3237:67;3301:2;3296:3;3237:67;:::i;:::-;3230:74;;3313:93;3402:3;3313:93;:::i;:::-;3431:2;3426:3;3422:12;3415:19;;3074:366;;;:::o;3446:::-;3588:3;3609:67;3673:2;3668:3;3609:67;:::i;:::-;3602:74;;3685:93;3774:3;3685:93;:::i;:::-;3803:2;3798:3;3794:12;3787:19;;3446:366;;;:::o;3818:::-;3960:3;3981:67;4045:2;4040:3;3981:67;:::i;:::-;3974:74;;4057:93;4146:3;4057:93;:::i;:::-;4175:2;4170:3;4166:12;4159:19;;3818:366;;;:::o;4190:::-;4332:3;4353:67;4417:2;4412:3;4353:67;:::i;:::-;4346:74;;4429:93;4518:3;4429:93;:::i;:::-;4547:2;4542:3;4538:12;4531:19;;4190:366;;;:::o;4562:::-;4704:3;4725:67;4789:2;4784:3;4725:67;:::i;:::-;4718:74;;4801:93;4890:3;4801:93;:::i;:::-;4919:2;4914:3;4910:12;4903:19;;4562:366;;;:::o;4934:::-;5076:3;5097:67;5161:2;5156:3;5097:67;:::i;:::-;5090:74;;5173:93;5262:3;5173:93;:::i;:::-;5291:2;5286:3;5282:12;5275:19;;4934:366;;;:::o;5306:::-;5448:3;5469:67;5533:2;5528:3;5469:67;:::i;:::-;5462:74;;5545:93;5634:3;5545:93;:::i;:::-;5663:2;5658:3;5654:12;5647:19;;5306:366;;;:::o;5678:::-;5820:3;5841:67;5905:2;5900:3;5841:67;:::i;:::-;5834:74;;5917:93;6006:3;5917:93;:::i;:::-;6035:2;6030:3;6026:12;6019:19;;5678:366;;;:::o;6050:118::-;6137:24;6155:5;6137:24;:::i;:::-;6132:3;6125:37;6050:118;;:::o;6174:112::-;6257:22;6273:5;6257:22;:::i;:::-;6252:3;6245:35;6174:112;;:::o;6292:210::-;6379:4;6417:2;6406:9;6402:18;6394:26;;6430:65;6492:1;6481:9;6477:17;6468:6;6430:65;:::i;:::-;6292:210;;;;:::o;6508:313::-;6621:4;6659:2;6648:9;6644:18;6636:26;;6708:9;6702:4;6698:20;6694:1;6683:9;6679:17;6672:47;6736:78;6809:4;6800:6;6736:78;:::i;:::-;6728:86;;6508:313;;;;:::o;6827:419::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7080:9;7074:4;7070:20;7066:1;7055:9;7051:17;7044:47;7108:131;7234:4;7108:131;:::i;:::-;7100:139;;6827:419;;;:::o;7252:::-;7418:4;7456:2;7445:9;7441:18;7433:26;;7505:9;7499:4;7495:20;7491:1;7480:9;7476:17;7469:47;7533:131;7659:4;7533:131;:::i;:::-;7525:139;;7252:419;;;:::o;7677:::-;7843:4;7881:2;7870:9;7866:18;7858:26;;7930:9;7924:4;7920:20;7916:1;7905:9;7901:17;7894:47;7958:131;8084:4;7958:131;:::i;:::-;7950:139;;7677:419;;;:::o;8102:::-;8268:4;8306:2;8295:9;8291:18;8283:26;;8355:9;8349:4;8345:20;8341:1;8330:9;8326:17;8319:47;8383:131;8509:4;8383:131;:::i;:::-;8375:139;;8102:419;;;:::o;8527:::-;8693:4;8731:2;8720:9;8716:18;8708:26;;8780:9;8774:4;8770:20;8766:1;8755:9;8751:17;8744:47;8808:131;8934:4;8808:131;:::i;:::-;8800:139;;8527:419;;;:::o;8952:::-;9118:4;9156:2;9145:9;9141:18;9133:26;;9205:9;9199:4;9195:20;9191:1;9180:9;9176:17;9169:47;9233:131;9359:4;9233:131;:::i;:::-;9225:139;;8952:419;;;:::o;9377:::-;9543:4;9581:2;9570:9;9566:18;9558:26;;9630:9;9624:4;9620:20;9616:1;9605:9;9601:17;9594:47;9658:131;9784:4;9658:131;:::i;:::-;9650:139;;9377:419;;;:::o;9802:::-;9968:4;10006:2;9995:9;9991:18;9983:26;;10055:9;10049:4;10045:20;10041:1;10030:9;10026:17;10019:47;10083:131;10209:4;10083:131;:::i;:::-;10075:139;;9802:419;;;:::o;10227:::-;10393:4;10431:2;10420:9;10416:18;10408:26;;10480:9;10474:4;10470:20;10466:1;10455:9;10451:17;10444:47;10508:131;10634:4;10508:131;:::i;:::-;10500:139;;10227:419;;;:::o;10652:222::-;10745:4;10783:2;10772:9;10768:18;10760:26;;10796:71;10864:1;10853:9;10849:17;10840:6;10796:71;:::i;:::-;10652:222;;;;:::o;10880:214::-;10969:4;11007:2;10996:9;10992:18;10984:26;;11020:67;11084:1;11073:9;11069:17;11060:6;11020:67;:::i;:::-;10880:214;;;;:::o;11181:99::-;11233:6;11267:5;11261:12;11251:22;;11181:99;;;:::o;11286:169::-;11370:11;11404:6;11399:3;11392:19;11444:4;11439:3;11435:14;11420:29;;11286:169;;;;:::o;11461:305::-;11501:3;11520:20;11538:1;11520:20;:::i;:::-;11515:25;;11554:20;11572:1;11554:20;:::i;:::-;11549:25;;11708:1;11640:66;11636:74;11633:1;11630:81;11627:107;;;11714:18;;:::i;:::-;11627:107;11758:1;11755;11751:9;11744:16;;11461:305;;;;:::o;11772:96::-;11809:7;11838:24;11856:5;11838:24;:::i;:::-;11827:35;;11772:96;;;:::o;11874:90::-;11908:7;11951:5;11944:13;11937:21;11926:32;;11874:90;;;:::o;11970:126::-;12007:7;12047:42;12040:5;12036:54;12025:65;;11970:126;;;:::o;12102:77::-;12139:7;12168:5;12157:16;;12102:77;;;:::o;12185:86::-;12220:7;12260:4;12253:5;12249:16;12238:27;;12185:86;;;:::o;12277:307::-;12345:1;12355:113;12369:6;12366:1;12363:13;12355:113;;;12454:1;12449:3;12445:11;12439:18;12435:1;12430:3;12426:11;12419:39;12391:2;12388:1;12384:10;12379:15;;12355:113;;;12486:6;12483:1;12480:13;12477:101;;;12566:1;12557:6;12552:3;12548:16;12541:27;12477:101;12326:258;12277:307;;;:::o;12590:320::-;12634:6;12671:1;12665:4;12661:12;12651:22;;12718:1;12712:4;12708:12;12739:18;12729:81;;12795:4;12787:6;12783:17;12773:27;;12729:81;12857:2;12849:6;12846:14;12826:18;12823:38;12820:84;;;12876:18;;:::i;:::-;12820:84;12641:269;12590:320;;;:::o;12916:180::-;12964:77;12961:1;12954:88;13061:4;13058:1;13051:15;13085:4;13082:1;13075:15;13102:180;13150:77;13147:1;13140:88;13247:4;13244:1;13237:15;13271:4;13268:1;13261:15;13411:117;13520:1;13517;13510:12;13534:102;13575:6;13626:2;13622:7;13617:2;13610:5;13606:14;13602:28;13592:38;;13534:102;;;:::o;13642:222::-;13782:34;13778:1;13770:6;13766:14;13759:58;13851:5;13846:2;13838:6;13834:15;13827:30;13642:222;:::o;13870:221::-;14010:34;14006:1;13998:6;13994:14;13987:58;14079:4;14074:2;14066:6;14062:15;14055:29;13870:221;:::o;14097:179::-;14237:31;14233:1;14225:6;14221:14;14214:55;14097:179;:::o;14282:225::-;14422:34;14418:1;14410:6;14406:14;14399:58;14491:8;14486:2;14478:6;14474:15;14467:33;14282:225;:::o;14513:171::-;14653:23;14649:1;14641:6;14637:14;14630:47;14513:171;:::o;14690:224::-;14830:34;14826:1;14818:6;14814:14;14807:58;14899:7;14894:2;14886:6;14882:15;14875:32;14690:224;:::o;14920:223::-;15060:34;15056:1;15048:6;15044:14;15037:58;15129:6;15124:2;15116:6;15112:15;15105:31;14920:223;:::o;15149:224::-;15289:34;15285:1;15277:6;15273:14;15266:58;15358:7;15353:2;15345:6;15341:15;15334:32;15149:224;:::o;15379:181::-;15519:33;15515:1;15507:6;15503:14;15496:57;15379:181;:::o;15566:122::-;15639:24;15657:5;15639:24;:::i;:::-;15632:5;15629:35;15619:63;;15678:1;15675;15668:12;15619:63;15566:122;:::o;15694:::-;15767:24;15785:5;15767:24;:::i;:::-;15760:5;15757:35;15747:63;;15806:1;15803;15796:12;15747:63;15694:122;:::o

Swarm Source

ipfs://f1531845323d8437379b3c5c1b5ce75ab9f4089bd3adbb5774e0c80c956bf086
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading