ETH Price: $3,663.17 (+0.73%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214925572024-12-27 8:19:239 days ago1735287563IN
Incognito: PRV Token
0 ETH0.000157525.83612315
Approve214925552024-12-27 8:18:599 days ago1735287539IN
Incognito: PRV Token
0 ETH0.000282186.01774838
Transfer203834572024-07-25 12:07:23164 days ago1721909243IN
Incognito: PRV Token
0 ETH0.000172493.47327124
Approve198134892024-05-06 20:41:11244 days ago1715028071IN
Incognito: PRV Token
0 ETH0.000349497.41136362
Transfer196780412024-04-17 22:02:11263 days ago1713391331IN
Incognito: PRV Token
0 ETH0.0005731711.54391757
Transfer195251952024-03-27 10:53:35284 days ago1711536815IN
Incognito: PRV Token
0 ETH0.0013017126.20415922
Transfer192581602024-02-19 0:13:59322 days ago1708301639IN
Incognito: PRV Token
0 ETH0.0009611129.50384166
Transfer192575592024-02-18 22:11:47322 days ago1708294307IN
Incognito: PRV Token
0 ETH0.0010539621.22186624
Approve189582812024-01-07 22:51:35364 days ago1704667895IN
Incognito: PRV Token
0 ETH0.001542232.6627436
Transfer183524212023-10-15 1:12:47449 days ago1697332367IN
Incognito: PRV Token
0 ETH0.000282115.17991196
Transfer183523702023-10-15 1:02:23449 days ago1697331743IN
Incognito: PRV Token
0 ETH0.000266665.36809595
Transfer180627042023-09-04 11:05:47489 days ago1693825547IN
Incognito: PRV Token
0 ETH0.0007689620.5802446
Transfer180626542023-09-04 10:55:47489 days ago1693824947IN
Incognito: PRV Token
0 ETH0.0006595312.11220924
Transfer178949702023-08-11 23:39:11513 days ago1691797151IN
Incognito: PRV Token
0 ETH0.0005311516.30521639
Transfer178947932023-08-11 23:03:11513 days ago1691794991IN
Incognito: PRV Token
0 ETH0.0008574915.74416554
Transfer177884872023-07-28 2:10:59528 days ago1690510259IN
Incognito: PRV Token
0 ETH0.0008971918.06090456
Transfer176629362023-07-10 11:22:47545 days ago1688988167IN
Incognito: PRV Token
0 ETH0.0008458117.03074802
Transfer175307092023-06-21 21:27:59564 days ago1687382879IN
Incognito: PRV Token
0 ETH0.0008914617.94982515
Approve173413972023-05-26 6:08:35590 days ago1685081315IN
Incognito: PRV Token
0 ETH0.000736726.96979625
Approve173413912023-05-26 6:07:23590 days ago1685081243IN
Incognito: PRV Token
0 ETH0.001221925.87907761
Approve172446242023-05-12 14:07:59604 days ago1683900479IN
Incognito: PRV Token
0 ETH0.003491974.54327871
Transfer169420772023-03-30 19:16:35647 days ago1680203795IN
Incognito: PRV Token
0 ETH0.0008644529.09051802
Approve168584132023-03-19 1:09:59659 days ago1679188199IN
Incognito: PRV Token
0 ETH0.0003853914.3098806
Approve168407622023-03-16 13:40:23661 days ago1678974023IN
Incognito: PRV Token
0 ETH0.0010894223.07320381
Transfer166641272023-02-19 17:29:47686 days ago1676827787IN
Incognito: PRV Token
0 ETH0.0014288128.76258334
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

/**
 * @dev Interface of the contract capable of checking if an instruction is
 * confirmed over at Incognito Chain
 */
interface Incognito {
    function instructionApproved(
        bool,
        bytes32,
        uint,
        bytes32[] calldata,
        bool[] calldata,
        bytes32,
        bytes32,
        uint[] calldata,
        uint8[] calldata,
        bytes32[] calldata,
        bytes32[] calldata
    ) external view returns (bool);
}

/**
 * @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;
    mapping(bytes32 => bool) private withdrawed;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    address private _incognitoProxy;
    address private _vault;

    /**
    * @dev END Storage variables
    */
    struct BurnInstData {
        uint8 meta; // type of the instruction
        uint8 shard; // ID of the Incognito shard containing the instruction, must be 1
        address token; // ETH address of the token contract (0x0 for ETH)
        address payable to; // ETH address of the receiver of the token
        uint amount; // burned amount (on Incognito)
        bytes32 itx; // Incognito's burning tx
    }

    /**
     * @dev Emitted when function burn called with amount of value to shield to incognito chain
     *
     * Note that `value` may be zero.
     */
    event Deposit(address token, string incognitoAddress, uint amount);

    /**
     * @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_, address incognitoProxy_, address vault_) {
        _name = name_;
        _symbol = symbol_;
        _incognitoProxy = incognitoProxy_;
        _vault = vault_;
    }

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

    /**
     * @dev Returns the incognito proxy.
     */
    function incognitoProxy() public view virtual returns (address) {
        return _incognitoProxy;
    }

    /**
     * @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 9;
    }

    /**
     * @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");
        require(recipient != _vault, "ERC20: transfer to incognito vault 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 Parses a burn instruction and returns the components
     * @param inst: the full instruction, containing both metadata and body
     */
    function _parseBurnInst(bytes memory inst) internal pure returns (BurnInstData memory) {
        BurnInstData memory data;
        data.meta = uint8(inst[0]);
        data.shard = uint8(inst[1]);
        address token;
        address payable to;
        uint amount;
        bytes32 itx;
        assembly {
            // skip first 0x20 bytes (stored length of inst)
            token := mload(add(inst, 0x22)) // [3:34]
            to := mload(add(inst, 0x42)) // [34:66]
            amount := mload(add(inst, 0x62)) // [66:98]
            itx := mload(add(inst, 0x82)) // [98:130]
        }
        data.token = token;
        data.to = to;
        data.amount = amount;
        data.itx = itx;
        return data;
    }

    /**
     * @dev Verifies that a burn instruction is valid
     * @notice All params except inst are the list of 2 elements corresponding to
     * the proof on beacon and bridge
     * @notice All params are the same as in `withdraw`
     */
    function _verifyInst(
        bytes memory inst,
        uint heights,
        bytes32[] memory instPaths,
        bool[] memory instPathIsLefts,
        bytes32 instRoots,
        bytes32 blkData,
        uint[] memory sigIdxs,
        uint8[] memory sigVs,
        bytes32[] memory sigRs,
        bytes32[] memory sigSs
    ) view internal {
        // Each instruction can only by redeemed once
        bytes32 beaconInstHash = keccak256(abi.encodePacked(inst, heights));

        // Verify instruction on beacon
        require(Incognito(_incognitoProxy).instructionApproved(
            true, // Only check instruction on beacon
            beaconInstHash,
            heights,
            instPaths,
            instPathIsLefts,
            instRoots,
            blkData,
            sigIdxs,
            sigVs,
            sigRs,
            sigSs
        ), "ERC20: invalid input mint data");
    }

    /**
     * @dev Mint prv by providing a burn proof over at Incognito Chain
     * @notice This function takes a burn instruction on Incognito Chain, checks
     * for its validity and mint coressponding prv token
     * @notice This only works when the contract is not Paused
     * @param inst: the decoded instruction as a list of bytes
     * @param heights: the blocks containing the instruction
     * @param instPaths: merkle path of the instruction
     * @param instPathIsLefts: whether each node on the path is the left or right child
     * @param instRoots: root of the merkle tree contains all instructions
     * @param blkData: merkle has of the block body
     * @param sigIdxs: indices of the validators who signed this block
     * @param sigVs: part of the signatures of the validators
     * @param sigRs: part of the signatures of the validators
     * @param sigSs: part of the signatures of the validators
     */
    function mint(
        bytes memory inst,
        uint heights,
        bytes32[] memory instPaths,
        bool[] memory instPathIsLefts,
        bytes32 instRoots,
        bytes32 blkData,
        uint[] memory sigIdxs,
        uint8[] memory sigVs,
        bytes32[] memory sigRs,
        bytes32[] memory sigSs
    ) external virtual returns (bool) {
        
        require(inst.length >= 130, "ERC20: invalid inst");
        BurnInstData memory data = _parseBurnInst(inst);
        // Check instruction type
        require(data.meta == 150 && data.shard == 1, "ERC20: invalid inst's data"); 
        // Check token address
        require(data.token == address(this), "ERC20: invalid token");
        // Not withdrawed
        require(!withdrawed[data.itx], "ERC20: tx is already used");
        withdrawed[data.itx] = true;
        // verify proof
        _verifyInst(
            inst,
            heights,
            instPaths,
            instPathIsLefts,
            instRoots,
            blkData,
            sigIdxs,
            sigVs,
            sigRs,
            sigSs
        );

        address account = data.to;
        uint amount = data.amount;
        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

        return true;
    }

    /**
     * @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(string calldata incognitoAddress, uint256 amount) external virtual returns (bool) {
        address account = _msgSender();
        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;

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

        emit Deposit(address(this), incognitoAddress, amount);

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

        return true;
    }

    /**
     * @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 2 of 4: Context.sol
// SPDX-License-Identifier: MIT

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 3 of 4: IERC20.sol
// SPDX-License-Identifier: MIT

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 4 of 4: IERC20Metadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"incognitoProxy_","type":"address"},{"internalType":"address","name":"vault_","type":"address"}],"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":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"string","name":"incognitoAddress","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","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":"string","name":"incognitoAddress","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"incognitoProxy","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":"bytes","name":"inst","type":"bytes"},{"internalType":"uint256","name":"heights","type":"uint256"},{"internalType":"bytes32[]","name":"instPaths","type":"bytes32[]"},{"internalType":"bool[]","name":"instPathIsLefts","type":"bool[]"},{"internalType":"bytes32","name":"instRoots","type":"bytes32"},{"internalType":"bytes32","name":"blkData","type":"bytes32"},{"internalType":"uint256[]","name":"sigIdxs","type":"uint256[]"},{"internalType":"uint8[]","name":"sigVs","type":"uint8[]"},{"internalType":"bytes32[]","name":"sigRs","type":"bytes32[]"},{"internalType":"bytes32[]","name":"sigSs","type":"bytes32[]"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620032ed380380620032ed83398181016040528101906200003791906200023a565b83600490805190602001906200004f929190620000f5565b50826005908051906020019062000068929190620000f5565b5081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620004bc565b8280546200010390620003b3565b90600052602060002090601f01602090048101928262000127576000855562000173565b82601f106200014257805160ff191683800117855562000173565b8280016001018555821562000173579182015b828111156200017257825182559160200191906001019062000155565b5b50905062000182919062000186565b5090565b5b80821115620001a157600081600090555060010162000187565b5090565b6000620001bc620001b68462000313565b620002ea565b905082815260208101848484011115620001db57620001da62000482565b5b620001e88482856200037d565b509392505050565b6000815190506200020181620004a2565b92915050565b600082601f8301126200021f576200021e6200047d565b5b815162000231848260208601620001a5565b91505092915050565b600080600080608085870312156200025757620002566200048c565b5b600085015167ffffffffffffffff81111562000278576200027762000487565b5b620002868782880162000207565b945050602085015167ffffffffffffffff811115620002aa57620002a962000487565b5b620002b88782880162000207565b9350506040620002cb87828801620001f0565b9250506060620002de87828801620001f0565b91505092959194509250565b6000620002f662000309565b9050620003048282620003e9565b919050565b6000604051905090565b600067ffffffffffffffff8211156200033157620003306200044e565b5b6200033c8262000491565b9050602081019050919050565b600062000356826200035d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200039d57808201518184015260208101905062000380565b83811115620003ad576000848401525b50505050565b60006002820490506001821680620003cc57607f821691505b60208210811415620003e357620003e26200041f565b5b50919050565b620003f48262000491565b810181811067ffffffffffffffff821117156200041657620004156200044e565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b620004ad8162000349565b8114620004b957600080fd5b50565b612e2180620004cc6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb146102b0578063b48272cc146102e0578063dd62ed3e14610310578063fbfa77cf14610340576100f5565b806370a08231146102145780637ba692b61461024457806395d89b4114610262578063a457c2d714610280576100f5565b806323b872dd116100d357806323b872dd1461016657806324f178ff14610196578063313ce567146101c657806339509351146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b61010261035e565b60405161010f91906122be565b60405180910390f35b610132600480360381019061012d91906119c1565b6103f0565b60405161013f91906121ce565b60405180910390f35b61015061040e565b60405161015d91906124c0565b60405180910390f35b610180600480360381019061017b919061196e565b610418565b60405161018d91906121ce565b60405180910390f35b6101b060048036038101906101ab9190611a2e565b610510565b6040516101bd91906121ce565b60405180910390f35b6101ce6107ed565b6040516101db91906124db565b60405180910390f35b6101fe60048036038101906101f991906119c1565b6107f6565b60405161020b91906121ce565b60405180910390f35b61022e60048036038101906102299190611901565b6108a2565b60405161023b91906124c0565b60405180910390f35b61024c6108ea565b6040516102599190612173565b60405180910390f35b61026a610914565b60405161027791906122be565b60405180910390f35b61029a600480360381019061029591906119c1565b6109a6565b6040516102a791906121ce565b60405180910390f35b6102ca60048036038101906102c591906119c1565b610a91565b6040516102d791906121ce565b60405180910390f35b6102fa60048036038101906102f59190611bd1565b610aaf565b60405161030791906121ce565b60405180910390f35b61032a6004803603810190610325919061192e565b610cd8565b60405161033791906124c0565b60405180910390f35b610348610d5f565b6040516103559190612173565b60405180910390f35b60606004805461036d9061283d565b80601f01602080910402602001604051908101604052809291908181526020018280546103999061283d565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505050905090565b60006104046103fd610d89565b8484610d91565b6001905092915050565b6000600354905090565b6000610425848484610f5c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610470610d89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e7906123a0565b60405180910390fd5b610504856104fc610d89565b858403610d91565b60019150509392505050565b600060828b511015610557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054e90612460565b60405180910390fd5b60006105628c61126e565b90506096816000015160ff1614801561058257506001816020015160ff16145b6105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890612360565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff1614610633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062a90612440565b60405180910390fd5b600260008260a00151815260200190815260200160002060009054906101000a900460ff1615610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f90612480565b60405180910390fd5b6001600260008360a00151815260200190815260200160002060006101000a81548160ff0219169083151502179055506106da8c8c8c8c8c8c8c8c8c8c611397565b6000816060015190506000826080015190506106f8600083836114d0565b806003600082825461070a9190612712565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461075f9190612712565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107c491906124c0565b60405180910390a36107d8600083836114d5565b600193505050509a9950505050505050505050565b60006009905090565b6000610898610803610d89565b848460016000610811610d89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108939190612712565b610d91565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109239061283d565b80601f016020809104026020016040519081016040528092919081815260200182805461094f9061283d565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b5050505050905090565b600080600160006109b5610d89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a69906124a0565b60405180910390fd5b610a86610a7d610d89565b85858403610d91565b600191505092915050565b6000610aa5610a9e610d89565b8484610f5c565b6001905092915050565b600080610aba610d89565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b23906123c0565b60405180910390fd5b610b38816000856114d0565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb590612300565b60405180910390fd5b8381036000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360036000828254610c159190612768565b92505081905550610c28826000866114d5565b7f2d4b597935f3cd67fb2eebf1db4debc934cee5c7baa7153f980fdbeb2e74084e30878787604051610c5d949392919061218e565b60405180910390a1600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610cc391906124c0565b60405180910390a36001925050509392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890612420565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6890612320565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f4f91906124c0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc3906123e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906122e0565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490612380565b60405180910390fd5b6110d88383836114d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612340565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f19190612712565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161125591906124c0565b60405180910390a36112688484846114d5565b50505050565b6112766114da565b61127e6114da565b8260008151811061129257611291612908565b5b602001015160f81c60f81b60f81c816000019060ff16908160ff1681525050826001815181106112c5576112c4612908565b5b602001015160f81c60f81b60f81c816020019060ff16908160ff16815250506000806000806022870151935060428701519250606287015191506082870151905083856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082856060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081856080018181525050808560a00181815250508495505050505050919050565b60008a8a6040516020016113ac92919061214b565b604051602081830303815290604052805190602001209050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f65d21166001838d8d8d8d8d8d8d8d8d6040518c63ffffffff1660e01b81526004016114349b9a999897969594939291906121e9565b60206040518083038186803b15801561144c57600080fd5b505afa158015611460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114849190611a01565b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612400565b60405180910390fd5b5050505050505050505050565b505050565b505050565b6040518060c00160405280600060ff168152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600080191681525090565b60006115586115538461251b565b6124f6565b9050808382526020820190508285602086028201111561157b5761157a612970565b5b60005b858110156115ab57816115918882611814565b84526020840193506020830192505060018101905061157e565b5050509392505050565b60006115c86115c384612547565b6124f6565b905080838252602082019050828560208602820111156115eb576115ea612970565b5b60005b8581101561161b5781611601888261183e565b8452602084019350602083019250506001810190506115ee565b5050509392505050565b600061163861163384612573565b6124f6565b9050808382526020820190508285602086028201111561165b5761165a612970565b5b60005b8581101561168b578161167188826118d7565b84526020840193506020830192505060018101905061165e565b5050509392505050565b60006116a86116a38461259f565b6124f6565b905080838252602082019050828560208602820111156116cb576116ca612970565b5b60005b858110156116fb57816116e188826118ec565b8452602084019350602083019250506001810190506116ce565b5050509392505050565b6000611718611713846125cb565b6124f6565b90508281526020810184848401111561173457611733612975565b5b61173f8482856127fb565b509392505050565b60008135905061175681612d78565b92915050565b600082601f8301126117715761177061296b565b5b8135611781848260208601611545565b91505092915050565b600082601f83011261179f5761179e61296b565b5b81356117af8482602086016115b5565b91505092915050565b600082601f8301126117cd576117cc61296b565b5b81356117dd848260208601611625565b91505092915050565b600082601f8301126117fb576117fa61296b565b5b813561180b848260208601611695565b91505092915050565b60008135905061182381612d8f565b92915050565b60008151905061183881612d8f565b92915050565b60008135905061184d81612da6565b92915050565b600082601f8301126118685761186761296b565b5b8135611878848260208601611705565b91505092915050565b60008083601f8401126118975761189661296b565b5b8235905067ffffffffffffffff8111156118b4576118b3612966565b5b6020830191508360018202830111156118d0576118cf612970565b5b9250929050565b6000813590506118e681612dbd565b92915050565b6000813590506118fb81612dd4565b92915050565b6000602082840312156119175761191661297f565b5b600061192584828501611747565b91505092915050565b600080604083850312156119455761194461297f565b5b600061195385828601611747565b925050602061196485828601611747565b9150509250929050565b6000806000606084860312156119875761198661297f565b5b600061199586828701611747565b93505060206119a686828701611747565b92505060406119b7868287016118d7565b9150509250925092565b600080604083850312156119d8576119d761297f565b5b60006119e685828601611747565b92505060206119f7858286016118d7565b9150509250929050565b600060208284031215611a1757611a1661297f565b5b6000611a2584828501611829565b91505092915050565b6000806000806000806000806000806101408b8d031215611a5257611a5161297f565b5b60008b013567ffffffffffffffff811115611a7057611a6f61297a565b5b611a7c8d828e01611853565b9a50506020611a8d8d828e016118d7565b99505060408b013567ffffffffffffffff811115611aae57611aad61297a565b5b611aba8d828e0161178a565b98505060608b013567ffffffffffffffff811115611adb57611ada61297a565b5b611ae78d828e0161175c565b9750506080611af88d828e0161183e565b96505060a0611b098d828e0161183e565b95505060c08b013567ffffffffffffffff811115611b2a57611b2961297a565b5b611b368d828e016117b8565b94505060e08b013567ffffffffffffffff811115611b5757611b5661297a565b5b611b638d828e016117e6565b9350506101008b013567ffffffffffffffff811115611b8557611b8461297a565b5b611b918d828e0161178a565b9250506101208b013567ffffffffffffffff811115611bb357611bb261297a565b5b611bbf8d828e0161178a565b9150509295989b9194979a5092959850565b600080600060408486031215611bea57611be961297f565b5b600084013567ffffffffffffffff811115611c0857611c0761297a565b5b611c1486828701611881565b93509350506020611c27868287016118d7565b9150509250925092565b6000611c3d8383611e18565b60208301905092915050565b6000611c558383611e36565b60208301905092915050565b6000611c6d83836120f8565b60208301905092915050565b6000611c85838361212d565b60208301905092915050565b611c9a8161279c565b82525050565b6000611cab8261263c565b611cb581856126b2565b9350611cc0836125fc565b8060005b83811015611cf1578151611cd88882611c31565b9750611ce38361267e565b925050600181019050611cc4565b5085935050505092915050565b6000611d0982612647565b611d1381856126c3565b9350611d1e8361260c565b8060005b83811015611d4f578151611d368882611c49565b9750611d418361268b565b925050600181019050611d22565b5085935050505092915050565b6000611d6782612652565b611d7181856126d4565b9350611d7c8361261c565b8060005b83811015611dad578151611d948882611c61565b9750611d9f83612698565b925050600181019050611d80565b5085935050505092915050565b6000611dc58261265d565b611dcf81856126e5565b9350611dda8361262c565b8060005b83811015611e0b578151611df28882611c79565b9750611dfd836126a5565b925050600181019050611dde565b5085935050505092915050565b611e21816127ae565b82525050565b611e30816127ae565b82525050565b611e3f816127ba565b82525050565b611e4e816127ba565b82525050565b6000611e5f82612668565b611e6981856126f6565b9350611e7981856020860161280a565b80840191505092915050565b6000611e918385612701565b9350611e9e8385846127fb565b611ea783612984565b840190509392505050565b6000611ebd82612673565b611ec78185612701565b9350611ed781856020860161280a565b611ee081612984565b840191505092915050565b6000611ef8602383612701565b9150611f0382612995565b604082019050919050565b6000611f1b602283612701565b9150611f26826129e4565b604082019050919050565b6000611f3e602283612701565b9150611f4982612a33565b604082019050919050565b6000611f61602683612701565b9150611f6c82612a82565b604082019050919050565b6000611f84601a83612701565b9150611f8f82612ad1565b602082019050919050565b6000611fa7602a83612701565b9150611fb282612afa565b604082019050919050565b6000611fca602883612701565b9150611fd582612b49565b604082019050919050565b6000611fed602183612701565b9150611ff882612b98565b604082019050919050565b6000612010602583612701565b915061201b82612be7565b604082019050919050565b6000612033601e83612701565b915061203e82612c36565b602082019050919050565b6000612056602483612701565b915061206182612c5f565b604082019050919050565b6000612079601483612701565b915061208482612cae565b602082019050919050565b600061209c601383612701565b91506120a782612cd7565b602082019050919050565b60006120bf601983612701565b91506120ca82612d00565b602082019050919050565b60006120e2602583612701565b91506120ed82612d29565b604082019050919050565b612101816127e4565b82525050565b612110816127e4565b82525050565b612127612122826127e4565b6128a0565b82525050565b612136816127ee565b82525050565b612145816127ee565b82525050565b60006121578285611e54565b91506121638284612116565b6020820191508190509392505050565b60006020820190506121886000830184611c91565b92915050565b60006060820190506121a36000830187611c91565b81810360208301526121b6818587611e85565b90506121c56040830184612107565b95945050505050565b60006020820190506121e36000830184611e27565b92915050565b6000610160820190506121ff600083018e611e27565b61220c602083018d611e45565b612219604083018c612107565b818103606083015261222b818b611cfe565b9050818103608083015261223f818a611ca0565b905061224e60a0830189611e45565b61225b60c0830188611e45565b81810360e083015261226d8187611d5c565b90508181036101008301526122828186611dba565b90508181036101208301526122978185611cfe565b90508181036101408301526122ac8184611cfe565b90509c9b505050505050505050505050565b600060208201905081810360008301526122d88184611eb2565b905092915050565b600060208201905081810360008301526122f981611eeb565b9050919050565b6000602082019050818103600083015261231981611f0e565b9050919050565b6000602082019050818103600083015261233981611f31565b9050919050565b6000602082019050818103600083015261235981611f54565b9050919050565b6000602082019050818103600083015261237981611f77565b9050919050565b6000602082019050818103600083015261239981611f9a565b9050919050565b600060208201905081810360008301526123b981611fbd565b9050919050565b600060208201905081810360008301526123d981611fe0565b9050919050565b600060208201905081810360008301526123f981612003565b9050919050565b6000602082019050818103600083015261241981612026565b9050919050565b6000602082019050818103600083015261243981612049565b9050919050565b600060208201905081810360008301526124598161206c565b9050919050565b600060208201905081810360008301526124798161208f565b9050919050565b60006020820190508181036000830152612499816120b2565b9050919050565b600060208201905081810360008301526124b9816120d5565b9050919050565b60006020820190506124d56000830184612107565b92915050565b60006020820190506124f0600083018461213c565b92915050565b6000612500612511565b905061250c828261286f565b919050565b6000604051905090565b600067ffffffffffffffff82111561253657612535612937565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561256257612561612937565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561258e5761258d612937565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156125ba576125b9612937565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156125e6576125e5612937565b5b6125ef82612984565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061271d826127e4565b9150612728836127e4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561275d5761275c6128aa565b5b828201905092915050565b6000612773826127e4565b915061277e836127e4565b925082821015612791576127906128aa565b5b828203905092915050565b60006127a7826127c4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561282857808201518184015260208101905061280d565b83811115612837576000848401525b50505050565b6000600282049050600182168061285557607f821691505b60208210811415612869576128686128d9565b5b50919050565b61287882612984565b810181811067ffffffffffffffff8211171561289757612896612937565b5b80604052505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e76616c696420696e737427732064617461000000000000600082015250565b7f45524332303a207472616e7366657220746f20696e636f676e69746f2076617560008201527f6c74206164647265737300000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e76616c696420696e707574206d696e7420646174610000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e76616c696420746f6b656e000000000000000000000000600082015250565b7f45524332303a20696e76616c696420696e737400000000000000000000000000600082015250565b7f45524332303a20747820697320616c7265616479207573656400000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612d818161279c565b8114612d8c57600080fd5b50565b612d98816127ae565b8114612da357600080fd5b50565b612daf816127ba565b8114612dba57600080fd5b50565b612dc6816127e4565b8114612dd157600080fd5b50565b612ddd816127ee565b8114612de857600080fd5b5056fea2646970667358221220ab5a7df9bee7d5a769dae7df24d6d74ea658e7d4c2a6e507fd84d82330fb836d64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000fab5ab70500d1fab1e736829b4bf85e8bac5fff200000000000000000000000043d037a562099a4c2c95b1e2120cc430544506290000000000000000000000000000000000000000000000000000000000000009496e636f676e69746f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035052560000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb146102b0578063b48272cc146102e0578063dd62ed3e14610310578063fbfa77cf14610340576100f5565b806370a08231146102145780637ba692b61461024457806395d89b4114610262578063a457c2d714610280576100f5565b806323b872dd116100d357806323b872dd1461016657806324f178ff14610196578063313ce567146101c657806339509351146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b61010261035e565b60405161010f91906122be565b60405180910390f35b610132600480360381019061012d91906119c1565b6103f0565b60405161013f91906121ce565b60405180910390f35b61015061040e565b60405161015d91906124c0565b60405180910390f35b610180600480360381019061017b919061196e565b610418565b60405161018d91906121ce565b60405180910390f35b6101b060048036038101906101ab9190611a2e565b610510565b6040516101bd91906121ce565b60405180910390f35b6101ce6107ed565b6040516101db91906124db565b60405180910390f35b6101fe60048036038101906101f991906119c1565b6107f6565b60405161020b91906121ce565b60405180910390f35b61022e60048036038101906102299190611901565b6108a2565b60405161023b91906124c0565b60405180910390f35b61024c6108ea565b6040516102599190612173565b60405180910390f35b61026a610914565b60405161027791906122be565b60405180910390f35b61029a600480360381019061029591906119c1565b6109a6565b6040516102a791906121ce565b60405180910390f35b6102ca60048036038101906102c591906119c1565b610a91565b6040516102d791906121ce565b60405180910390f35b6102fa60048036038101906102f59190611bd1565b610aaf565b60405161030791906121ce565b60405180910390f35b61032a6004803603810190610325919061192e565b610cd8565b60405161033791906124c0565b60405180910390f35b610348610d5f565b6040516103559190612173565b60405180910390f35b60606004805461036d9061283d565b80601f01602080910402602001604051908101604052809291908181526020018280546103999061283d565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505050905090565b60006104046103fd610d89565b8484610d91565b6001905092915050565b6000600354905090565b6000610425848484610f5c565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610470610d89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156104f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104e7906123a0565b60405180910390fd5b610504856104fc610d89565b858403610d91565b60019150509392505050565b600060828b511015610557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054e90612460565b60405180910390fd5b60006105628c61126e565b90506096816000015160ff1614801561058257506001816020015160ff16145b6105c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b890612360565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff1614610633576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062a90612440565b60405180910390fd5b600260008260a00151815260200190815260200160002060009054906101000a900460ff1615610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f90612480565b60405180910390fd5b6001600260008360a00151815260200190815260200160002060006101000a81548160ff0219169083151502179055506106da8c8c8c8c8c8c8c8c8c8c611397565b6000816060015190506000826080015190506106f8600083836114d0565b806003600082825461070a9190612712565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461075f9190612712565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107c491906124c0565b60405180910390a36107d8600083836114d5565b600193505050509a9950505050505050505050565b60006009905090565b6000610898610803610d89565b848460016000610811610d89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108939190612712565b610d91565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546109239061283d565b80601f016020809104026020016040519081016040528092919081815260200182805461094f9061283d565b801561099c5780601f106109715761010080835404028352916020019161099c565b820191906000526020600020905b81548152906001019060200180831161097f57829003601f168201915b5050505050905090565b600080600160006109b5610d89565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a69906124a0565b60405180910390fd5b610a86610a7d610d89565b85858403610d91565b600191505092915050565b6000610aa5610a9e610d89565b8484610f5c565b6001905092915050565b600080610aba610d89565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b23906123c0565b60405180910390fd5b610b38816000856114d0565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb590612300565b60405180910390fd5b8381036000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360036000828254610c159190612768565b92505081905550610c28826000866114d5565b7f2d4b597935f3cd67fb2eebf1db4debc934cee5c7baa7153f980fdbeb2e74084e30878787604051610c5d949392919061218e565b60405180910390a1600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610cc391906124c0565b60405180910390a36001925050509392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df890612420565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6890612320565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f4f91906124c0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc3906123e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906122e0565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c490612380565b60405180910390fd5b6110d88383836114d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612340565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111f19190612712565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161125591906124c0565b60405180910390a36112688484846114d5565b50505050565b6112766114da565b61127e6114da565b8260008151811061129257611291612908565b5b602001015160f81c60f81b60f81c816000019060ff16908160ff1681525050826001815181106112c5576112c4612908565b5b602001015160f81c60f81b60f81c816020019060ff16908160ff16815250506000806000806022870151935060428701519250606287015191506082870151905083856040019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082856060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505081856080018181525050808560a00181815250508495505050505050919050565b60008a8a6040516020016113ac92919061214b565b604051602081830303815290604052805190602001209050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f65d21166001838d8d8d8d8d8d8d8d8d6040518c63ffffffff1660e01b81526004016114349b9a999897969594939291906121e9565b60206040518083038186803b15801561144c57600080fd5b505afa158015611460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114849190611a01565b6114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612400565b60405180910390fd5b5050505050505050505050565b505050565b505050565b6040518060c00160405280600060ff168152602001600060ff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600080191681525090565b60006115586115538461251b565b6124f6565b9050808382526020820190508285602086028201111561157b5761157a612970565b5b60005b858110156115ab57816115918882611814565b84526020840193506020830192505060018101905061157e565b5050509392505050565b60006115c86115c384612547565b6124f6565b905080838252602082019050828560208602820111156115eb576115ea612970565b5b60005b8581101561161b5781611601888261183e565b8452602084019350602083019250506001810190506115ee565b5050509392505050565b600061163861163384612573565b6124f6565b9050808382526020820190508285602086028201111561165b5761165a612970565b5b60005b8581101561168b578161167188826118d7565b84526020840193506020830192505060018101905061165e565b5050509392505050565b60006116a86116a38461259f565b6124f6565b905080838252602082019050828560208602820111156116cb576116ca612970565b5b60005b858110156116fb57816116e188826118ec565b8452602084019350602083019250506001810190506116ce565b5050509392505050565b6000611718611713846125cb565b6124f6565b90508281526020810184848401111561173457611733612975565b5b61173f8482856127fb565b509392505050565b60008135905061175681612d78565b92915050565b600082601f8301126117715761177061296b565b5b8135611781848260208601611545565b91505092915050565b600082601f83011261179f5761179e61296b565b5b81356117af8482602086016115b5565b91505092915050565b600082601f8301126117cd576117cc61296b565b5b81356117dd848260208601611625565b91505092915050565b600082601f8301126117fb576117fa61296b565b5b813561180b848260208601611695565b91505092915050565b60008135905061182381612d8f565b92915050565b60008151905061183881612d8f565b92915050565b60008135905061184d81612da6565b92915050565b600082601f8301126118685761186761296b565b5b8135611878848260208601611705565b91505092915050565b60008083601f8401126118975761189661296b565b5b8235905067ffffffffffffffff8111156118b4576118b3612966565b5b6020830191508360018202830111156118d0576118cf612970565b5b9250929050565b6000813590506118e681612dbd565b92915050565b6000813590506118fb81612dd4565b92915050565b6000602082840312156119175761191661297f565b5b600061192584828501611747565b91505092915050565b600080604083850312156119455761194461297f565b5b600061195385828601611747565b925050602061196485828601611747565b9150509250929050565b6000806000606084860312156119875761198661297f565b5b600061199586828701611747565b93505060206119a686828701611747565b92505060406119b7868287016118d7565b9150509250925092565b600080604083850312156119d8576119d761297f565b5b60006119e685828601611747565b92505060206119f7858286016118d7565b9150509250929050565b600060208284031215611a1757611a1661297f565b5b6000611a2584828501611829565b91505092915050565b6000806000806000806000806000806101408b8d031215611a5257611a5161297f565b5b60008b013567ffffffffffffffff811115611a7057611a6f61297a565b5b611a7c8d828e01611853565b9a50506020611a8d8d828e016118d7565b99505060408b013567ffffffffffffffff811115611aae57611aad61297a565b5b611aba8d828e0161178a565b98505060608b013567ffffffffffffffff811115611adb57611ada61297a565b5b611ae78d828e0161175c565b9750506080611af88d828e0161183e565b96505060a0611b098d828e0161183e565b95505060c08b013567ffffffffffffffff811115611b2a57611b2961297a565b5b611b368d828e016117b8565b94505060e08b013567ffffffffffffffff811115611b5757611b5661297a565b5b611b638d828e016117e6565b9350506101008b013567ffffffffffffffff811115611b8557611b8461297a565b5b611b918d828e0161178a565b9250506101208b013567ffffffffffffffff811115611bb357611bb261297a565b5b611bbf8d828e0161178a565b9150509295989b9194979a5092959850565b600080600060408486031215611bea57611be961297f565b5b600084013567ffffffffffffffff811115611c0857611c0761297a565b5b611c1486828701611881565b93509350506020611c27868287016118d7565b9150509250925092565b6000611c3d8383611e18565b60208301905092915050565b6000611c558383611e36565b60208301905092915050565b6000611c6d83836120f8565b60208301905092915050565b6000611c85838361212d565b60208301905092915050565b611c9a8161279c565b82525050565b6000611cab8261263c565b611cb581856126b2565b9350611cc0836125fc565b8060005b83811015611cf1578151611cd88882611c31565b9750611ce38361267e565b925050600181019050611cc4565b5085935050505092915050565b6000611d0982612647565b611d1381856126c3565b9350611d1e8361260c565b8060005b83811015611d4f578151611d368882611c49565b9750611d418361268b565b925050600181019050611d22565b5085935050505092915050565b6000611d6782612652565b611d7181856126d4565b9350611d7c8361261c565b8060005b83811015611dad578151611d948882611c61565b9750611d9f83612698565b925050600181019050611d80565b5085935050505092915050565b6000611dc58261265d565b611dcf81856126e5565b9350611dda8361262c565b8060005b83811015611e0b578151611df28882611c79565b9750611dfd836126a5565b925050600181019050611dde565b5085935050505092915050565b611e21816127ae565b82525050565b611e30816127ae565b82525050565b611e3f816127ba565b82525050565b611e4e816127ba565b82525050565b6000611e5f82612668565b611e6981856126f6565b9350611e7981856020860161280a565b80840191505092915050565b6000611e918385612701565b9350611e9e8385846127fb565b611ea783612984565b840190509392505050565b6000611ebd82612673565b611ec78185612701565b9350611ed781856020860161280a565b611ee081612984565b840191505092915050565b6000611ef8602383612701565b9150611f0382612995565b604082019050919050565b6000611f1b602283612701565b9150611f26826129e4565b604082019050919050565b6000611f3e602283612701565b9150611f4982612a33565b604082019050919050565b6000611f61602683612701565b9150611f6c82612a82565b604082019050919050565b6000611f84601a83612701565b9150611f8f82612ad1565b602082019050919050565b6000611fa7602a83612701565b9150611fb282612afa565b604082019050919050565b6000611fca602883612701565b9150611fd582612b49565b604082019050919050565b6000611fed602183612701565b9150611ff882612b98565b604082019050919050565b6000612010602583612701565b915061201b82612be7565b604082019050919050565b6000612033601e83612701565b915061203e82612c36565b602082019050919050565b6000612056602483612701565b915061206182612c5f565b604082019050919050565b6000612079601483612701565b915061208482612cae565b602082019050919050565b600061209c601383612701565b91506120a782612cd7565b602082019050919050565b60006120bf601983612701565b91506120ca82612d00565b602082019050919050565b60006120e2602583612701565b91506120ed82612d29565b604082019050919050565b612101816127e4565b82525050565b612110816127e4565b82525050565b612127612122826127e4565b6128a0565b82525050565b612136816127ee565b82525050565b612145816127ee565b82525050565b60006121578285611e54565b91506121638284612116565b6020820191508190509392505050565b60006020820190506121886000830184611c91565b92915050565b60006060820190506121a36000830187611c91565b81810360208301526121b6818587611e85565b90506121c56040830184612107565b95945050505050565b60006020820190506121e36000830184611e27565b92915050565b6000610160820190506121ff600083018e611e27565b61220c602083018d611e45565b612219604083018c612107565b818103606083015261222b818b611cfe565b9050818103608083015261223f818a611ca0565b905061224e60a0830189611e45565b61225b60c0830188611e45565b81810360e083015261226d8187611d5c565b90508181036101008301526122828186611dba565b90508181036101208301526122978185611cfe565b90508181036101408301526122ac8184611cfe565b90509c9b505050505050505050505050565b600060208201905081810360008301526122d88184611eb2565b905092915050565b600060208201905081810360008301526122f981611eeb565b9050919050565b6000602082019050818103600083015261231981611f0e565b9050919050565b6000602082019050818103600083015261233981611f31565b9050919050565b6000602082019050818103600083015261235981611f54565b9050919050565b6000602082019050818103600083015261237981611f77565b9050919050565b6000602082019050818103600083015261239981611f9a565b9050919050565b600060208201905081810360008301526123b981611fbd565b9050919050565b600060208201905081810360008301526123d981611fe0565b9050919050565b600060208201905081810360008301526123f981612003565b9050919050565b6000602082019050818103600083015261241981612026565b9050919050565b6000602082019050818103600083015261243981612049565b9050919050565b600060208201905081810360008301526124598161206c565b9050919050565b600060208201905081810360008301526124798161208f565b9050919050565b60006020820190508181036000830152612499816120b2565b9050919050565b600060208201905081810360008301526124b9816120d5565b9050919050565b60006020820190506124d56000830184612107565b92915050565b60006020820190506124f0600083018461213c565b92915050565b6000612500612511565b905061250c828261286f565b919050565b6000604051905090565b600067ffffffffffffffff82111561253657612535612937565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561256257612561612937565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561258e5761258d612937565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156125ba576125b9612937565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156125e6576125e5612937565b5b6125ef82612984565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061271d826127e4565b9150612728836127e4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561275d5761275c6128aa565b5b828201905092915050565b6000612773826127e4565b915061277e836127e4565b925082821015612791576127906128aa565b5b828203905092915050565b60006127a7826127c4565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561282857808201518184015260208101905061280d565b83811115612837576000848401525b50505050565b6000600282049050600182168061285557607f821691505b60208210811415612869576128686128d9565b5b50919050565b61287882612984565b810181811067ffffffffffffffff8211171561289757612896612937565b5b80604052505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e76616c696420696e737427732064617461000000000000600082015250565b7f45524332303a207472616e7366657220746f20696e636f676e69746f2076617560008201527f6c74206164647265737300000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e76616c696420696e707574206d696e7420646174610000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e76616c696420746f6b656e000000000000000000000000600082015250565b7f45524332303a20696e76616c696420696e737400000000000000000000000000600082015250565b7f45524332303a20747820697320616c7265616479207573656400000000000000600082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612d818161279c565b8114612d8c57600080fd5b50565b612d98816127ae565b8114612da357600080fd5b50565b612daf816127ba565b8114612dba57600080fd5b50565b612dc6816127e4565b8114612dd157600080fd5b50565b612ddd816127ee565b8114612de857600080fd5b5056fea2646970667358221220ab5a7df9bee7d5a769dae7df24d6d74ea658e7d4c2a6e507fd84d82330fb836d64736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000fab5ab70500d1fab1e736829b4bf85e8bac5fff200000000000000000000000043d037a562099a4c2c95b1e2120cc430544506290000000000000000000000000000000000000000000000000000000000000009496e636f676e69746f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035052560000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Incognito
Arg [1] : symbol_ (string): PRV
Arg [2] : incognitoProxy_ (address): 0xfAb5ab70500d1fab1e736829b4bf85e8bAC5fff2
Arg [3] : vault_ (address): 0x43D037A562099A4C2c95b1E2120cc43054450629

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000fab5ab70500d1fab1e736829b4bf85e8bac5fff2
Arg [3] : 00000000000000000000000043d037a562099a4c2c95b1e2120cc43054450629
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [5] : 496e636f676e69746f0000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5052560000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

1763:15654:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3746:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5842:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4833:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6475:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12716:1440;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4683:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7348:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4997:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3578:103;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3957:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8047:405;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5325:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14476:733;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5555:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3430:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3746:98;3800:13;3832:5;3825:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3746:98;:::o;5842:166::-;5925:4;5941:39;5950:12;:10;:12::i;:::-;5964:7;5973:6;5941:8;:39::i;:::-;5997:4;5990:11;;5842:166;;;;:::o;4833:106::-;4894:7;4920:12;;4913:19;;4833:106;:::o;6475:478::-;6611:4;6627:36;6637:6;6645:9;6656:6;6627:9;:36::i;:::-;6674:24;6701:11;:19;6713:6;6701:19;;;;;;;;;;;;;;;:33;6721:12;:10;:12::i;:::-;6701:33;;;;;;;;;;;;;;;;6674:60;;6772:6;6752:16;:26;;6744:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6857:57;6866:6;6874:12;:10;:12::i;:::-;6907:6;6888:16;:25;6857:8;:57::i;:::-;6942:4;6935:11;;;6475:478;;;;;:::o;12716:1440::-;13063:4;13111:3;13096:4;:11;:18;;13088:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13148:24;13175:20;13190:4;13175:14;:20::i;:::-;13148:47;;13260:3;13247:4;:9;;;:16;;;:35;;;;;13281:1;13267:4;:10;;;:15;;;13247:35;13239:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13385:4;13363:27;;:4;:10;;;:27;;;13355:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13460:10;:20;13471:4;:8;;;13460:20;;;;;;;;;;;;;;;;;;;;;13459:21;13451:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;13543:4;13520:10;:20;13531:4;:8;;;13520:20;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13581:234;13606:4;13624:7;13645:9;13668:15;13697:9;13720:7;13741;13762:5;13781;13800;13581:11;:234::i;:::-;13826:15;13844:4;:7;;;13826:25;;13861:11;13875:4;:11;;;13861:25;;13896:49;13925:1;13929:7;13938:6;13896:20;:49::i;:::-;13972:6;13956:12;;:22;;;;;;;:::i;:::-;;;;;;;;14010:6;13988:9;:18;13998:7;13988:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;14052:7;14031:37;;14048:1;14031:37;;;14061:6;14031:37;;;;;;:::i;:::-;;;;;;;;14079:48;14107:1;14111:7;14120:6;14079:19;:48::i;:::-;14145:4;14138:11;;;;;12716:1440;;;;;;;;;;;;:::o;4683:90::-;4741:5;4765:1;4758:8;;4683:90;:::o;7348:212::-;7436:4;7452:80;7461:12;:10;:12::i;:::-;7475:7;7521:10;7484:11;:25;7496:12;:10;:12::i;:::-;7484:25;;;;;;;;;;;;;;;:34;7510:7;7484:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;7452:8;:80::i;:::-;7549:4;7542:11;;7348:212;;;;:::o;4997:125::-;5071:7;5097:9;:18;5107:7;5097:18;;;;;;;;;;;;;;;;5090:25;;4997:125;;;:::o;3578:103::-;3633:7;3659:15;;;;;;;;;;;3652:22;;3578:103;:::o;3957:102::-;4013:13;4045:7;4038:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3957:102;:::o;8047:405::-;8140:4;8156:24;8183:11;:25;8195:12;:10;:12::i;:::-;8183:25;;;;;;;;;;;;;;;:34;8209:7;8183:34;;;;;;;;;;;;;;;;8156:61;;8255:15;8235:16;:35;;8227:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;8346:67;8355:12;:10;:12::i;:::-;8369:7;8397:15;8378:16;:34;8346:8;:67::i;:::-;8441:4;8434:11;;;8047:405;;;;:::o;5325:172::-;5411:4;5427:42;5437:12;:10;:12::i;:::-;5451:9;5462:6;5427:9;:42::i;:::-;5486:4;5479:11;;5325:172;;;;:::o;14476:733::-;14566:4;14582:15;14600:12;:10;:12::i;:::-;14582:30;;14649:1;14630:21;;:7;:21;;;;14622:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14700:49;14721:7;14738:1;14742:6;14700:20;:49::i;:::-;14760:22;14785:9;:18;14795:7;14785:18;;;;;;;;;;;;;;;;14760:43;;14839:6;14821:14;:24;;14813:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14956:6;14939:14;:23;14918:9;:18;14928:7;14918:18;;;;;;;;;;;;;;;:44;;;;14998:6;14982:12;;:22;;;;;;;:::i;:::-;;;;;;;;15015:48;15035:7;15052:1;15056:6;15015:19;:48::i;:::-;15079;15095:4;15102:16;;15120:6;15079:48;;;;;;;;;:::i;:::-;;;;;;;;15169:1;15143:37;;15152:7;15143:37;;;15173:6;15143:37;;;;;;:::i;:::-;;;;;;;;15198:4;15191:11;;;;14476:733;;;;;:::o;5555:149::-;5644:7;5670:11;:18;5682:5;5670:18;;;;;;;;;;;;;;;:27;5689:7;5670:27;;;;;;;;;;;;;;;;5663:34;;5555:149;;;;:::o;3430:85::-;3476:7;3502:6;;;;;;;;;;;3495:13;;3430:85;:::o;587:96:0:-;640:7;666:10;659:17;;587:96;:::o;15632:370:1:-;15780:1;15763:19;;:5;:19;;;;15755:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15860:1;15841:21;;:7;:21;;;;15833:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15942:6;15912:11;:18;15924:5;15912:18;;;;;;;;;;;;;;;:27;15931:7;15912:27;;;;;;;;;;;;;;;:36;;;;15979:7;15963:32;;15972:5;15963:32;;;15988:6;15963:32;;;;;;:::i;:::-;;;;;;;;15632:370;;;:::o;8926:797::-;9079:1;9061:20;;:6;:20;;;;9053:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9162:1;9141:23;;:9;:23;;;;9133:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9235:6;;;;;;;;;;;9222:19;;:9;:19;;;;9214:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9299:47;9320:6;9328:9;9339:6;9299:20;:47::i;:::-;9357:21;9381:9;:17;9391:6;9381:17;;;;;;;;;;;;;;;;9357:41;;9433:6;9416:13;:23;;9408:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9552:6;9536:13;:22;9516:9;:17;9526:6;9516:17;;;;;;;;;;;;;;;:42;;;;9602:6;9578:9;:20;9588:9;9578:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9641:9;9624:35;;9633:6;9624:35;;;9652:6;9624:35;;;;;;:::i;:::-;;;;;;;;9670:46;9690:6;9698:9;9709:6;9670:19;:46::i;:::-;9043:680;8926:797;;;:::o;9886:725::-;9952:19;;:::i;:::-;9983:24;;:::i;:::-;10035:4;10040:1;10035:7;;;;;;;;:::i;:::-;;;;;;;;;;10029:14;;10017:4;:9;;:26;;;;;;;;;;;10072:4;10077:1;10072:7;;;;;;;;:::i;:::-;;;;;;;;;;10066:14;;10053:4;:10;;:27;;;;;;;;;;;10090:13;10113:18;10141:11;10162;10292:4;10286;10282:15;10276:22;10267:31;;10343:4;10337;10333:15;10327:22;10321:28;;10399:4;10393;10389:15;10383:22;10373:32;;10452:4;10446;10442:15;10436:22;10429:29;;10502:5;10489:4;:10;;:18;;;;;;;;;;;10527:2;10517:4;:7;;:12;;;;;;;;;;;10553:6;10539:4;:11;;:20;;;;;10580:3;10569:4;:8;;:14;;;;;10600:4;10593:11;;;;;;;9886:725;;;:::o;10863:907::-;11269:22;11321:4;11327:7;11304:31;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11294:42;;;;;;11269:67;;11405:15;;;;;;;;;;;11395:46;;;11455:4;11509:14;11537:7;11558:9;11581:15;11610:9;11633:7;11654;11675:5;11694;11713;11395:333;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11387:376;;;;;;;;;;;;:::i;:::-;;;;;;;;;11205:565;10863:907;;;;;;;;;;:::o;16586:121::-;;;;:::o;17295:120::-;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21:713:4:-;114:5;139:78;155:61;209:6;155:61;:::i;:::-;139:78;:::i;:::-;130:87;;237:5;266:6;259:5;252:21;300:4;293:5;289:16;282:23;;326:6;376:3;368:4;360:6;356:17;351:3;347:27;344:36;341:143;;;395:79;;:::i;:::-;341:143;508:1;493:235;518:6;515:1;512:13;493:235;;;586:3;615:34;645:3;633:10;615:34;:::i;:::-;610:3;603:47;679:4;674:3;670:14;663:21;;713:4;708:3;704:14;697:21;;553:175;540:1;537;533:9;528:14;;493:235;;;497:14;120:614;;21:713;;;;;:::o;757:722::-;853:5;878:81;894:64;951:6;894:64;:::i;:::-;878:81;:::i;:::-;869:90;;979:5;1008:6;1001:5;994:21;1042:4;1035:5;1031:16;1024:23;;1068:6;1118:3;1110:4;1102:6;1098:17;1093:3;1089:27;1086:36;1083:143;;;1137:79;;:::i;:::-;1083:143;1250:1;1235:238;1260:6;1257:1;1254:13;1235:238;;;1328:3;1357:37;1390:3;1378:10;1357:37;:::i;:::-;1352:3;1345:50;1424:4;1419:3;1415:14;1408:21;;1458:4;1453:3;1449:14;1442:21;;1295:178;1282:1;1279;1275:9;1270:14;;1235:238;;;1239:14;859:620;;757:722;;;;;:::o;1502:::-;1598:5;1623:81;1639:64;1696:6;1639:64;:::i;:::-;1623:81;:::i;:::-;1614:90;;1724:5;1753:6;1746:5;1739:21;1787:4;1780:5;1776:16;1769:23;;1813:6;1863:3;1855:4;1847:6;1843:17;1838:3;1834:27;1831:36;1828:143;;;1882:79;;:::i;:::-;1828:143;1995:1;1980:238;2005:6;2002:1;1999:13;1980:238;;;2073:3;2102:37;2135:3;2123:10;2102:37;:::i;:::-;2097:3;2090:50;2169:4;2164:3;2160:14;2153:21;;2203:4;2198:3;2194:14;2187:21;;2040:178;2027:1;2024;2020:9;2015:14;;1980:238;;;1984:14;1604:620;;1502:722;;;;;:::o;2245:716::-;2339:5;2364:79;2380:62;2435:6;2380:62;:::i;:::-;2364:79;:::i;:::-;2355:88;;2463:5;2492:6;2485:5;2478:21;2526:4;2519:5;2515:16;2508:23;;2552:6;2602:3;2594:4;2586:6;2582:17;2577:3;2573:27;2570:36;2567:143;;;2621:79;;:::i;:::-;2567:143;2734:1;2719:236;2744:6;2741:1;2738:13;2719:236;;;2812:3;2841:35;2872:3;2860:10;2841:35;:::i;:::-;2836:3;2829:48;2906:4;2901:3;2897:14;2890:21;;2940:4;2935:3;2931:14;2924:21;;2779:176;2766:1;2763;2759:9;2754:14;;2719:236;;;2723:14;2345:616;;2245:716;;;;;:::o;2967:410::-;3044:5;3069:65;3085:48;3126:6;3085:48;:::i;:::-;3069:65;:::i;:::-;3060:74;;3157:6;3150:5;3143:21;3195:4;3188:5;3184:16;3233:3;3224:6;3219:3;3215:16;3212:25;3209:112;;;3240:79;;:::i;:::-;3209:112;3330:41;3364:6;3359:3;3354;3330:41;:::i;:::-;3050:327;2967:410;;;;;:::o;3383:139::-;3429:5;3467:6;3454:20;3445:29;;3483:33;3510:5;3483:33;:::i;:::-;3383:139;;;;:::o;3542:364::-;3610:5;3659:3;3652:4;3644:6;3640:17;3636:27;3626:122;;3667:79;;:::i;:::-;3626:122;3784:6;3771:20;3809:91;3896:3;3888:6;3881:4;3873:6;3869:17;3809:91;:::i;:::-;3800:100;;3616:290;3542:364;;;;:::o;3929:370::-;4000:5;4049:3;4042:4;4034:6;4030:17;4026:27;4016:122;;4057:79;;:::i;:::-;4016:122;4174:6;4161:20;4199:94;4289:3;4281:6;4274:4;4266:6;4262:17;4199:94;:::i;:::-;4190:103;;4006:293;3929:370;;;;:::o;4322:::-;4393:5;4442:3;4435:4;4427:6;4423:17;4419:27;4409:122;;4450:79;;:::i;:::-;4409:122;4567:6;4554:20;4592:94;4682:3;4674:6;4667:4;4659:6;4655:17;4592:94;:::i;:::-;4583:103;;4399:293;4322:370;;;;:::o;4713:366::-;4782:5;4831:3;4824:4;4816:6;4812:17;4808:27;4798:122;;4839:79;;:::i;:::-;4798:122;4956:6;4943:20;4981:92;5069:3;5061:6;5054:4;5046:6;5042:17;4981:92;:::i;:::-;4972:101;;4788:291;4713:366;;;;:::o;5085:133::-;5128:5;5166:6;5153:20;5144:29;;5182:30;5206:5;5182:30;:::i;:::-;5085:133;;;;:::o;5224:137::-;5278:5;5309:6;5303:13;5294:22;;5325:30;5349:5;5325:30;:::i;:::-;5224:137;;;;:::o;5367:139::-;5413:5;5451:6;5438:20;5429:29;;5467:33;5494:5;5467:33;:::i;:::-;5367:139;;;;:::o;5525:338::-;5580:5;5629:3;5622:4;5614:6;5610:17;5606:27;5596:122;;5637:79;;:::i;:::-;5596:122;5754:6;5741:20;5779:78;5853:3;5845:6;5838:4;5830:6;5826:17;5779:78;:::i;:::-;5770:87;;5586:277;5525:338;;;;:::o;5883:553::-;5941:8;5951:6;6001:3;5994:4;5986:6;5982:17;5978:27;5968:122;;6009:79;;:::i;:::-;5968:122;6122:6;6109:20;6099:30;;6152:18;6144:6;6141:30;6138:117;;;6174:79;;:::i;:::-;6138:117;6288:4;6280:6;6276:17;6264:29;;6342:3;6334:4;6326:6;6322:17;6312:8;6308:32;6305:41;6302:128;;;6349:79;;:::i;:::-;6302:128;5883:553;;;;;:::o;6442:139::-;6488:5;6526:6;6513:20;6504:29;;6542:33;6569:5;6542:33;:::i;:::-;6442:139;;;;:::o;6587:135::-;6631:5;6669:6;6656:20;6647:29;;6685:31;6710:5;6685:31;:::i;:::-;6587:135;;;;:::o;6728:329::-;6787:6;6836:2;6824:9;6815:7;6811:23;6807:32;6804:119;;;6842:79;;:::i;:::-;6804:119;6962:1;6987:53;7032:7;7023:6;7012:9;7008:22;6987:53;:::i;:::-;6977:63;;6933:117;6728:329;;;;:::o;7063:474::-;7131:6;7139;7188:2;7176:9;7167:7;7163:23;7159:32;7156:119;;;7194:79;;:::i;:::-;7156:119;7314:1;7339:53;7384:7;7375:6;7364:9;7360:22;7339:53;:::i;:::-;7329:63;;7285:117;7441:2;7467:53;7512:7;7503:6;7492:9;7488:22;7467:53;:::i;:::-;7457:63;;7412:118;7063:474;;;;;:::o;7543:619::-;7620:6;7628;7636;7685:2;7673:9;7664:7;7660:23;7656:32;7653:119;;;7691:79;;:::i;:::-;7653:119;7811:1;7836:53;7881:7;7872:6;7861:9;7857:22;7836:53;:::i;:::-;7826:63;;7782:117;7938:2;7964:53;8009:7;8000:6;7989:9;7985:22;7964:53;:::i;:::-;7954:63;;7909:118;8066:2;8092:53;8137:7;8128:6;8117:9;8113:22;8092:53;:::i;:::-;8082:63;;8037:118;7543:619;;;;;:::o;8168:474::-;8236:6;8244;8293:2;8281:9;8272:7;8268:23;8264:32;8261:119;;;8299:79;;:::i;:::-;8261:119;8419:1;8444:53;8489:7;8480:6;8469:9;8465:22;8444:53;:::i;:::-;8434:63;;8390:117;8546:2;8572:53;8617:7;8608:6;8597:9;8593:22;8572:53;:::i;:::-;8562:63;;8517:118;8168:474;;;;;:::o;8648:345::-;8715:6;8764:2;8752:9;8743:7;8739:23;8735:32;8732:119;;;8770:79;;:::i;:::-;8732:119;8890:1;8915:61;8968:7;8959:6;8948:9;8944:22;8915:61;:::i;:::-;8905:71;;8861:125;8648:345;;;;:::o;8999:3069::-;9293:6;9301;9309;9317;9325;9333;9341;9349;9357;9365;9414:3;9402:9;9393:7;9389:23;9385:33;9382:120;;;9421:79;;:::i;:::-;9382:120;9569:1;9558:9;9554:17;9541:31;9599:18;9591:6;9588:30;9585:117;;;9621:79;;:::i;:::-;9585:117;9726:62;9780:7;9771:6;9760:9;9756:22;9726:62;:::i;:::-;9716:72;;9512:286;9837:2;9863:53;9908:7;9899:6;9888:9;9884:22;9863:53;:::i;:::-;9853:63;;9808:118;9993:2;9982:9;9978:18;9965:32;10024:18;10016:6;10013:30;10010:117;;;10046:79;;:::i;:::-;10010:117;10151:78;10221:7;10212:6;10201:9;10197:22;10151:78;:::i;:::-;10141:88;;9936:303;10306:2;10295:9;10291:18;10278:32;10337:18;10329:6;10326:30;10323:117;;;10359:79;;:::i;:::-;10323:117;10464:75;10531:7;10522:6;10511:9;10507:22;10464:75;:::i;:::-;10454:85;;10249:300;10588:3;10615:53;10660:7;10651:6;10640:9;10636:22;10615:53;:::i;:::-;10605:63;;10559:119;10717:3;10744:53;10789:7;10780:6;10769:9;10765:22;10744:53;:::i;:::-;10734:63;;10688:119;10874:3;10863:9;10859:19;10846:33;10906:18;10898:6;10895:30;10892:117;;;10928:79;;:::i;:::-;10892:117;11033:78;11103:7;11094:6;11083:9;11079:22;11033:78;:::i;:::-;11023:88;;10817:304;11188:3;11177:9;11173:19;11160:33;11220:18;11212:6;11209:30;11206:117;;;11242:79;;:::i;:::-;11206:117;11347:76;11415:7;11406:6;11395:9;11391:22;11347:76;:::i;:::-;11337:86;;11131:302;11500:3;11489:9;11485:19;11472:33;11532:18;11524:6;11521:30;11518:117;;;11554:79;;:::i;:::-;11518:117;11659:78;11729:7;11720:6;11709:9;11705:22;11659:78;:::i;:::-;11649:88;;11443:304;11814:3;11803:9;11799:19;11786:33;11846:18;11838:6;11835:30;11832:117;;;11868:79;;:::i;:::-;11832:117;11973:78;12043:7;12034:6;12023:9;12019:22;11973:78;:::i;:::-;11963:88;;11757:304;8999:3069;;;;;;;;;;;;;:::o;12074:674::-;12154:6;12162;12170;12219:2;12207:9;12198:7;12194:23;12190:32;12187:119;;;12225:79;;:::i;:::-;12187:119;12373:1;12362:9;12358:17;12345:31;12403:18;12395:6;12392:30;12389:117;;;12425:79;;:::i;:::-;12389:117;12538:65;12595:7;12586:6;12575:9;12571:22;12538:65;:::i;:::-;12520:83;;;;12316:297;12652:2;12678:53;12723:7;12714:6;12703:9;12699:22;12678:53;:::i;:::-;12668:63;;12623:118;12074:674;;;;;:::o;12754:167::-;12817:10;12838:40;12874:3;12866:6;12838:40;:::i;:::-;12910:4;12905:3;12901:14;12887:28;;12754:167;;;;:::o;12927:179::-;12996:10;13017:46;13059:3;13051:6;13017:46;:::i;:::-;13095:4;13090:3;13086:14;13072:28;;12927:179;;;;:::o;13112:::-;13181:10;13202:46;13244:3;13236:6;13202:46;:::i;:::-;13280:4;13275:3;13271:14;13257:28;;13112:179;;;;:::o;13297:171::-;13362:10;13383:42;13421:3;13413:6;13383:42;:::i;:::-;13457:4;13452:3;13448:14;13434:28;;13297:171;;;;:::o;13474:118::-;13561:24;13579:5;13561:24;:::i;:::-;13556:3;13549:37;13474:118;;:::o;13622:708::-;13735:3;13764:51;13809:5;13764:51;:::i;:::-;13831:83;13907:6;13902:3;13831:83;:::i;:::-;13824:90;;13938:53;13985:5;13938:53;:::i;:::-;14014:7;14045:1;14030:275;14055:6;14052:1;14049:13;14030:275;;;14131:6;14125:13;14158:57;14211:3;14196:13;14158:57;:::i;:::-;14151:64;;14238:57;14288:6;14238:57;:::i;:::-;14228:67;;14090:215;14077:1;14074;14070:9;14065:14;;14030:275;;;14034:14;14321:3;14314:10;;13740:590;;;13622:708;;;;:::o;14366:732::-;14485:3;14514:54;14562:5;14514:54;:::i;:::-;14584:86;14663:6;14658:3;14584:86;:::i;:::-;14577:93;;14694:56;14744:5;14694:56;:::i;:::-;14773:7;14804:1;14789:284;14814:6;14811:1;14808:13;14789:284;;;14890:6;14884:13;14917:63;14976:3;14961:13;14917:63;:::i;:::-;14910:70;;15003:60;15056:6;15003:60;:::i;:::-;14993:70;;14849:224;14836:1;14833;14829:9;14824:14;;14789:284;;;14793:14;15089:3;15082:10;;14490:608;;;14366:732;;;;:::o;15134:::-;15253:3;15282:54;15330:5;15282:54;:::i;:::-;15352:86;15431:6;15426:3;15352:86;:::i;:::-;15345:93;;15462:56;15512:5;15462:56;:::i;:::-;15541:7;15572:1;15557:284;15582:6;15579:1;15576:13;15557:284;;;15658:6;15652:13;15685:63;15744:3;15729:13;15685:63;:::i;:::-;15678:70;;15771:60;15824:6;15771:60;:::i;:::-;15761:70;;15617:224;15604:1;15601;15597:9;15592:14;;15557:284;;;15561:14;15857:3;15850:10;;15258:608;;;15134:732;;;;:::o;15898:716::-;16013:3;16042:52;16088:5;16042:52;:::i;:::-;16110:84;16187:6;16182:3;16110:84;:::i;:::-;16103:91;;16218:54;16266:5;16218:54;:::i;:::-;16295:7;16326:1;16311:278;16336:6;16333:1;16330:13;16311:278;;;16412:6;16406:13;16439:59;16494:3;16479:13;16439:59;:::i;:::-;16432:66;;16521:58;16572:6;16521:58;:::i;:::-;16511:68;;16371:218;16358:1;16355;16351:9;16346:14;;16311:278;;;16315:14;16605:3;16598:10;;16018:596;;;15898:716;;;;:::o;16620:99::-;16691:21;16706:5;16691:21;:::i;:::-;16686:3;16679:34;16620:99;;:::o;16725:109::-;16806:21;16821:5;16806:21;:::i;:::-;16801:3;16794:34;16725:109;;:::o;16840:108::-;16917:24;16935:5;16917:24;:::i;:::-;16912:3;16905:37;16840:108;;:::o;16954:118::-;17041:24;17059:5;17041:24;:::i;:::-;17036:3;17029:37;16954:118;;:::o;17078:373::-;17182:3;17210:38;17242:5;17210:38;:::i;:::-;17264:88;17345:6;17340:3;17264:88;:::i;:::-;17257:95;;17361:52;17406:6;17401:3;17394:4;17387:5;17383:16;17361:52;:::i;:::-;17438:6;17433:3;17429:16;17422:23;;17186:265;17078:373;;;;:::o;17481:304::-;17579:3;17600:71;17664:6;17659:3;17600:71;:::i;:::-;17593:78;;17681:43;17717:6;17712:3;17705:5;17681:43;:::i;:::-;17749:29;17771:6;17749:29;:::i;:::-;17744:3;17740:39;17733:46;;17481:304;;;;;:::o;17791:364::-;17879:3;17907:39;17940:5;17907:39;:::i;:::-;17962:71;18026:6;18021:3;17962:71;:::i;:::-;17955:78;;18042:52;18087:6;18082:3;18075:4;18068:5;18064:16;18042:52;:::i;:::-;18119:29;18141:6;18119:29;:::i;:::-;18114:3;18110:39;18103:46;;17883:272;17791:364;;;;:::o;18161:366::-;18303:3;18324:67;18388:2;18383:3;18324:67;:::i;:::-;18317:74;;18400:93;18489:3;18400:93;:::i;:::-;18518:2;18513:3;18509:12;18502:19;;18161:366;;;:::o;18533:::-;18675:3;18696:67;18760:2;18755:3;18696:67;:::i;:::-;18689:74;;18772:93;18861:3;18772:93;:::i;:::-;18890:2;18885:3;18881:12;18874:19;;18533:366;;;:::o;18905:::-;19047:3;19068:67;19132:2;19127:3;19068:67;:::i;:::-;19061:74;;19144:93;19233:3;19144:93;:::i;:::-;19262:2;19257:3;19253:12;19246:19;;18905:366;;;:::o;19277:::-;19419:3;19440:67;19504:2;19499:3;19440:67;:::i;:::-;19433:74;;19516:93;19605:3;19516:93;:::i;:::-;19634:2;19629:3;19625:12;19618:19;;19277:366;;;:::o;19649:::-;19791:3;19812:67;19876:2;19871:3;19812:67;:::i;:::-;19805:74;;19888:93;19977:3;19888:93;:::i;:::-;20006:2;20001:3;19997:12;19990:19;;19649:366;;;:::o;20021:::-;20163:3;20184:67;20248:2;20243:3;20184:67;:::i;:::-;20177:74;;20260:93;20349:3;20260:93;:::i;:::-;20378:2;20373:3;20369:12;20362:19;;20021:366;;;:::o;20393:::-;20535:3;20556:67;20620:2;20615:3;20556:67;:::i;:::-;20549:74;;20632:93;20721:3;20632:93;:::i;:::-;20750:2;20745:3;20741:12;20734:19;;20393:366;;;:::o;20765:::-;20907:3;20928:67;20992:2;20987:3;20928:67;:::i;:::-;20921:74;;21004:93;21093:3;21004:93;:::i;:::-;21122:2;21117:3;21113:12;21106:19;;20765:366;;;:::o;21137:::-;21279:3;21300:67;21364:2;21359:3;21300:67;:::i;:::-;21293:74;;21376:93;21465:3;21376:93;:::i;:::-;21494:2;21489:3;21485:12;21478:19;;21137:366;;;:::o;21509:::-;21651:3;21672:67;21736:2;21731:3;21672:67;:::i;:::-;21665:74;;21748:93;21837:3;21748:93;:::i;:::-;21866:2;21861:3;21857:12;21850:19;;21509:366;;;:::o;21881:::-;22023:3;22044:67;22108:2;22103:3;22044:67;:::i;:::-;22037:74;;22120:93;22209:3;22120:93;:::i;:::-;22238:2;22233:3;22229:12;22222:19;;21881:366;;;:::o;22253:::-;22395:3;22416:67;22480:2;22475:3;22416:67;:::i;:::-;22409:74;;22492:93;22581:3;22492:93;:::i;:::-;22610:2;22605:3;22601:12;22594:19;;22253:366;;;:::o;22625:::-;22767:3;22788:67;22852:2;22847:3;22788:67;:::i;:::-;22781:74;;22864:93;22953:3;22864:93;:::i;:::-;22982:2;22977:3;22973:12;22966:19;;22625:366;;;:::o;22997:::-;23139:3;23160:67;23224:2;23219:3;23160:67;:::i;:::-;23153:74;;23236:93;23325:3;23236:93;:::i;:::-;23354:2;23349:3;23345:12;23338:19;;22997:366;;;:::o;23369:::-;23511:3;23532:67;23596:2;23591:3;23532:67;:::i;:::-;23525:74;;23608:93;23697:3;23608:93;:::i;:::-;23726:2;23721:3;23717:12;23710:19;;23369:366;;;:::o;23741:108::-;23818:24;23836:5;23818:24;:::i;:::-;23813:3;23806:37;23741:108;;:::o;23855:118::-;23942:24;23960:5;23942:24;:::i;:::-;23937:3;23930:37;23855:118;;:::o;23979:157::-;24084:45;24104:24;24122:5;24104:24;:::i;:::-;24084:45;:::i;:::-;24079:3;24072:58;23979:157;;:::o;24142:102::-;24215:22;24231:5;24215:22;:::i;:::-;24210:3;24203:35;24142:102;;:::o;24250:112::-;24333:22;24349:5;24333:22;:::i;:::-;24328:3;24321:35;24250:112;;:::o;24368:412::-;24526:3;24548:93;24637:3;24628:6;24548:93;:::i;:::-;24541:100;;24651:75;24722:3;24713:6;24651:75;:::i;:::-;24751:2;24746:3;24742:12;24735:19;;24771:3;24764:10;;24368:412;;;;;:::o;24786:222::-;24879:4;24917:2;24906:9;24902:18;24894:26;;24930:71;24998:1;24987:9;24983:17;24974:6;24930:71;:::i;:::-;24786:222;;;;:::o;25014:553::-;25193:4;25231:2;25220:9;25216:18;25208:26;;25244:71;25312:1;25301:9;25297:17;25288:6;25244:71;:::i;:::-;25362:9;25356:4;25352:20;25347:2;25336:9;25332:18;25325:48;25390:88;25473:4;25464:6;25456;25390:88;:::i;:::-;25382:96;;25488:72;25556:2;25545:9;25541:18;25532:6;25488:72;:::i;:::-;25014:553;;;;;;;:::o;25573:210::-;25660:4;25698:2;25687:9;25683:18;25675:26;;25711:65;25773:1;25762:9;25758:17;25749:6;25711:65;:::i;:::-;25573:210;;;;:::o;25789:2206::-;26447:4;26485:3;26474:9;26470:19;26462:27;;26499:65;26561:1;26550:9;26546:17;26537:6;26499:65;:::i;:::-;26574:72;26642:2;26631:9;26627:18;26618:6;26574:72;:::i;:::-;26656;26724:2;26713:9;26709:18;26700:6;26656:72;:::i;:::-;26775:9;26769:4;26765:20;26760:2;26749:9;26745:18;26738:48;26803:108;26906:4;26897:6;26803:108;:::i;:::-;26795:116;;26959:9;26953:4;26949:20;26943:3;26932:9;26928:19;26921:49;26987:102;27084:4;27075:6;26987:102;:::i;:::-;26979:110;;27099:73;27167:3;27156:9;27152:19;27143:6;27099:73;:::i;:::-;27182;27250:3;27239:9;27235:19;27226:6;27182:73;:::i;:::-;27303:9;27297:4;27293:20;27287:3;27276:9;27272:19;27265:49;27331:108;27434:4;27425:6;27331:108;:::i;:::-;27323:116;;27487:9;27481:4;27477:20;27471:3;27460:9;27456:19;27449:49;27515:104;27614:4;27605:6;27515:104;:::i;:::-;27507:112;;27667:9;27661:4;27657:20;27651:3;27640:9;27636:19;27629:49;27695:108;27798:4;27789:6;27695:108;:::i;:::-;27687:116;;27851:9;27845:4;27841:20;27835:3;27824:9;27820:19;27813:49;27879:109;27983:4;27973:7;27879:109;:::i;:::-;27871:117;;25789:2206;;;;;;;;;;;;;;:::o;28001:313::-;28114:4;28152:2;28141:9;28137:18;28129:26;;28201:9;28195:4;28191:20;28187:1;28176:9;28172:17;28165:47;28229:78;28302:4;28293:6;28229:78;:::i;:::-;28221:86;;28001:313;;;;:::o;28320:419::-;28486:4;28524:2;28513:9;28509:18;28501:26;;28573:9;28567:4;28563:20;28559:1;28548:9;28544:17;28537:47;28601:131;28727:4;28601:131;:::i;:::-;28593:139;;28320:419;;;:::o;28745:::-;28911:4;28949:2;28938:9;28934:18;28926:26;;28998:9;28992:4;28988:20;28984:1;28973:9;28969:17;28962:47;29026:131;29152:4;29026:131;:::i;:::-;29018:139;;28745:419;;;:::o;29170:::-;29336:4;29374:2;29363:9;29359:18;29351:26;;29423:9;29417:4;29413:20;29409:1;29398:9;29394:17;29387:47;29451:131;29577:4;29451:131;:::i;:::-;29443:139;;29170:419;;;:::o;29595:::-;29761:4;29799:2;29788:9;29784:18;29776:26;;29848:9;29842:4;29838:20;29834:1;29823:9;29819:17;29812:47;29876:131;30002:4;29876:131;:::i;:::-;29868:139;;29595:419;;;:::o;30020:::-;30186:4;30224:2;30213:9;30209:18;30201:26;;30273:9;30267:4;30263:20;30259:1;30248:9;30244:17;30237:47;30301:131;30427:4;30301:131;:::i;:::-;30293:139;;30020:419;;;:::o;30445:::-;30611:4;30649:2;30638:9;30634:18;30626:26;;30698:9;30692:4;30688:20;30684:1;30673:9;30669:17;30662:47;30726:131;30852:4;30726:131;:::i;:::-;30718:139;;30445:419;;;:::o;30870:::-;31036:4;31074:2;31063:9;31059:18;31051:26;;31123:9;31117:4;31113:20;31109:1;31098:9;31094:17;31087:47;31151:131;31277:4;31151:131;:::i;:::-;31143:139;;30870:419;;;:::o;31295:::-;31461:4;31499:2;31488:9;31484:18;31476:26;;31548:9;31542:4;31538:20;31534:1;31523:9;31519:17;31512:47;31576:131;31702:4;31576:131;:::i;:::-;31568:139;;31295:419;;;:::o;31720:::-;31886:4;31924:2;31913:9;31909:18;31901:26;;31973:9;31967:4;31963:20;31959:1;31948:9;31944:17;31937:47;32001:131;32127:4;32001:131;:::i;:::-;31993:139;;31720:419;;;:::o;32145:::-;32311:4;32349:2;32338:9;32334:18;32326:26;;32398:9;32392:4;32388:20;32384:1;32373:9;32369:17;32362:47;32426:131;32552:4;32426:131;:::i;:::-;32418:139;;32145:419;;;:::o;32570:::-;32736:4;32774:2;32763:9;32759:18;32751:26;;32823:9;32817:4;32813:20;32809:1;32798:9;32794:17;32787:47;32851:131;32977:4;32851:131;:::i;:::-;32843:139;;32570:419;;;:::o;32995:::-;33161:4;33199:2;33188:9;33184:18;33176:26;;33248:9;33242:4;33238:20;33234:1;33223:9;33219:17;33212:47;33276:131;33402:4;33276:131;:::i;:::-;33268:139;;32995:419;;;:::o;33420:::-;33586:4;33624:2;33613:9;33609:18;33601:26;;33673:9;33667:4;33663:20;33659:1;33648:9;33644:17;33637:47;33701:131;33827:4;33701:131;:::i;:::-;33693:139;;33420:419;;;:::o;33845:::-;34011:4;34049:2;34038:9;34034:18;34026:26;;34098:9;34092:4;34088:20;34084:1;34073:9;34069:17;34062:47;34126:131;34252:4;34126:131;:::i;:::-;34118:139;;33845:419;;;:::o;34270:::-;34436:4;34474:2;34463:9;34459:18;34451:26;;34523:9;34517:4;34513:20;34509:1;34498:9;34494:17;34487:47;34551:131;34677:4;34551:131;:::i;:::-;34543:139;;34270:419;;;:::o;34695:222::-;34788:4;34826:2;34815:9;34811:18;34803:26;;34839:71;34907:1;34896:9;34892:17;34883:6;34839:71;:::i;:::-;34695:222;;;;:::o;34923:214::-;35012:4;35050:2;35039:9;35035:18;35027:26;;35063:67;35127:1;35116:9;35112:17;35103:6;35063:67;:::i;:::-;34923:214;;;;:::o;35143:129::-;35177:6;35204:20;;:::i;:::-;35194:30;;35233:33;35261:4;35253:6;35233:33;:::i;:::-;35143:129;;;:::o;35278:75::-;35311:6;35344:2;35338:9;35328:19;;35278:75;:::o;35359:308::-;35433:4;35523:18;35515:6;35512:30;35509:56;;;35545:18;;:::i;:::-;35509:56;35595:4;35587:6;35583:17;35575:25;;35655:4;35649;35645:15;35637:23;;35359:308;;;:::o;35673:311::-;35750:4;35840:18;35832:6;35829:30;35826:56;;;35862:18;;:::i;:::-;35826:56;35912:4;35904:6;35900:17;35892:25;;35972:4;35966;35962:15;35954:23;;35673:311;;;:::o;35990:::-;36067:4;36157:18;36149:6;36146:30;36143:56;;;36179:18;;:::i;:::-;36143:56;36229:4;36221:6;36217:17;36209:25;;36289:4;36283;36279:15;36271:23;;35990:311;;;:::o;36307:309::-;36382:4;36472:18;36464:6;36461:30;36458:56;;;36494:18;;:::i;:::-;36458:56;36544:4;36536:6;36532:17;36524:25;;36604:4;36598;36594:15;36586:23;;36307:309;;;:::o;36622:307::-;36683:4;36773:18;36765:6;36762:30;36759:56;;;36795:18;;:::i;:::-;36759:56;36833:29;36855:6;36833:29;:::i;:::-;36825:37;;36917:4;36911;36907:15;36899:23;;36622:307;;;:::o;36935:129::-;36999:4;37022:3;37014:11;;37052:4;37047:3;37043:14;37035:22;;36935:129;;;:::o;37070:132::-;37137:4;37160:3;37152:11;;37190:4;37185:3;37181:14;37173:22;;37070:132;;;:::o;37208:::-;37275:4;37298:3;37290:11;;37328:4;37323:3;37319:14;37311:22;;37208:132;;;:::o;37346:130::-;37411:4;37434:3;37426:11;;37464:4;37459:3;37455:14;37447:22;;37346:130;;;:::o;37482:111::-;37546:6;37580:5;37574:12;37564:22;;37482:111;;;:::o;37599:114::-;37666:6;37700:5;37694:12;37684:22;;37599:114;;;:::o;37719:::-;37786:6;37820:5;37814:12;37804:22;;37719:114;;;:::o;37839:112::-;37904:6;37938:5;37932:12;37922:22;;37839:112;;;:::o;37957:98::-;38008:6;38042:5;38036:12;38026:22;;37957:98;;;:::o;38061:99::-;38113:6;38147:5;38141:12;38131:22;;38061:99;;;:::o;38166:110::-;38233:4;38265;38260:3;38256:14;38248:22;;38166:110;;;:::o;38282:113::-;38352:4;38384;38379:3;38375:14;38367:22;;38282:113;;;:::o;38401:::-;38471:4;38503;38498:3;38494:14;38486:22;;38401:113;;;:::o;38520:111::-;38588:4;38620;38615:3;38611:14;38603:22;;38520:111;;;:::o;38637:181::-;38733:11;38767:6;38762:3;38755:19;38807:4;38802:3;38798:14;38783:29;;38637:181;;;;:::o;38824:184::-;38923:11;38957:6;38952:3;38945:19;38997:4;38992:3;38988:14;38973:29;;38824:184;;;;:::o;39014:::-;39113:11;39147:6;39142:3;39135:19;39187:4;39182:3;39178:14;39163:29;;39014:184;;;;:::o;39204:182::-;39301:11;39335:6;39330:3;39323:19;39375:4;39370:3;39366:14;39351:29;;39204:182;;;;:::o;39392:147::-;39493:11;39530:3;39515:18;;39392:147;;;;:::o;39545:169::-;39629:11;39663:6;39658:3;39651:19;39703:4;39698:3;39694:14;39679:29;;39545:169;;;;:::o;39720:305::-;39760:3;39779:20;39797:1;39779:20;:::i;:::-;39774:25;;39813:20;39831:1;39813:20;:::i;:::-;39808:25;;39967:1;39899:66;39895:74;39892:1;39889:81;39886:107;;;39973:18;;:::i;:::-;39886:107;40017:1;40014;40010:9;40003:16;;39720:305;;;;:::o;40031:191::-;40071:4;40091:20;40109:1;40091:20;:::i;:::-;40086:25;;40125:20;40143:1;40125:20;:::i;:::-;40120:25;;40164:1;40161;40158:8;40155:34;;;40169:18;;:::i;:::-;40155:34;40214:1;40211;40207:9;40199:17;;40031:191;;;;:::o;40228:96::-;40265:7;40294:24;40312:5;40294:24;:::i;:::-;40283:35;;40228:96;;;:::o;40330:90::-;40364:7;40407:5;40400:13;40393:21;40382:32;;40330:90;;;:::o;40426:77::-;40463:7;40492:5;40481:16;;40426:77;;;:::o;40509:126::-;40546:7;40586:42;40579:5;40575:54;40564:65;;40509:126;;;:::o;40641:77::-;40678:7;40707:5;40696:16;;40641:77;;;:::o;40724:86::-;40759:7;40799:4;40792:5;40788:16;40777:27;;40724:86;;;:::o;40816:154::-;40900:6;40895:3;40890;40877:30;40962:1;40953:6;40948:3;40944:16;40937:27;40816:154;;;:::o;40976:307::-;41044:1;41054:113;41068:6;41065:1;41062:13;41054:113;;;41153:1;41148:3;41144:11;41138:18;41134:1;41129:3;41125:11;41118:39;41090:2;41087:1;41083:10;41078:15;;41054:113;;;41185:6;41182:1;41179:13;41176:101;;;41265:1;41256:6;41251:3;41247:16;41240:27;41176:101;41025:258;40976:307;;;:::o;41289:320::-;41333:6;41370:1;41364:4;41360:12;41350:22;;41417:1;41411:4;41407:12;41438:18;41428:81;;41494:4;41486:6;41482:17;41472:27;;41428:81;41556:2;41548:6;41545:14;41525:18;41522:38;41519:84;;;41575:18;;:::i;:::-;41519:84;41340:269;41289:320;;;:::o;41615:281::-;41698:27;41720:4;41698:27;:::i;:::-;41690:6;41686:40;41828:6;41816:10;41813:22;41792:18;41780:10;41777:34;41774:62;41771:88;;;41839:18;;:::i;:::-;41771:88;41879:10;41875:2;41868:22;41658:238;41615:281;;:::o;41902:79::-;41941:7;41970:5;41959:16;;41902:79;;;:::o;41987:180::-;42035:77;42032:1;42025:88;42132:4;42129:1;42122:15;42156:4;42153:1;42146:15;42173:180;42221:77;42218:1;42211:88;42318:4;42315:1;42308:15;42342:4;42339:1;42332:15;42359:180;42407:77;42404:1;42397:88;42504:4;42501:1;42494:15;42528:4;42525:1;42518:15;42545:180;42593:77;42590:1;42583:88;42690:4;42687:1;42680:15;42714:4;42711:1;42704:15;42731:117;42840:1;42837;42830:12;42854:117;42963:1;42960;42953:12;42977:117;43086:1;43083;43076:12;43100:117;43209:1;43206;43199:12;43223:117;43332:1;43329;43322:12;43346:117;43455:1;43452;43445:12;43469:102;43510:6;43561:2;43557:7;43552:2;43545:5;43541:14;43537:28;43527:38;;43469:102;;;:::o;43577:222::-;43717:34;43713:1;43705:6;43701:14;43694:58;43786:5;43781:2;43773:6;43769:15;43762:30;43577:222;:::o;43805:221::-;43945:34;43941:1;43933:6;43929:14;43922:58;44014:4;44009:2;44001:6;43997:15;43990:29;43805:221;:::o;44032:::-;44172:34;44168:1;44160:6;44156:14;44149:58;44241:4;44236:2;44228:6;44224:15;44217:29;44032:221;:::o;44259:225::-;44399:34;44395:1;44387:6;44383:14;44376:58;44468:8;44463:2;44455:6;44451:15;44444:33;44259:225;:::o;44490:176::-;44630:28;44626:1;44618:6;44614:14;44607:52;44490:176;:::o;44672:229::-;44812:34;44808:1;44800:6;44796:14;44789:58;44881:12;44876:2;44868:6;44864:15;44857:37;44672:229;:::o;44907:227::-;45047:34;45043:1;45035:6;45031:14;45024:58;45116:10;45111:2;45103:6;45099:15;45092:35;44907:227;:::o;45140:220::-;45280:34;45276:1;45268:6;45264:14;45257:58;45349:3;45344:2;45336:6;45332:15;45325:28;45140:220;:::o;45366:224::-;45506:34;45502:1;45494:6;45490:14;45483:58;45575:7;45570:2;45562:6;45558:15;45551:32;45366:224;:::o;45596:180::-;45736:32;45732:1;45724:6;45720:14;45713:56;45596:180;:::o;45782:223::-;45922:34;45918:1;45910:6;45906:14;45899:58;45991:6;45986:2;45978:6;45974:15;45967:31;45782:223;:::o;46011:170::-;46151:22;46147:1;46139:6;46135:14;46128:46;46011:170;:::o;46187:169::-;46327:21;46323:1;46315:6;46311:14;46304:45;46187:169;:::o;46362:175::-;46502:27;46498:1;46490:6;46486:14;46479:51;46362:175;:::o;46543:224::-;46683:34;46679:1;46671:6;46667:14;46660:58;46752:7;46747:2;46739:6;46735:15;46728:32;46543:224;:::o;46773:122::-;46846:24;46864:5;46846:24;:::i;:::-;46839:5;46836:35;46826:63;;46885:1;46882;46875:12;46826:63;46773:122;:::o;46901:116::-;46971:21;46986:5;46971:21;:::i;:::-;46964:5;46961:32;46951:60;;47007:1;47004;46997:12;46951:60;46901:116;:::o;47023:122::-;47096:24;47114:5;47096:24;:::i;:::-;47089:5;47086:35;47076:63;;47135:1;47132;47125:12;47076:63;47023:122;:::o;47151:::-;47224:24;47242:5;47224:24;:::i;:::-;47217:5;47214:35;47204:63;;47263:1;47260;47253:12;47204:63;47151:122;:::o;47279:118::-;47350:22;47366:5;47350:22;:::i;:::-;47343:5;47340:33;47330:61;;47387:1;47384;47377:12;47330:61;47279:118;:::o

Swarm Source

ipfs://ab5a7df9bee7d5a769dae7df24d6d74ea658e7d4c2a6e507fd84d82330fb836d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Incognito is a global community of privacy-minded builders seeking to protect the world from surveillance and control.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.