Contract 0x049d68029688eabf473097a2fc38ef61633a3c7a 7

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa27dc69e2dfc9bb17933669ff260e4675fa236e477d4695d670c0647b730c4baApprove414156872022-06-26 23:02:366 mins ago0x602e225916b01d459b9946fe123226b8773f0fc5 IN  Anyswap: fUSDT Token0 FTM0.006896354779
0xdc151b762937e658783a548f13d0c68d747ba491ef04bac44e836ebbcdee397cTransfer414152092022-06-26 22:54:4214 mins ago0x2f462c939487b148d3d7fb0b47ec1605c51a4b8c IN  Anyswap: fUSDT Token0 FTM0.000235519904
0x748227e42b64d41d50f433af50c6bf545de11e74fe8b2ae01a7deea712857ee9Approve414136182022-06-26 22:20:5148 mins ago0x43dd4fb4f9a989722a1a7f0afcaa4500d78b164b IN  Anyswap: fUSDT Token0 FTM0.004354739505
0xc10950c58c40761812b63b8ed0edd4b2131fed5215d895cf082f5d658ed59fe1Approve414134452022-06-26 22:17:1651 mins ago0x27756334f9dd3c3c0820e2f714a487158d2d4340 IN  Anyswap: fUSDT Token0 FTM0.00020716221
0x2d4ddd8d37f578f34f9f46d702cfd391e48123c88676437949e17ec5cfd0f1e0Approve414133902022-06-26 22:16:1052 mins ago0x76e4614656b8767f0d16cb4b5ba599e846ebd60b IN  Anyswap: fUSDT Token0 FTM0.000187704234
0x9388070872861d201955d249e21c91a51ccf9bf9154ae54aebcdfa72e50bda38Approve414132112022-06-26 22:12:4956 mins ago0x76e4614656b8767f0d16cb4b5ba599e846ebd60b IN  Anyswap: fUSDT Token0 FTM0.000145610406
0xa56e5c5bcf60ca5771d7eb9dbf3c8fc0acf77c87f29d2fca3bff7bff9e4bb272Approve414127572022-06-26 22:04:091 hr 4 mins ago0xe2ce0768f569fc12aad40a8c3b1e682874a52d42 IN  Anyswap: fUSDT Token0 FTM0.000571039436
0x6fb41624d599d9c3869b7656b808f4b7645215e5ba71d4ffbda5283b4a56fe04Approve414116102022-06-26 21:43:311 hr 25 mins ago0x6cbe9e69b54fb87cbfdc8cca2cd6e90515d1a36c IN  Anyswap: fUSDT Token0 FTM0.000153937754
0x8c93061b241d303ae031927ba46104dc1b42d97b450b76928d0978d6eb1be1b3Approve414113492022-06-26 21:39:071 hr 29 mins ago0x05a03c1a64d75016a870f5abde6c85539cd38ec8 IN  Anyswap: fUSDT Token0 FTM0.000098412515
0x9244d2f20374c41ba1ff84bfc413cba1625796a6cf8d998e92d78c943536ce2aApprove414112112022-06-26 21:36:531 hr 32 mins ago0x7da120244953f6dae140efa301bd3396c67a18dd IN  Anyswap: fUSDT Token0 FTM0.000615321039
0x306cd7f91810e7ce029e93a86963abb25979f5a6bb0644da925b388cdfaf05c1Transfer414110492022-06-26 21:33:561 hr 35 mins ago0x72bf2dbc9d3a724253a05b58b906109e8c382910 IN  Anyswap: fUSDT Token0 FTM0.000167813228
0xaafa4f3e25dee5cd052060016a55db8cc2821f35cd35e5b17b5e0c0b9e012a25Approve414109482022-06-26 21:32:161 hr 36 mins ago0xd013262068e0b15c626d671c3fd86acc473a4704 IN  Anyswap: fUSDT Token0 FTM0.000159729366
0x8720675e48119cf3f95bbb04d079a9477c9026598575f61170917e818925aa51Transfer414083632022-06-26 20:47:352 hrs 21 mins ago0x91f77b2a79b68278aa34d8be5d7c29ee94202414 IN  Anyswap: fUSDT Token0 FTM0.000104268065
0xe334135b3bc8c8ef1229e3f6e67fc0166defd4b75dbacf12369c8b74a1fdc447Approve414081942022-06-26 20:44:292 hrs 24 mins ago0xff81ac7c51125d49504b4997986a05e233fc4e6f IN  Anyswap: fUSDT Token0 FTM0.000129980661
0xfc7c1a05161332f29c8b5fb75b85edd2cf477b11995fa9482d5c2462b39d16d4Transfer414078392022-06-26 20:38:232 hrs 30 mins ago0xb6d69e87be8fdd0acd5dfb786d77581e76c4589c IN  Anyswap: fUSDT Token0 FTM0.00051695082
0xb7b4df11aa5acc25bcd8f432a0cf6abb976d208e019647d4524967857a500222Approve414077682022-06-26 20:37:142 hrs 31 mins ago0x1b9efc107d3cbc3d56060df25b20e203732a1fb0 IN  Anyswap: fUSDT Token0 FTM0.015065372039
0x422b0872de15edc882639a3f07d47153ba2265658b664fcaabbab0e3046a8563Approve414077612022-06-26 20:37:072 hrs 31 mins ago0xe0139b1e5aea4cabf0005267f1b873cda8ebfa38 IN  Anyswap: fUSDT Token0 FTM0.000396788961
0xa4c6ee7fdd36c2ed2edd4335300d970deb48784f97ad8426cff47aa1defe299eApprove414065132022-06-26 20:13:292 hrs 55 mins ago0x9c29efa6fddbfed56ac358902d6133defba83dc8 IN  Anyswap: fUSDT Token0 FTM0.028120519002
0x4566539e290bb0cbd61b31c068139f9eae9496998f04e10b41fb9ee31f676fa6Transfer414059982022-06-26 20:04:263 hrs 4 mins ago0x7eae28f0fd4dcadb8b7db40b93b81166bb121f91 IN  Anyswap: fUSDT Token0 FTM0.000121669061
0xb2c23a74c22188618df735bdd2d6ef2c17105305eb29690c18b7f244eb89ab8aApprove414059602022-06-26 20:03:483 hrs 5 mins ago0x2f2e8c0b1c8546bf94c27630476fac165450e34e IN  Anyswap: fUSDT Token0 FTM0.000180281176
0x31af7a38921c22e2c77568a00e892773d54281bcf44f0d11021cff0b29083260Transfer414052552022-06-26 19:51:433 hrs 17 mins ago0xef990a90794383d641d9d14c47058b771245f40e IN  Anyswap: fUSDT Token0 FTM0.000124312581
0xf688c60749ea653f52283402d1bfd6228cb1e41a8b80dd809ec4aefc25eafae0Transfer414051692022-06-26 19:50:083 hrs 18 mins ago0x96145bca53b000b787be624ec2d6bb76e7cc0cee IN  Anyswap: fUSDT Token0 FTM0.000122634182
0x5226f56da0a781866ff1e5fe52ae023899ce4fb7c799bf8d659b87045bb501a3Approve414036292022-06-26 19:23:033 hrs 46 mins ago0x124724852a01645eab39ec288703b42872cdd067 IN  Anyswap: fUSDT Token0 FTM0.000261139276
0xc45c72e4b4b235ecc6726a9f3f0114146631f775afc67eb61006867a78b29ea5Approve414032112022-06-26 19:16:053 hrs 52 mins ago0x96be3661dc4c10a17d6ff6625d99cb565a3aa00f IN  Anyswap: fUSDT Token0 FTM0.012564317978
0x2e41f8358ac0052a503655232a221810a4508056294696b57480a3be67b1ff85Approve414029612022-06-26 19:11:303 hrs 57 mins ago0x9d1b457d6f672b2b54598c80175e91a2dcd075df IN  Anyswap: fUSDT Token0 FTM0.006072550708
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa8d4592c2b558655cdf1e1b5db35ebcd66e5cabbcfdaadad6721148b02da2424357406022022-04-10 20:13:2177 days 2 hrs ago 0xab7a962117ba529372d6017b24d48738b1923390 Anyswap: fUSDT Token125 FTM
0x5bfab0747685a395bc7f02a4a0726af43116482c360ee1e40312a9f7ea485421357405692022-04-10 20:12:4577 days 2 hrs ago 0xab7a962117ba529372d6017b24d48738b1923390 Anyswap: fUSDT Token125 FTM
0x82a92468fd7fccb9979374098d66b4bb31d3be925320e1161982e18251575e8d319824312022-02-26 2:51:08120 days 20 hrs ago 0x29c00a83152621dbfe3864bb0d992aabd6697d9b Anyswap: fUSDT Token0.1 FTM
0x4d96de859a4bbe52f2970e5bce593ad88af34bed6c917c08bc39dde9d2c4839d316744102022-02-22 6:08:11124 days 17 hrs ago 0x1f63c0cb5eb348ac14f2f60b58d996541e34d621 Anyswap: fUSDT Token10 FTM
0x81d6bf7ebc7047f005cb72fadcda5f211e9e26bd927c3f5eb2f7e871ca1407b3293046402022-01-28 17:45:59149 days 5 hrs ago 0xeed926bffca136465f5e31de7f92d4786b712baa Anyswap: fUSDT Token1 FTM
0x113773905879dd5145feb8c27a0eaa83d7220545c66e922d91d058b005de1805293007642022-01-28 16:50:39149 days 6 hrs ago 0xeed926bffca136465f5e31de7f92d4786b712baa Anyswap: fUSDT Token1 FTM
0x2189d6a83319b53de36ba82c780f5f64674beb1b32c65004817cb1b5c6b32ff2293002732022-01-28 16:43:31149 days 6 hrs ago 0xeed926bffca136465f5e31de7f92d4786b712baa Anyswap: fUSDT Token1 FTM
0x1719ac95fe6208944a024405b6c1ef62c61350a29fa0fc5db1bc6f2424c66d66292072192022-01-27 16:42:10150 days 6 hrs ago 0x54bcceacab92b734f27b95479d24958cf53b43d5 Anyswap: fUSDT Token25 FTM
0x0d58bb21d178273822724e29acc84ba58f51183fb6436decf214f83b08c4463d290697602022-01-26 5:19:45151 days 17 hrs ago 0x86b21db9599b57cbeecad439124fa765b201ec32 Anyswap: fUSDT Token9 FTM
0x41cb545d6b8cbea24f92dcde3fb9e57363fe5a8f4fa31919c6bae35dfe3e1c19290697232022-01-26 5:19:11151 days 17 hrs ago 0x86b21db9599b57cbeecad439124fa765b201ec32 Anyswap: fUSDT Token9.2 FTM
0xb33e5bad49a69889316e0a1d334cc91eebad763aff54179b387315154a41f6cb290695542022-01-26 5:17:00151 days 17 hrs ago 0x86b21db9599b57cbeecad439124fa765b201ec32 Anyswap: fUSDT Token9.211452607091518625 FTM
0xf7c47c13aa23727c2f5b68030203c564d86c723778531f09d707e7aace315a23283455822022-01-18 13:15:27159 days 9 hrs ago 0x76f5caccf3a927b2213e07247c437e03b2a27c36 Anyswap: fUSDT Token2 FTM
0x4c492053dd89bc2106cb49649188d93a7c1fbf30967c5fccc5746cb8b42b8d8f271666112022-01-06 13:51:49171 days 9 hrs ago 0x08445368aaf83c733305f081f99b3b08f6e9d797 Anyswap: fUSDT Token35.522595243611564708 FTM
0x8b44ca536011effec68516fa087843af4b3c1135921f03288427925549e3d44f252679502021-12-17 22:41:13191 days 27 mins ago 0x88d5837cea2d5a825aec0a5c05f725b654b2cd66 Anyswap: fUSDT Token45 FTM
0x46ea7b59f80e559a7f4b385df5933af221e5a17684d0121395d64e61593a1637233760932021-11-28 11:35:30210 days 11 hrs ago 0xebf4fbb9c81b84dd5cf89bc75588e5d0018501b3 Anyswap: fUSDT Token7.99 FTM
0xf848489bd28094965cf861e62db963e7c8a30635527b8a4e2179db932757b537219658762021-11-13 21:38:47225 days 1 hr ago 0x6f2d6f22fde303fa6df9c985b943c517602171a8 Anyswap: fUSDT Token8 FTM
0x63a921ffdbf48440f866c5e4698d4a6d8a93de8af5a656c42894ccd5292e787e203160852021-10-28 3:26:55241 days 19 hrs ago 0xebf4fbb9c81b84dd5cf89bc75588e5d0018501b3 Anyswap: fUSDT Token2,962.166 FTM
0x3a58369d0fb5f3e4c6a6399c7891be68cd8c98c3c9066830c97c6480394dba66202358022021-10-27 8:04:32242 days 15 hrs ago 0x4a430d2436d84bde9a19222c99c27430ba6bf0e5 Anyswap: fUSDT Token850.316820120783362401 FTM
0x3b11930830a91403f3686057f5926304f809bc7eb6221f2cf27c230bbb8cbe1c184380012021-10-06 13:31:17263 days 9 hrs ago 0x8e8de6f4ffb99e6591a8b826c905be0003e65e04 Anyswap: fUSDT Token0.1 FTM
0x933764ba165bc335292417c9245a9ef153ae6c052f8606309826b4feed033e45180798242021-10-01 17:59:04268 days 5 hrs ago 0x042b009e1a10e5c77a4969bcd431e84e265627e8 Anyswap: fUSDT Token9.9252901069132 FTM
0xa45a7827db86c5dc4d968d461cdbd4a089f76774e03eae4b4fce8760e5446c81180797622021-10-01 17:57:59268 days 5 hrs ago 0x042b009e1a10e5c77a4969bcd431e84e265627e8 Anyswap: fUSDT Token9.9314907706132 FTM
0xad2f33c37441be627d9c04666c609d2e474cfc42f2728be2034997aca2453e96167662522021-09-09 20:06:17290 days 3 hrs ago 0x98071fc469cf2fdce21c4a9d06db0bca1a22a07a Anyswap: fUSDT Token1 FTM
0x0aeefb8943cf9688382934e26c1906f8ab830587cf3ed86e500293564f8880c8161791872021-09-02 19:30:23297 days 3 hrs ago 0xd6372fb3f7355daf37b13a48414000b21ab90a20 Anyswap: fUSDT Token11.551516267538876713 FTM
0x647ae9428799dabeb39acd993c76ca4ce7fcdfab7849698e59c47b9c69f63ca2152320652021-08-22 14:04:29308 days 9 hrs ago 0x233e22ef303259b390f308d2c48474b327aae6f5 Anyswap: fUSDT Token100 FTM
0xf2b1570f4aa4f9b74b6ccab26b78b9e8a0908f29863e5a0f4dadb28b75e0678a152320022021-08-22 14:03:34308 days 9 hrs ago 0x233e22ef303259b390f308d2c48474b327aae6f5 Anyswap: fUSDT Token170.038786 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AnyswapV3ERC20

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-03-10
*/

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity 0.8.2;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;
    function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev Interface of the ERC2612 standard as defined in the EIP.
 *
 * Adds the {permit} method, which can be used to change one's
 * {IERC20-allowance} without having to send a transaction, by signing a
 * message. This allows users to spend tokens without having to hold Ether.
 *
 * See https://eips.ethereum.org/EIPS/eip-2612.
 */
interface IERC2612 {

    /**
     * @dev Returns the current ERC2612 nonce for `owner`. This value must be
     * included whenever a signature is generated for {permit}.
     *
     * Every successful call to {permit} increases ``owner``'s nonce by one. This
     * prevents a signature from being used multiple times.
     */
    function nonces(address owner) external view returns (uint256);
}

/// @dev Wrapped ERC-20 v10 (AnyswapV3ERC20) is an ERC-20 ERC-20 wrapper. You can `deposit` ERC-20 and obtain an AnyswapV3ERC20 balance which can then be operated as an ERC-20 token. You can
/// `withdraw` ERC-20 from AnyswapV3ERC20, which will then burn AnyswapV3ERC20 token in your wallet. The amount of AnyswapV3ERC20 token in any wallet is always identical to the
/// balance of ERC-20 deposited minus the ERC-20 withdrawn with that specific wallet.
interface IAnyswapV3ERC20 is IERC20, IERC2612 {

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV3ERC20 token,
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// For more information on approveAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);

    /// @dev Moves `value` AnyswapV3ERC20 token from caller's account to account (`to`),
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// A transfer to `address(0)` triggers an ERC-20 withdraw matching the sent AnyswapV3ERC20 token in favor of caller.
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV3ERC20 token.
    /// For more information on transferAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function transferAndCall(address to, uint value, bytes calldata data) external returns (bool);
}

interface ITransferReceiver {
    function onTokenTransfer(address, uint, bytes calldata) external returns (bool);
}

interface IApprovalReceiver {
    function onTokenApproval(address, uint, bytes calldata) external returns (bool);
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

contract AnyswapV3ERC20 is IAnyswapV3ERC20 {
    using SafeERC20 for IERC20;
    string public name;
    string public symbol;
    uint8  public immutable override decimals;

    address public immutable underlying;

    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant TRANSFER_TYPEHASH = keccak256("Transfer(address owner,address to,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public immutable DOMAIN_SEPARATOR;

    /// @dev Records amount of AnyswapV3ERC20 token owned by account.
    mapping (address => uint256) public override balanceOf;
    uint256 private _totalSupply;

    address private _oldVault;
    address private _newVault;
    uint256 private _newVaultEffectiveTime;


    modifier onlyVault() {
        require(msg.sender == vault(), "AnyswapV3ERC20: FORBIDDEN");
        _;
    }

    function vault() public view returns (address) {
        if (block.timestamp >= _newVaultEffectiveTime) {
            return _newVault;
        }
        return _oldVault;
    }

    function owner() public view returns (address) {
        return vault();
    }


    function changeVault(address newVault) external onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV3ERC20: address(0x0)");
        _oldVault = vault();
        _newVault = newVault;
        _newVaultEffectiveTime = block.timestamp + 2*24*3600;
        emit LogChangeVault(_oldVault, _newVault, _newVaultEffectiveTime);
        return true;
    }

    function changeMPCOwner(address newVault) public onlyVault returns (bool) {
        require(newVault != address(0), "AnyswapV3ERC20: address(0x0)");
        _oldVault = vault();
        _newVault = newVault;
        _newVaultEffectiveTime = block.timestamp + 2*24*3600;
        emit LogChangeMPCOwner(_oldVault, _newVault, _newVaultEffectiveTime);
        return true;
    }

    function mint(address to, uint256 amount) external onlyVault returns (bool) {
        _mint(to, amount);
        return true;
    }

    function burn(address from, uint256 amount) external onlyVault returns (bool) {
        require(from != address(0), "AnyswapV3ERC20: address(0x0)");
        _burn(from, amount);
        return true;
    }

    function Swapin(bytes32 txhash, address account, uint256 amount) public onlyVault returns (bool) {
        _mint(account, amount);
        emit LogSwapin(txhash, account, amount);
        return true;
    }

    function Swapout(uint256 amount, address bindaddr) public returns (bool) {
        require(bindaddr != address(0), "AnyswapV3ERC20: address(0x0)");
        _burn(msg.sender, amount);
        emit LogSwapout(msg.sender, bindaddr, amount);
        return true;
    }

    /// @dev Records current ERC2612 nonce for account. This value must be included whenever signature is generated for {permit}.
    /// Every successful call to {permit} increases account's nonce by one. This prevents signature from being used multiple times.
    mapping (address => uint256) public override nonces;

    /// @dev Records number of AnyswapV3ERC20 token that account (second) will be allowed to spend on behalf of another account (first) through {transferFrom}.
    mapping (address => mapping (address => uint256)) public override allowance;

    event LogChangeVault(address indexed oldVault, address indexed newVault, uint indexed effectiveTime);
    event LogChangeMPCOwner(address indexed oldOwner, address indexed newOwner, uint indexed effectiveHeight);
    event LogSwapin(bytes32 indexed txhash, address indexed account, uint amount);
    event LogSwapout(address indexed account, address indexed bindaddr, uint amount);

    constructor(string memory _name, string memory _symbol, uint8 _decimals, address _underlying, address _vault) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        underlying = _underlying;
        if (_underlying != address(0x0)) {
            require(_decimals == IERC20(_underlying).decimals());
        }

        _newVault = _vault;
        _newVaultEffectiveTime = block.timestamp;

        uint256 chainId;
        assembly {chainId := chainid()}
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256(bytes("1")),
                chainId,
                address(this)));
    }

    /// @dev Returns the total supply of AnyswapV3ERC20 token as the ETH held in this contract.
    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function depositWithPermit(address target, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s, address to) external returns (uint) {
        IERC20(underlying).permit(target, address(this), value, deadline, v, r, s);
        IERC20(underlying).safeTransferFrom(target, address(this), value);
        return _deposit(value, to);
    }

    function depositWithTransferPermit(address target, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s, address to) external returns (uint) {
        IERC20(underlying).transferWithPermit(target, address(this), value, deadline, v, r, s);
        return _deposit(value, to);
    }

    function deposit() external returns (uint) {
        uint _amount = IERC20(underlying).balanceOf(msg.sender);
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), _amount);
        return _deposit(_amount, msg.sender);
    }

    function deposit(uint amount) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, msg.sender);
    }

    function deposit(uint amount, address to) external returns (uint) {
        IERC20(underlying).safeTransferFrom(msg.sender, address(this), amount);
        return _deposit(amount, to);
    }

    function depositVault(uint amount, address to) external onlyVault returns (uint) {
        return _deposit(amount, to);
    }

    function _deposit(uint amount, address to) internal returns (uint) {
        require(underlying != address(0x0));
        _mint(to, amount);
        return amount;
    }

    function withdraw() external returns (uint) {
        return _withdraw(msg.sender, balanceOf[msg.sender], msg.sender);
    }

    function withdraw(uint amount) external returns (uint) {
        return _withdraw(msg.sender, amount, msg.sender);
    }

    function withdraw(uint amount, address to) external returns (uint) {
        return _withdraw(msg.sender, amount, to);
    }

    function withdrawVault(address from, uint amount, address to) external onlyVault returns (uint) {
        return _withdraw(from, amount, to);
    }

    function _withdraw(address from, uint amount, address to) internal returns (uint) {
        _burn(from, amount);
        IERC20(underlying).safeTransfer(to, amount);
        return amount;
    }

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

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        balanceOf[account] -= amount;
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV3ERC20 token.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    function approve(address spender, uint256 value) external override returns (bool) {
        // _approve(msg.sender, spender, value);
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    /// @dev Sets `value` as allowance of `spender` account over caller account's AnyswapV3ERC20 token,
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// Emits {Approval} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// For more information on approveAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function approveAndCall(address spender, uint256 value, bytes calldata data) external override returns (bool) {
        // _approve(msg.sender, spender, value);
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return IApprovalReceiver(spender).onTokenApproval(msg.sender, value, data);
    }

    /// @dev Sets `value` as allowance of `spender` account over `owner` account's AnyswapV3ERC20 token, given `owner` account's signed approval.
    /// Emits {Approval} event.
    /// Requirements:
    ///   - `deadline` must be timestamp in future.
    ///   - `v`, `r` and `s` must be valid `secp256k1` signature from `owner` account over EIP712-formatted function arguments.
    ///   - the signature must use `owner` account's current nonce (see {nonces}).
    ///   - the signer cannot be zero address and must be `owner` account.
    /// For more information on signature format, see https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].
    /// AnyswapV3ERC20 token implementation adapted from https://github.com/albertocuestacanada/ERC20Permit/blob/master/contracts/ERC20Permit.sol.
    function permit(address target, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external override {
        require(block.timestamp <= deadline, "AnyswapV3ERC20: Expired permit");

        bytes32 hashStruct = keccak256(
            abi.encode(
                PERMIT_TYPEHASH,
                target,
                spender,
                value,
                nonces[target]++,
                deadline));

        require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s));

        // _approve(owner, spender, value);
        allowance[target][spender] = value;
        emit Approval(target, spender, value);
    }

    function transferWithPermit(address target, address to, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external override returns (bool) {
        require(block.timestamp <= deadline, "AnyswapV3ERC20: Expired permit");

        bytes32 hashStruct = keccak256(
            abi.encode(
                TRANSFER_TYPEHASH,
                target,
                to,
                value,
                nonces[target]++,
                deadline));

        require(verifyEIP712(target, hashStruct, v, r, s) || verifyPersonalSign(target, hashStruct, v, r, s));

        require(to != address(0) || to != address(this));

        uint256 balance = balanceOf[target];
        require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance");

        balanceOf[target] = balance - value;
        balanceOf[to] += value;
        emit Transfer(target, to, value);

        return true;
    }

    function verifyEIP712(address target, bytes32 hashStruct, uint8 v, bytes32 r, bytes32 s) internal view returns (bool) {
        bytes32 hash = keccak256(
            abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                hashStruct));
        address signer = ecrecover(hash, v, r, s);
        return (signer != address(0) && signer == target);
    }

    function verifyPersonalSign(address target, bytes32 hashStruct, uint8 v, bytes32 r, bytes32 s) internal pure returns (bool) {
        bytes32 hash = prefixed(hashStruct);
        address signer = ecrecover(hash, v, r, s);
        return (signer != address(0) && signer == target);
    }

    // Builds a prefixed hash to mimic the behavior of eth_sign.
    function prefixed(bytes32 hash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    /// @dev Moves `value` AnyswapV3ERC20 token from caller's account to account (`to`).
    /// A transfer to `address(0)` triggers an ETH withdraw matching the sent AnyswapV3ERC20 token in favor of caller.
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV3ERC20 token.
    function transfer(address to, uint256 value) external override returns (bool) {
        require(to != address(0) || to != address(this));
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV3ERC20 token from account (`from`) to account (`to`) using allowance mechanism.
    /// `value` is then deducted from caller account's allowance, unless set to `type(uint256).max`.
    /// A transfer to `address(0)` triggers an ETH withdraw matching the sent AnyswapV3ERC20 token in favor of caller.
    /// Emits {Approval} event to reflect reduced allowance `value` for caller account to spend from account (`from`),
    /// unless allowance is set to `type(uint256).max`
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - `from` account must have at least `value` balance of AnyswapV3ERC20 token.
    ///   - `from` account must have approved caller to spend at least `value` of AnyswapV3ERC20 token, unless `from` and caller are the same account.
    function transferFrom(address from, address to, uint256 value) external override returns (bool) {
        require(to != address(0) || to != address(this));
        if (from != msg.sender) {
            // _decreaseAllowance(from, msg.sender, value);
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "AnyswapV3ERC20: request exceeds allowance");
                uint256 reduced = allowed - value;
                allowance[from][msg.sender] = reduced;
                emit Approval(from, msg.sender, reduced);
            }
        }

        uint256 balance = balanceOf[from];
        require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance");

        balanceOf[from] = balance - value;
        balanceOf[to] += value;
        emit Transfer(from, to, value);

        return true;
    }

    /// @dev Moves `value` AnyswapV3ERC20 token from caller's account to account (`to`),
    /// after which a call is executed to an ERC677-compliant contract with the `data` parameter.
    /// A transfer to `address(0)` triggers an ETH withdraw matching the sent AnyswapV3ERC20 token in favor of caller.
    /// Emits {Transfer} event.
    /// Returns boolean value indicating whether operation succeeded.
    /// Requirements:
    ///   - caller account must have at least `value` AnyswapV3ERC20 token.
    /// For more information on transferAndCall format, see https://github.com/ethereum/EIPs/issues/677.
    function transferAndCall(address to, uint value, bytes calldata data) external override returns (bool) {
        require(to != address(0) || to != address(this));

        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "AnyswapV3ERC20: transfer amount exceeds balance");

        balanceOf[msg.sender] = balance - value;
        balanceOf[to] += value;
        emit Transfer(msg.sender, to, value);

        return ITransferReceiver(to).onTokenTransfer(msg.sender, value, data);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"address","name":"_underlying","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":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveHeight","type":"uint256"}],"name":"LogChangeMPCOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVault","type":"address"},{"indexed":true,"internalType":"address","name":"newVault","type":"address"},{"indexed":true,"internalType":"uint256","name":"effectiveTime","type":"uint256"}],"name":"LogChangeVault","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"txhash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"bindaddr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSwapout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"txhash","type":"bytes32"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swapin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"bindaddr","type":"address"}],"name":"Swapout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TRANSFER_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeMPCOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newVault","type":"address"}],"name":"changeVault","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":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"depositVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"address","name":"to","type":"address"}],"name":"depositWithPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"},{"internalType":"address","name":"to","type":"address"}],"name":"depositWithTransferPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithPermit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawVault","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b50604051620028223803806200282283398101604081905262000034916200039a565b84516200004990600090602088019062000212565b5083516200005f90600190602087019062000212565b507fff0000000000000000000000000000000000000000000000000000000000000060f884901b166080526001600160601b0319606083901b1660a0526001600160a01b038216156200013357816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015620000e657600080fd5b505afa158015620000fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000121919062000439565b60ff168360ff16146200013357600080fd5b600580546001600160a01b0319166001600160a01b0383161790554260065560405146907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9062000187906000906200045d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051601f19818403018152919052805160209091012060c0525062000553945050505050565b828054620002209062000500565b90600052602060002090601f0160209004810192826200024457600085556200028f565b82601f106200025f57805160ff19168380011785556200028f565b828001600101855582156200028f579182015b828111156200028f57825182559160200191906001019062000272565b506200029d929150620002a1565b5090565b5b808211156200029d5760008155600101620002a2565b80516001600160a01b0381168114620002d057600080fd5b919050565b600082601f830112620002e6578081fd5b81516001600160401b03808211156200030357620003036200053d565b604051601f8301601f19908116603f011681019082821181831017156200032e576200032e6200053d565b816040528381526020925086838588010111156200034a578485fd5b8491505b838210156200036d57858201830151818301840152908201906200034e565b838211156200037e57848385830101525b9695505050505050565b805160ff81168114620002d057600080fd5b600080600080600060a08688031215620003b2578081fd5b85516001600160401b0380821115620003c9578283fd5b620003d789838a01620002d5565b96506020880151915080821115620003ed578283fd5b50620003fc88828901620002d5565b9450506200040d6040870162000388565b92506200041d60608701620002b8565b91506200042d60808701620002b8565b90509295509295909350565b6000602082840312156200044b578081fd5b620004568262000388565b9392505050565b81546000908190600281046001808316806200047a57607f831692505b60208084108214156200049b57634e487b7160e01b87526022600452602487fd5b818015620004b25760018114620004c457620004f2565b60ff19861689528489019650620004f2565b60008a815260209020885b86811015620004ea5781548b820152908501908301620004cf565b505084890196505b509498975050505050505050565b6002810460018216806200051557607f821691505b602082108114156200053757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160f81c60a05160601c60c051612253620005cf6000396000818161034901526117930152600081816103fd01528181610efd01528181610f4901528181610fc90152818161116f015281816112d901528181611362015281816115a2015281816116860152611a4f0152600061031001526122536000f3fe608060405234801561001057600080fd5b50600436106102195760003560e01c80636e553f6511610125578063b6b55f25116100ad578063d505accf1161007c578063d505accf14610501578063dd62ed3e14610516578063ec126c7714610541578063f954734e14610554578063fbfa77cf1461056757610219565b8063b6b55f25146104c0578063bebbf4d0146104d3578063cae9ca51146104e6578063d0e30db0146104f957610219565b806381a37c18116100f457806381a37c18146104775780638da5cb5b1461048a57806395d89b41146104925780639dc29fac1461049a578063a9059cbb146104ad57610219565b80636e553f65146103e55780636f307dc3146103f857806370a08231146104375780637ecebe001461045757610219565b8063313ce567116101a857806340c10f191161017757806340c10f19146103865780635f9b105d14610399578063605629d6146103ac57806360e232a9146103bf578063628d6cba146103d257610219565b8063313ce5671461030b5780633644e515146103445780633ccfd60b1461036b5780634000aea01461037357610219565b8063095ea7b3116101ef578063095ea7b31461029357806318160ddd146102b657806323b872dd146102be5780632e1a7d4d146102d157806330adf81f146102e457610219565b806239d6ec1461021e578062bf26f414610244578062f714ce1461026b57806306fdde031461027e575b600080fd5b61023161022c366004611dc5565b61056f565b6040519081526020015b60405180910390f35b6102317f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd5981565b610231610279366004611f5f565b6105c5565b6102866105d9565b60405161023b9190612026565b6102a66102a1366004611d9c565b610667565b604051901515815260200161023b565b6102316106c1565b6102a66102cc366004611cf8565b6106c8565b6102316102df366004611f2f565b6108b3565b6102317f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6103327f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161023b565b6102317f000000000000000000000000000000000000000000000000000000000000000081565b6102316108c8565b6102a6610381366004611e00565b6108e9565b6102a6610394366004611d9c565b610a42565b6102a66103a7366004611cac565b610a8f565b6102a66103ba366004611d33565b610b7f565b6102a66103cd366004611cac565b610d8f565b6102a66103e0366004611f5f565b610e7f565b6102316103f3366004611f5f565b610eee565b61041f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023b565b610231610445366004611cac565b60026020526000908152604090205481565b610231610465366004611cac565b60076020526000908152604090205481565b610231610485366004611e82565b610f2f565b61041f611009565b610286611013565b6102a66104a8366004611d9c565b611020565b6102a66104bb366004611d9c565b61108a565b6102316104ce366004611f2f565b611160565b6102316104e1366004611f5f565b6111a1565b6102a66104f4366004611e00565b6111db565b6102316112b7565b61051461050f366004611d33565b61139a565b005b610231610524366004611cc6565b600860209081526000928352604080842090915290825290205481565b6102a661054f366004611f0b565b611508565b610231610562366004611e82565b611588565b61041f611640565b6000610579611640565b6001600160a01b0316336001600160a01b0316146105b25760405162461bcd60e51b81526004016105a990612059565b60405180910390fd5b6105bd84848461166d565b949350505050565b60006105d233848461166d565b9392505050565b600080546105e690612171565b80601f016020809104026020016040519081016040528092919081815260200182805461061290612171565b801561065f5780601f106106345761010080835404028352916020019161065f565b820191906000526020600020905b81548152906001019060200180831161064257829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290916000805160206121fe833981519152906106b09086815260200190565b60405180910390a350600192915050565b6003545b90565b60006001600160a01b0383161515806106ea57506001600160a01b0383163014155b6106f357600080fd5b6001600160a01b03841633146107ed576001600160a01b038416600090815260086020908152604080832033845290915290205460001981146107eb57828110156107925760405162461bcd60e51b815260206004820152602960248201527f416e7973776170563345524332303a2072657175657374206578636565647320604482015268616c6c6f77616e636560b81b60648201526084016105a9565b600061079e848361212e565b6001600160a01b038716600081815260086020908152604080832033808552908352928190208590555184815293945090926000805160206121fe833981519152910160405180910390a3505b505b6001600160a01b038416600090815260026020526040902054828110156108265760405162461bcd60e51b81526004016105a9906120c7565b610830838261212e565b6001600160a01b038087166000908152600260205260408082209390935590861681529081208054859290610866908490612116565b92505081905550836001600160a01b0316856001600160a01b03166000805160206121de833981519152856040516108a091815260200190565b60405180910390a3506001949350505050565b60006108c033833361166d565b90505b919050565b3360008181526002602052604081205490916108e4918161166d565b905090565b60006001600160a01b03851615158061090b57506001600160a01b0385163014155b61091457600080fd5b33600090815260026020526040902054848110156109445760405162461bcd60e51b81526004016105a9906120c7565b61094e858261212e565b33600090815260026020526040808220929092556001600160a01b03881681529081208054879290610981908490612116565b90915550506040518581526001600160a01b0387169033906000805160206121de8339815191529060200160405180910390a3604051635260769b60e11b81526001600160a01b0387169063a4c0ed36906109e6903390899089908990600401611fde565b602060405180830381600087803b158015610a0057600080fd5b505af1158015610a14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a389190611eeb565b9695505050505050565b6000610a4c611640565b6001600160a01b0316336001600160a01b031614610a7c5760405162461bcd60e51b81526004016105a990612059565b610a8683836116b5565b50600192915050565b6000610a99611640565b6001600160a01b0316336001600160a01b031614610ac95760405162461bcd60e51b81526004016105a990612059565b6001600160a01b038216610aef5760405162461bcd60e51b81526004016105a990612090565b610af7611640565b600480546001600160a01b03199081166001600160a01b039384161790915560058054909116918416919091179055610b33426202a300612116565b60068190556005546004546040516001600160a01b0392831692909116907f1d065115f314fb9bad9557bd5460b9e3c66f7223b1dd04e73e828f0bb5afe89f90600090a4506001919050565b600084421115610bd15760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d6974000060448201526064016105a9565b6001600160a01b038816600090815260076020526040812080547f42ce63790c28229c123925d83266e77c04d28784552ab68b350a9003226cbd59918b918b918b919086610c1e836121ac565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001604051602081830303815290604052805190602001209050610c7f8982878787611783565b80610c925750610c928982878787611873565b610c9b57600080fd5b6001600160a01b038816151580610cbb57506001600160a01b0388163014155b610cc457600080fd5b6001600160a01b03891660009081526002602052604090205487811015610cfd5760405162461bcd60e51b81526004016105a9906120c7565b610d07888261212e565b6001600160a01b03808c1660009081526002602052604080822093909355908b16815290812080548a9290610d3d908490612116565b92505081905550886001600160a01b03168a6001600160a01b03166000805160206121de8339815191528a604051610d7791815260200190565b60405180910390a35060019998505050505050505050565b6000610d99611640565b6001600160a01b0316336001600160a01b031614610dc95760405162461bcd60e51b81526004016105a990612059565b6001600160a01b038216610def5760405162461bcd60e51b81526004016105a990612090565b610df7611640565b600480546001600160a01b03199081166001600160a01b039384161790915560058054909116918416919091179055610e33426202a300612116565b60068190556005546004546040516001600160a01b0392831692909116907f5c364079e7102c27c608f9b237c735a1b7bfa0b67f27c2ad26bad447bf965cac90600090a4506001919050565b60006001600160a01b038216610ea75760405162461bcd60e51b81526004016105a990612090565b610eb13384611908565b6040518381526001600160a01b0383169033907f6b616089d04950dc06c45c6dd787d657980543f89651aec47924752c7d16c888906020016106b0565b6000610f256001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330866119da565b6105d28383611a4b565b60405163d505accf60e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610f8a908b9030908c908c908c908c908c90600401611f9d565b600060405180830381600087803b158015610fa457600080fd5b505af1158015610fb8573d6000803e3d6000fd5b50610ff39250506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016905089308a6119da565b610ffd8783611a4b565b98975050505050505050565b60006108e4611640565b600180546105e690612171565b600061102a611640565b6001600160a01b0316336001600160a01b03161461105a5760405162461bcd60e51b81526004016105a990612059565b6001600160a01b0383166110805760405162461bcd60e51b81526004016105a990612090565b610a868383611908565b60006001600160a01b0383161515806110ac57506001600160a01b0383163014155b6110b557600080fd5b33600090815260026020526040902054828110156110e55760405162461bcd60e51b81526004016105a9906120c7565b6110ef838261212e565b33600090815260026020526040808220929092556001600160a01b03861681529081208054859290611122908490612116565b90915550506040518381526001600160a01b0385169033906000805160206121de833981519152906020015b60405180910390a35060019392505050565b60006111976001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330856119da565b6108c08233611a4b565b60006111ab611640565b6001600160a01b0316336001600160a01b031614610f255760405162461bcd60e51b81526004016105a990612059565b3360008181526008602090815260408083206001600160a01b038916808552925280832087905551919290916000805160206121fe833981519152906112249088815260200190565b60405180910390a360405162ba451f60e01b81526001600160a01b0386169062ba451f9061125c903390889088908890600401611fde565b602060405180830381600087803b15801561127657600080fd5b505af115801561128a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ae9190611eeb565b95945050505050565b6040516370a0823160e01b815233600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113539190611f47565b905061138a6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846119da565b6113948133611a4b565b91505090565b834211156113ea5760405162461bcd60e51b815260206004820152601e60248201527f416e7973776170563345524332303a2045787069726564207065726d6974000060448201526064016105a9565b6001600160a01b038716600090815260076020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a919086611437836121ac565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506114988882868686611783565b806114ab57506114ab8882868686611873565b6114b457600080fd5b6001600160a01b038881166000818152600860209081526040808320948c16808452948252918290208a905590518981526000805160206121fe833981519152910160405180910390a35050505050505050565b6000611512611640565b6001600160a01b0316336001600160a01b0316146115425760405162461bcd60e51b81526004016105a990612059565b61154c83836116b5565b826001600160a01b0316847f05d0634fe981be85c22e2942a880821b70095d84e152c3ea3c17a4e4250d9d618460405161114e91815260200190565b60405163302b14eb60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063605629d6906115e3908b9030908c908c908c908c908c90600401611f9d565b602060405180830381600087803b1580156115fd57600080fd5b505af1158015611611573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116359190611eeb565b50610ffd8783611a4b565b6000600654421061165d57506005546001600160a01b03166106c5565b506004546001600160a01b031690565b60006116798484611908565b6116ad6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168385611a91565b509092915050565b6001600160a01b03821661170b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105a9565b806003600082825461171d9190612116565b90915550506001600160a01b0382166000908152600260205260408120805483929061174a908490612116565b90915550506040518181526001600160a01b038316906000906000805160206121de833981519152906020015b60405180910390a35050565b60405161190160f01b60208201527f0000000000000000000000000000000000000000000000000000000000000000602282015260428101859052600090819060620160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0015b6020604051602081039080840390855afa158015611832573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610ffd5750876001600160a01b0316816001600160a01b03161498975050505050505050565b6000806118cd866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b6040805160008082526020820180845284905260ff89169282019290925260608101879052608081018690529192509060019060a001611810565b6001600160a01b0382166119685760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105a9565b6001600160a01b0382166000908152600260205260408120805483929061199090849061212e565b9250508190555080600360008282546119a9919061212e565b90915550506040518181526000906001600160a01b038416906000805160206121de83398151915290602001611777565b6040516001600160a01b0380851660248301528316604482015260648101829052611a459085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611ac6565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611a8057600080fd5b611a8a82846116b5565b5090919050565b6040516001600160a01b038316602482015260448101829052611ac190849063a9059cbb60e01b90606401611a0e565b505050565b611ad8826001600160a01b0316611c4d565b611b245760405162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740060448201526064016105a9565b600080836001600160a01b031683604051611b3f9190611f81565b6000604051808303816000865af19150503d8060008114611b7c576040519150601f19603f3d011682016040523d82523d6000602084013e611b81565b606091505b509150915081611bd35760405162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460448201526064016105a9565b805115611a455780806020019051810190611bee9190611eeb565b611a455760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105a9565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906105bd5750141592915050565b80356001600160a01b03811681146108c357600080fd5b803560ff811681146108c357600080fd5b600060208284031215611cbd578081fd5b6105d282611c84565b60008060408385031215611cd8578081fd5b611ce183611c84565b9150611cef60208401611c84565b90509250929050565b600080600060608486031215611d0c578081fd5b611d1584611c84565b9250611d2360208501611c84565b9150604084013590509250925092565b600080600080600080600060e0888a031215611d4d578283fd5b611d5688611c84565b9650611d6460208901611c84565b95506040880135945060608801359350611d8060808901611c9b565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611dae578182fd5b611db783611c84565b946020939093013593505050565b600080600060608486031215611dd9578283fd5b611de284611c84565b925060208401359150611df760408501611c84565b90509250925092565b60008060008060608587031215611e15578384fd5b611e1e85611c84565b935060208501359250604085013567ffffffffffffffff80821115611e41578384fd5b818701915087601f830112611e54578384fd5b813581811115611e62578485fd5b886020828501011115611e73578485fd5b95989497505060200194505050565b600080600080600080600060e0888a031215611e9c578283fd5b611ea588611c84565b96506020880135955060408801359450611ec160608901611c9b565b93506080880135925060a08801359150611edd60c08901611c84565b905092959891949750929550565b600060208284031215611efc578081fd5b815180151581146105d2578182fd5b600080600060608486031215611f1f578283fd5b83359250611d2360208501611c84565b600060208284031215611f40578081fd5b5035919050565b600060208284031215611f58578081fd5b5051919050565b60008060408385031215611f71578182fd5b82359150611cef60208401611c84565b60008251611f93818460208701612145565b9190910192915050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602082528251806020840152612045816040850160208701612145565b601f01601f19169190910160400192915050565b60208082526019908201527f416e7973776170563345524332303a20464f5242494444454e00000000000000604082015260600190565b6020808252601c908201527f416e7973776170563345524332303a2061646472657373283078302900000000604082015260600190565b6020808252602f908201527f416e7973776170563345524332303a207472616e7366657220616d6f756e742060408201526e657863656564732062616c616e636560881b606082015260800190565b60008219821115612129576121296121c7565b500190565b600082821015612140576121406121c7565b500390565b60005b83811015612160578181015183820152602001612148565b83811115611a455750506000910152565b60028104600182168061218557607f821691505b602082108114156121a657634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156121c0576121c06121c7565b5060010190565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a26469706673582212208a5b66e296c8b8e24743e27b5fa5bc732fc729cee795c2b410e8e104d5de7d4964736f6c6343000802003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe000000000000000000000000000000000000000000000000000000000000000c467261707065642055534454000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056655534454000000000000000000000000000000000000000000000000000000

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe000000000000000000000000000000000000000000000000000000000000000c467261707065642055534454000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056655534454000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Frapped USDT
Arg [1] : _symbol (string): fUSDT
Arg [2] : _decimals (uint8): 6
Arg [3] : _underlying (address): 0x0000000000000000000000000000000000000000
Arg [4] : _vault (address): 0xc564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000c564ee9f21ed8a2d8e7e76c085740d5e4c5fafbe
Arg [5] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [6] : 4672617070656420555344540000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 6655534454000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

5728:16926:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12628:149;;;;;;:::i;:::-;;:::i;:::-;;;8624:25:1;;;8612:2;8597:18;12628:149:0;;;;;;;;6101:136;;6145:92;6101:136;;12494:126;;;;;;:::i;:::-;;:::i;5811:18::-;;;:::i;:::-;;;;;;;:::i;14351:265::-;;;;;;:::i;:::-;;:::i;:::-;;;8451:14:1;;8444:22;8426:41;;8414:2;8399:18;14351:265:0;8381:92:1;10494:102:0;;;:::i;20574:927::-;;;;;;:::i;:::-;;:::i;12364:122::-;;;;;;:::i;:::-;;:::i;5957:137::-;;5999:95;5957:137;;5863:41;;;;;;;;14191:4:1;14179:17;;;14161:36;;14149:2;14134:18;5863:41:0;14116:87:1;6244:41:0;;;;;12230:126;;;:::i;22128:523::-;;;;;;:::i;:::-;;:::i;7749:134::-;;;;;;:::i;:::-;;:::i;7360:381::-;;;;;;:::i;:::-;;:::i;16949:938::-;;;;;;:::i;:::-;;:::i;6975:377::-;;;;;;:::i;:::-;;:::i;8325:269::-;;;;;;:::i;:::-;;:::i;11713:193::-;;;;;;:::i;:::-;;:::i;5913:35::-;;;;;;;;-1:-1:-1;;;;;6341:32:1;;;6323:51;;6311:2;6296:18;5913:35:0;6278:102:1;6365:54:0;;;;;;:::i;:::-;;;;;;;;;;;;;;8866:51;;;;;;:::i;:::-;;;;;;;;;;;;;;10604:349;;;;;;:::i;:::-;;:::i;6885:80::-;;;:::i;5836:20::-;;;:::i;7891:208::-;;;;;;:::i;:::-;;:::i;19247:438::-;;;;;;:::i;:::-;;:::i;11516:189::-;;;;;;:::i;:::-;;:::i;11914:127::-;;;;;;:::i;:::-;;:::i;15037:356::-;;;;;;:::i;:::-;;:::i;11262:246::-;;;:::i;16226:715::-;;;;;;:::i;:::-;;:::i;:::-;;9087:75;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;8107:210;;;;;;:::i;:::-;;:::i;10961:293::-;;;;;;:::i;:::-;;:::i;6695:182::-;;;:::i;12628:149::-;12718:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;:::-;;;;;;;;;12742:27:::1;12752:4;12758:6;12766:2;12742:9;:27::i;:::-;12735:34:::0;12628:149;-1:-1:-1;;;;12628:149:0:o;12494:126::-;12555:4;12579:33;12589:10;12601:6;12609:2;12579:9;:33::i;:::-;12572:40;12494:126;-1:-1:-1;;;12494:126:0:o;5811:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14351:265::-;14504:10;14427:4;14494:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;14494:30:0;;;;;;;;;;:38;;;14548:36;14427:4;;14494:30;;-1:-1:-1;;;;;;;;;;;14548:36:0;;;14527:5;8624:25:1;;8612:2;8597:18;;8579:76;14548:36:0;;;;;;;;-1:-1:-1;14604:4:0;14351:265;;;;:::o;10494:102::-;10576:12;;10494:102;;:::o;20574:927::-;20664:4;-1:-1:-1;;;;;20689:16:0;;;;;:39;;-1:-1:-1;;;;;;20709:19:0;;20723:4;20709:19;;20689:39;20681:48;;;;;;-1:-1:-1;;;;;20744:18:0;;20752:10;20744:18;20740:477;;-1:-1:-1;;;;;20858:15:0;;20840;20858;;;:9;:15;;;;;;;;20874:10;20858:27;;;;;;;;-1:-1:-1;;20904:28:0;;20900:306;;20972:5;20961:7;:16;;20953:70;;;;-1:-1:-1;;;20953:70:0;;12498:2:1;20953:70:0;;;12480:21:1;12537:2;12517:18;;;12510:30;12576:34;12556:18;;;12549:62;-1:-1:-1;;;12627:18:1;;;12620:39;12676:19;;20953:70:0;12470:231:1;20953:70:0;21042:15;21060;21070:5;21060:7;:15;:::i;:::-;-1:-1:-1;;;;;21094:15:0;;;;;;:9;:15;;;;;;;;21110:10;21094:27;;;;;;;;;;:37;;;21155:35;8624:25:1;;;21094:37:0;;-1:-1:-1;21110:10:0;;-1:-1:-1;;;;;;;;;;;21155:35:0;8597:18:1;21155:35:0;;;;;;;20900:306;;20740:477;;-1:-1:-1;;;;;21247:15:0;;21229;21247;;;:9;:15;;;;;;21281:16;;;;21273:76;;;;-1:-1:-1;;;21273:76:0;;;;;;;:::i;:::-;21380:15;21390:5;21380:7;:15;:::i;:::-;-1:-1:-1;;;;;21362:15:0;;;;;;;:9;:15;;;;;;:33;;;;21406:13;;;;;;;;:22;;21423:5;;21362:15;21406:22;;21423:5;;21406:22;:::i;:::-;;;;;;;;21459:2;-1:-1:-1;;;;;21444:25:0;21453:4;-1:-1:-1;;;;;21444:25:0;-1:-1:-1;;;;;;;;;;;21463:5:0;21444:25;;;;8624::1;;8612:2;8597:18;;8579:76;21444:25:0;;;;;;;;-1:-1:-1;21489:4:0;;20574:927;-1:-1:-1;;;;20574:927:0:o;12364:122::-;12413:4;12437:41;12447:10;12459:6;12467:10;12437:9;:41::i;:::-;12430:48;;12364:122;;;;:::o;12230:126::-;12302:10;12268:4;12314:21;;;:9;:21;;;;;;12268:4;;12292:56;;12302:10;12292:9;:56::i;:::-;12285:63;;12230:126;:::o;22128:523::-;22225:4;-1:-1:-1;;;;;22250:16:0;;;;;:39;;-1:-1:-1;;;;;;22270:19:0;;22284:4;22270:19;;22250:39;22242:48;;;;;;22331:10;22303:15;22321:21;;;:9;:21;;;;;;22361:16;;;;22353:76;;;;-1:-1:-1;;;22353:76:0;;;;;;;:::i;:::-;22466:15;22476:5;22466:7;:15;:::i;:::-;22452:10;22442:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;22492:13:0;;;;;;;:22;;22509:5;;22442:21;22492:22;;22509:5;;22492:22;:::i;:::-;;;;-1:-1:-1;;22530:31:0;;8624:25:1;;;-1:-1:-1;;;;;22530:31:0;;;22539:10;;-1:-1:-1;;;;;;;;;;;22530:31:0;8612:2:1;8597:18;22530:31:0;;;;;;;22581:62;;-1:-1:-1;;;22581:62:0;;-1:-1:-1;;;;;22581:37:0;;;;;:62;;22619:10;;22631:5;;22638:4;;;;22581:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22574:69;22128:523;-1:-1:-1;;;;;;22128:523:0:o;7749:134::-;7819:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;:::-;7836:17:::1;7842:2;7846:6;7836:5;:17::i;:::-;-1:-1:-1::0;7871:4:0::1;7749:134:::0;;;;:::o;7360:381::-;7428:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7453:22:0;::::1;7445:63;;;;-1:-1:-1::0;;;7445:63:0::1;;;;;;;:::i;:::-;7531:7;:5;:7::i;:::-;7519:9;:19:::0;;-1:-1:-1;;;;;;7519:19:0;;::::1;-1:-1:-1::0;;;;;7519:19:0;;::::1;;::::0;;;7549:9:::1;:20:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;7605:27:::1;:15;7623:9;7605:27;:::i;:::-;7580:22;:52:::0;;;7677:9:::1;::::0;7666::::1;::::0;7648:63:::1;::::0;-1:-1:-1;;;;;7677:9:0;;::::1;::::0;7666;;::::1;::::0;7648:63:::1;::::0;7677:9:::1;::::0;7648:63:::1;-1:-1:-1::0;7729:4:0::1;7360:381:::0;;;:::o;16949:938::-;17096:4;17140:8;17121:15;:27;;17113:70;;;;-1:-1:-1;;;17113:70:0;;11737:2:1;17113:70:0;;;11719:21:1;11776:2;11756:18;;;11749:30;11815:32;11795:18;;;11788:60;11865:18;;17113:70:0;11709:180:1;17113:70:0;-1:-1:-1;;;;;17376:14:0;;17196:18;17376:14;;;:6;:14;;;;;:16;;6145:92;;17306:6;;17331:2;;17352:5;;17376:16;17196:18;17376:16;;;:::i;:::-;;;;-1:-1:-1;17241:179:0;;;;;;8947:25:1;;;;-1:-1:-1;;;;;9046:15:1;;;9026:18;;;9019:43;9098:15;;;;9078:18;;;9071:43;9130:18;;;9123:34;9173:19;;;9166:35;9217:19;;;9210:35;;;8919:19;;17241:179:0;;;;;;;;;;;;17217:204;;;;;;17196:225;;17442:41;17455:6;17463:10;17475:1;17478;17481;17442:12;:41::i;:::-;:92;;;;17487:47;17506:6;17514:10;17526:1;17529;17532;17487:18;:47::i;:::-;17434:101;;;;;;-1:-1:-1;;;;;17556:16:0;;;;;:39;;-1:-1:-1;;;;;;17576:19:0;;17590:4;17576:19;;17556:39;17548:48;;;;;;-1:-1:-1;;;;;17627:17:0;;17609:15;17627:17;;;:9;:17;;;;;;17663:16;;;;17655:76;;;;-1:-1:-1;;;17655:76:0;;;;;;;:::i;:::-;17764:15;17774:5;17764:7;:15;:::i;:::-;-1:-1:-1;;;;;17744:17:0;;;;;;;:9;:17;;;;;;:35;;;;17790:13;;;;;;;;:22;;17807:5;;17744:17;17790:22;;17807:5;;17790:22;:::i;:::-;;;;;;;;17845:2;-1:-1:-1;;;;;17828:27:0;17837:6;-1:-1:-1;;;;;17828:27:0;-1:-1:-1;;;;;;;;;;;17849:5:0;17828:27;;;;8624:25:1;;8612:2;8597:18;;8579:76;17828:27:0;;;;;;;;-1:-1:-1;17875:4:0;;16949:938;-1:-1:-1;;;;;;;;;16949:938:0:o;6975:377::-;7042:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7067:22:0;::::1;7059:63;;;;-1:-1:-1::0;;;7059:63:0::1;;;;;;;:::i;:::-;7145:7;:5;:7::i;:::-;7133:9;:19:::0;;-1:-1:-1;;;;;;7133:19:0;;::::1;-1:-1:-1::0;;;;;7133:19:0;;::::1;;::::0;;;7163:9:::1;:20:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;7219:27:::1;:15;7237:9;7219:27;:::i;:::-;7194:22;:52:::0;;;7288:9:::1;::::0;7277::::1;::::0;7262:60:::1;::::0;-1:-1:-1;;;;;7288:9:0;;::::1;::::0;7277;;::::1;::::0;7262:60:::1;::::0;7288:9:::1;::::0;7262:60:::1;-1:-1:-1::0;7340:4:0::1;6975:377:::0;;;:::o;8325:269::-;8392:4;-1:-1:-1;;;;;8417:22:0;;8409:63;;;;-1:-1:-1;;;8409:63:0;;;;;;;:::i;:::-;8483:25;8489:10;8501:6;8483:5;:25::i;:::-;8524:40;;8624:25:1;;;-1:-1:-1;;;;;8524:40:0;;;8535:10;;8524:40;;8612:2:1;8597:18;8524:40:0;8579:76:1;11713:193:0;11773:4;11790:70;-1:-1:-1;;;;;11797:10:0;11790:35;11826:10;11846:4;11853:6;11790:35;:70::i;:::-;11878:20;11887:6;11895:2;11878:8;:20::i;10604:349::-;10758:74;;-1:-1:-1;;;10758:74:0;;10741:4;;-1:-1:-1;;;;;10765:10:0;10758:25;;;;:74;;10784:6;;10800:4;;10807:5;;10814:8;;10824:1;;10827;;10830;;10758:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10843:65:0;;-1:-1:-1;;;;;;;10850:10:0;10843:35;;-1:-1:-1;10879:6:0;10895:4;10902:5;10843:35;:65::i;:::-;10926:19;10935:5;10942:2;10926:8;:19::i;:::-;10919:26;10604:349;-1:-1:-1;;;;;;;;10604:349:0:o;6885:80::-;6923:7;6950;:5;:7::i;5836:20::-;;;;;;;:::i;7891:208::-;7963:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7988:18:0;::::1;7980:59;;;;-1:-1:-1::0;;;7980:59:0::1;;;;;;;:::i;:::-;8050:19;8056:4;8062:6;8050:5;:19::i;19247:438::-:0;19319:4;-1:-1:-1;;;;;19344:16:0;;;;;:39;;-1:-1:-1;;;;;;19364:19:0;;19378:4;19364:19;;19344:39;19336:48;;;;;;19423:10;19395:15;19413:21;;;:9;:21;;;;;;19453:16;;;;19445:76;;;;-1:-1:-1;;;19445:76:0;;;;;;;:::i;:::-;19558:15;19568:5;19558:7;:15;:::i;:::-;19544:10;19534:21;;;;:9;:21;;;;;;:39;;;;-1:-1:-1;;;;;19584:13:0;;;;;;;:22;;19601:5;;19534:21;19584:22;;19601:5;;19584:22;:::i;:::-;;;;-1:-1:-1;;19622:31:0;;8624:25:1;;;-1:-1:-1;;;;;19622:31:0;;;19631:10;;-1:-1:-1;;;;;;;;;;;19622:31:0;8612:2:1;8597:18;19622:31:0;;;;;;;;-1:-1:-1;19673:4:0;;19247:438;-1:-1:-1;;;19247:438:0:o;11516:189::-;11564:4;11581:70;-1:-1:-1;;;;;11588:10:0;11581:35;11617:10;11637:4;11644:6;11581:35;:70::i;:::-;11669:28;11678:6;11686:10;11669:8;:28::i;11914:127::-;11989:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;15037:356::-;15218:10;15141:4;15208:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;15208:30:0;;;;;;;;;;:38;;;15262:36;15141:4;;15208:30;;-1:-1:-1;;;;;;;;;;;15262:36:0;;;15241:5;8624:25:1;;8612:2;8597:18;;8579:76;15262:36:0;;;;;;;;15318:67;;-1:-1:-1;;;15318:67:0;;-1:-1:-1;;;;;15318:42:0;;;;;:67;;15361:10;;15373:5;;15380:4;;;;15318:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15311:74;15037:356;-1:-1:-1;;;;;15037:356:0:o;11262:246::-;11331:40;;-1:-1:-1;;;11331:40:0;;11360:10;11331:40;;;6323:51:1;11299:4:0;;;;-1:-1:-1;;;;;11338:10:0;11331:28;;;;6296:18:1;;11331:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11316:55;-1:-1:-1;11382:71:0;-1:-1:-1;;;;;11389:10:0;11382:35;11418:10;11438:4;11316:55;11382:35;:71::i;:::-;11471:29;11480:7;11489:10;11471:8;:29::i;:::-;11464:36;;;11262:246;:::o;16226:715::-;16395:8;16376:15;:27;;16368:70;;;;-1:-1:-1;;;16368:70:0;;11737:2:1;16368:70:0;;;11719:21:1;11776:2;11756:18;;;11749:30;11815:32;11795:18;;;11788:60;11865:18;;16368:70:0;11709:180:1;16368:70:0;-1:-1:-1;;;;;16634:14:0;;16451:18;16634:14;;;:6;:14;;;;;:16;;5999:95;;16559:6;;16584:7;;16610:5;;16634:16;16451:18;16634:16;;;:::i;:::-;;;;-1:-1:-1;16496:182:0;;;;;;8947:25:1;;;;-1:-1:-1;;;;;9046:15:1;;;9026:18;;;9019:43;9098:15;;;;9078:18;;;9071:43;9130:18;;;9123:34;9173:19;;;9166:35;9217:19;;;9210:35;;;8919:19;;16496:182:0;;;;;;;;;;;;16472:207;;;;;;16451:228;;16700:41;16713:6;16721:10;16733:1;16736;16739;16700:12;:41::i;:::-;:92;;;;16745:47;16764:6;16772:10;16784:1;16787;16790;16745:18;:47::i;:::-;16692:101;;;;;;-1:-1:-1;;;;;16851:17:0;;;;;;;:9;:17;;;;;;;;:26;;;;;;;;;;;;;:34;;;16901:32;;8624:25:1;;;-1:-1:-1;;;;;;;;;;;16901:32:0;8597:18:1;16901:32:0;;;;;;;16226:715;;;;;;;;:::o;8107:210::-;8198:4;6630:7;:5;:7::i;:::-;-1:-1:-1;;;;;6616:21:0;:10;-1:-1:-1;;;;;6616:21:0;;6608:59;;;;-1:-1:-1;;;6608:59:0;;;;;;;:::i;:::-;8215:22:::1;8221:7;8230:6;8215:5;:22::i;:::-;8271:7;-1:-1:-1::0;;;;;8253:34:0::1;8263:6;8253:34;8280:6;8253:34;;;;8624:25:1::0;;8612:2;8597:18;;8579:76;10961:293:0;11123:86;;-1:-1:-1;;;11123:86:0;;11106:4;;-1:-1:-1;;;;;11130:10:0;11123:37;;;;:86;;11161:6;;11177:4;;11184:5;;11191:8;;11201:1;;11204;;11207;;11123:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11227:19;11236:5;11243:2;11227:8;:19::i;6695:182::-;6733:7;6776:22;;6757:15;:41;6753:90;;-1:-1:-1;6822:9:0;;-1:-1:-1;;;;;6822:9:0;6815:16;;6753:90;-1:-1:-1;6860:9:0;;-1:-1:-1;;;;;6860:9:0;6695:182;:::o;12785:198::-;12861:4;12878:19;12884:4;12890:6;12878:5;:19::i;:::-;12908:43;-1:-1:-1;;;;;12915:10:0;12908:31;12940:2;12944:6;12908:31;:43::i;:::-;-1:-1:-1;12969:6:0;;12785:198;-1:-1:-1;;12785:198:0:o;13264:268::-;-1:-1:-1;;;;;13340:21:0;;13332:65;;;;-1:-1:-1;;;13332:65:0;;13679:2:1;13332:65:0;;;13661:21:1;13718:2;13698:18;;;13691:30;13757:33;13737:18;;;13730:61;13808:18;;13332:65:0;13651:181:1;13332:65:0;13426:6;13410:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;13443:18:0;;;;;;:9;:18;;;;;:28;;13465:6;;13443:18;:28;;13465:6;;13443:28;:::i;:::-;;;;-1:-1:-1;;13487:37:0;;8624:25:1;;;-1:-1:-1;;;;;13487:37:0;;;13504:1;;-1:-1:-1;;;;;;;;;;;13487:37:0;8612:2:1;8597:18;13487:37:0;;;;;;;;13264:268;;:::o;17895:399::-;18063:110;;-1:-1:-1;;;18063:110:0;;;6038:27:1;18127:16:0;6081:11:1;;;6074:27;6117:12;;;6110:28;;;18007:4:0;;;;6154:12:1;;18063:110:0;;;-1:-1:-1;;18063:110:0;;;;;;;;;18039:135;;18063:110;18039:135;;;;18185:14;18202:24;;;;;;;;;9483:25:1;;;9556:4;9544:17;;9524:18;;;9517:45;;;;9578:18;;;9571:34;;;9621:18;;;9614:34;;;18039:135:0;;-1:-1:-1;18185:14:0;18202:24;;9455:19:1;;18202:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18202:24:0;;-1:-1:-1;;18202:24:0;;;-1:-1:-1;;;;;;;18245:20:0;;;;;;:40;;;18279:6;-1:-1:-1;;;;;18269:16:0;:6;-1:-1:-1;;;;;18269:16:0;;18237:49;17895:399;-1:-1:-1;;;;;;;;17895:399:0:o;18302:290::-;18420:4;18437:12;18452:20;18461:10;18758:58;;5637:66:1;18758:58:0;;;5625:79:1;5720:12;;;5713:28;;;18721:7:0;;5757:12:1;;18758:58:0;;;;;;;;;;;;18748:69;;;;;;18741:76;;18666:159;;;;18452:20;18500:24;;;18483:14;18500:24;;;;;;;;;9483:25:1;;;9556:4;9544:17;;9524:18;;;9517:45;;;;9578:18;;;9571:34;;;9621:18;;;9614:34;;;18437:35:0;;-1:-1:-1;18483:14:0;18500:24;;9455:19:1;;18500:24:0;9437:217:1;13864:270:0;-1:-1:-1;;;;;13940:21:0;;13932:67;;;;-1:-1:-1;;;13932:67:0;;12096:2:1;13932:67:0;;;12078:21:1;12135:2;12115:18;;;12108:30;12174:34;12154:18;;;12147:62;-1:-1:-1;;;12225:18:1;;;12218:31;12266:19;;13932:67:0;12068:223:1;13932:67:0;-1:-1:-1;;;;;14012:18:0;;;;;;:9;:18;;;;;:28;;14034:6;;14012:18;:28;;14034:6;;14012:28;:::i;:::-;;;;;;;;14067:6;14051:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;14089:37:0;;8624:25:1;;;14115:1:0;;-1:-1:-1;;;;;14089:37:0;;;-1:-1:-1;;;;;;;;;;;14089:37:0;8612:2:1;8597:18;14089:37:0;8579:76:1;4564:201:0;4688:68;;-1:-1:-1;;;;;6643:15:1;;;4688:68:0;;;6625:34:1;6695:15;;6675:18;;;6668:43;6727:18;;;6720:34;;;4662:95:0;;4681:5;;-1:-1:-1;;;4711:27:0;6560:18:1;;4688:68:0;;;;-1:-1:-1;;4688:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;4688:68:0;-1:-1:-1;;;;;;4688:68:0;;;;;;;;;;4662:18;:95::i;:::-;4564:201;;;;:::o;12049:173::-;12110:4;12135:10;-1:-1:-1;;;;;12135:26:0;12127:35;;;;;;12173:17;12179:2;12183:6;12173:5;:17::i;:::-;-1:-1:-1;12208:6:0;;12049:173;-1:-1:-1;12049:173:0:o;4383:::-;4489:58;;-1:-1:-1;;;;;7632:32:1;;4489:58:0;;;7614:51:1;7681:18;;;7674:34;;;4463:85:0;;4482:5;;-1:-1:-1;;;4512:23:0;7587:18:1;;4489:58:0;7569:145:1;4463:85:0;4383:173;;;:::o;5123:598::-;5211:27;5219:5;-1:-1:-1;;;;;5211:25:0;;:27::i;:::-;5203:71;;;;-1:-1:-1;;;5203:71:0;;13319:2:1;5203:71:0;;;13301:21:1;13358:2;13338:18;;;13331:30;13397:33;13377:18;;;13370:61;13448:18;;5203:71:0;13291:181:1;5203:71:0;5348:12;5362:23;5397:5;-1:-1:-1;;;;;5389:19:0;5409:4;5389:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5347:67;;;;5433:7;5425:52;;;;-1:-1:-1;;;5425:52:0;;10960:2:1;5425:52:0;;;10942:21:1;;;10979:18;;;10972:30;11038:34;11018:18;;;11011:62;11090:18;;5425:52:0;10932:182:1;5425:52:0;5494:17;;:21;5490:224;;5636:10;5625:30;;;;;;;;;;;;:::i;:::-;5617:85;;;;-1:-1:-1;;;5617:85:0;;12908:2:1;5617:85:0;;;12890:21:1;12947:2;12927:18;;;12920:30;12986:34;12966:18;;;12959:62;-1:-1:-1;;;13037:18:1;;;13030:40;13087:19;;5617:85:0;12880:232:1;3943:374:0;4003:4;4226:20;;4069:66;4266:15;;;;;:42;;-1:-1:-1;4285:23:0;;;4258:51;-1:-1:-1;;3943:374:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:156;258:20;;318:4;307:16;;297:27;;287:2;;338:1;335;328:12;353:196;;465:2;453:9;444:7;440:23;436:32;433:2;;;486:6;478;471:22;433:2;514:29;533:9;514:29;:::i;554:270::-;;;683:2;671:9;662:7;658:23;654:32;651:2;;;704:6;696;689:22;651:2;732:29;751:9;732:29;:::i;:::-;722:39;;780:38;814:2;803:9;799:18;780:38;:::i;:::-;770:48;;641:183;;;;;:::o;829:338::-;;;;975:2;963:9;954:7;950:23;946:32;943:2;;;996:6;988;981:22;943:2;1024:29;1043:9;1024:29;:::i;:::-;1014:39;;1072:38;1106:2;1095:9;1091:18;1072:38;:::i;:::-;1062:48;;1157:2;1146:9;1142:18;1129:32;1119:42;;933:234;;;;;:::o;1172:616::-;;;;;;;;1384:3;1372:9;1363:7;1359:23;1355:33;1352:2;;;1406:6;1398;1391:22;1352:2;1434:29;1453:9;1434:29;:::i;:::-;1424:39;;1482:38;1516:2;1505:9;1501:18;1482:38;:::i;:::-;1472:48;;1567:2;1556:9;1552:18;1539:32;1529:42;;1618:2;1607:9;1603:18;1590:32;1580:42;;1641:37;1673:3;1662:9;1658:19;1641:37;:::i;:::-;1631:47;;1725:3;1714:9;1710:19;1697:33;1687:43;;1777:3;1766:9;1762:19;1749:33;1739:43;;1342:446;;;;;;;;;;:::o;1793:264::-;;;1922:2;1910:9;1901:7;1897:23;1893:32;1890:2;;;1943:6;1935;1928:22;1890:2;1971:29;1990:9;1971:29;:::i;:::-;1961:39;2047:2;2032:18;;;;2019:32;;-1:-1:-1;;;1880:177:1:o;2062:338::-;;;;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;2229:6;2221;2214:22;2176:2;2257:29;2276:9;2257:29;:::i;:::-;2247:39;;2333:2;2322:9;2318:18;2305:32;2295:42;;2356:38;2390:2;2379:9;2375:18;2356:38;:::i;:::-;2346:48;;2166:234;;;;;:::o;2405:783::-;;;;;2570:2;2558:9;2549:7;2545:23;2541:32;2538:2;;;2591:6;2583;2576:22;2538:2;2619:29;2638:9;2619:29;:::i;:::-;2609:39;;2695:2;2684:9;2680:18;2667:32;2657:42;;2750:2;2739:9;2735:18;2722:32;2773:18;2814:2;2806:6;2803:14;2800:2;;;2835:6;2827;2820:22;2800:2;2878:6;2867:9;2863:22;2853:32;;2923:7;2916:4;2912:2;2908:13;2904:27;2894:2;;2950:6;2942;2935:22;2894:2;2995;2982:16;3021:2;3013:6;3010:14;3007:2;;;3042:6;3034;3027:22;3007:2;3092:7;3087:2;3078:6;3074:2;3070:15;3066:24;3063:37;3060:2;;;3118:6;3110;3103:22;3060:2;2528:660;;;;-1:-1:-1;;3154:2:1;3146:11;;-1:-1:-1;;;2528:660:1:o;3193:616::-;;;;;;;;3405:3;3393:9;3384:7;3380:23;3376:33;3373:2;;;3427:6;3419;3412:22;3373:2;3455:29;3474:9;3455:29;:::i;:::-;3445:39;;3531:2;3520:9;3516:18;3503:32;3493:42;;3582:2;3571:9;3567:18;3554:32;3544:42;;3605:36;3637:2;3626:9;3622:18;3605:36;:::i;:::-;3595:46;;3688:3;3677:9;3673:19;3660:33;3650:43;;3740:3;3729:9;3725:19;3712:33;3702:43;;3764:39;3798:3;3787:9;3783:19;3764:39;:::i;:::-;3754:49;;3363:446;;;;;;;;;;:::o;3814:297::-;;3934:2;3922:9;3913:7;3909:23;3905:32;3902:2;;;3955:6;3947;3940:22;3902:2;3992:9;3986:16;4045:5;4038:13;4031:21;4024:5;4021:32;4011:2;;4072:6;4064;4057:22;4116:332;;;;4262:2;4250:9;4241:7;4237:23;4233:32;4230:2;;;4283:6;4275;4268:22;4230:2;4324:9;4311:23;4301:33;;4353:38;4387:2;4376:9;4372:18;4353:38;:::i;4453:190::-;;4565:2;4553:9;4544:7;4540:23;4536:32;4533:2;;;4586:6;4578;4571:22;4533:2;-1:-1:-1;4614:23:1;;4523:120;-1:-1:-1;4523:120:1:o;4648:194::-;;4771:2;4759:9;4750:7;4746:23;4742:32;4739:2;;;4792:6;4784;4777:22;4739:2;-1:-1:-1;4820:16:1;;4729:113;-1:-1:-1;4729:113:1:o;4847:264::-;;;4976:2;4964:9;4955:7;4951:23;4947:32;4944:2;;;4997:6;4989;4982:22;4944:2;5038:9;5025:23;5015:33;;5067:38;5101:2;5090:9;5086:18;5067:38;:::i;5116:274::-;;5283:6;5277:13;5299:53;5345:6;5340:3;5333:4;5325:6;5321:17;5299:53;:::i;:::-;5368:16;;;;;5253:137;-1:-1:-1;;5253:137:1:o;6765:670::-;-1:-1:-1;;;;;7132:15:1;;;7114:34;;7184:15;;;;7179:2;7164:18;;7157:43;7231:2;7216:18;;7209:34;;;;7274:2;7259:18;;7252:34;;;;7335:4;7323:17;7317:3;7302:19;;7295:46;7094:3;7357:19;;7350:35;7416:3;7401:19;;7394:35;;;;7063:3;7048:19;;7030:405::o;7719:562::-;-1:-1:-1;;;;;7932:32:1;;7914:51;;7996:2;7981:18;;7974:34;;;8044:2;8039;8024:18;;8017:30;;;8063:18;;8056:34;;;7719:562;8083:6;8133;8127:3;8112:19;;8099:49;8168:22;;;8192:3;8164:32;;;8157:46;;;;8264:2;8243:15;;;-1:-1:-1;;8239:29:1;8224:45;8220:55;;7904:377;-1:-1:-1;;;7904:377:1:o;9659:383::-;;9808:2;9797:9;9790:21;9840:6;9834:13;9883:6;9878:2;9867:9;9863:18;9856:34;9899:66;9958:6;9953:2;9942:9;9938:18;9933:2;9925:6;9921:15;9899:66;:::i;:::-;10026:2;10005:15;-1:-1:-1;;10001:29:1;9986:45;;;;10033:2;9982:54;;9780:262;-1:-1:-1;;9780:262:1:o;10047:349::-;10249:2;10231:21;;;10288:2;10268:18;;;10261:30;10327:27;10322:2;10307:18;;10300:55;10387:2;10372:18;;10221:175::o;10401:352::-;10603:2;10585:21;;;10642:2;10622:18;;;10615:30;10681;10676:2;10661:18;;10654:58;10744:2;10729:18;;10575:178::o;11119:411::-;11321:2;11303:21;;;11360:2;11340:18;;;11333:30;11399:34;11394:2;11379:18;;11372:62;-1:-1:-1;;;11465:2:1;11450:18;;11443:45;11520:3;11505:19;;11293:237::o;14208:128::-;;14279:1;14275:6;14272:1;14269:13;14266:2;;;14285:18;;:::i;:::-;-1:-1:-1;14321:9:1;;14256:80::o;14341:125::-;;14409:1;14406;14403:8;14400:2;;;14414:18;;:::i;:::-;-1:-1:-1;14451:9:1;;14390:76::o;14471:258::-;14543:1;14553:113;14567:6;14564:1;14561:13;14553:113;;;14643:11;;;14637:18;14624:11;;;14617:39;14589:2;14582:10;14553:113;;;14684:6;14681:1;14678:13;14675:2;;;-1:-1:-1;;14719:1:1;14701:16;;14694:27;14524:205::o;14734:380::-;14819:1;14809:12;;14866:1;14856:12;;;14877:2;;14931:4;14923:6;14919:17;14909:27;;14877:2;14984;14976:6;14973:14;14953:18;14950:38;14947:2;;;15030:10;15025:3;15021:20;15018:1;15011:31;15065:4;15062:1;15055:15;15093:4;15090:1;15083:15;14947:2;;14789:325;;;:::o;15119:135::-;;-1:-1:-1;;15179:17:1;;15176:2;;;15199:18;;:::i;:::-;-1:-1:-1;15246:1:1;15235:13;;15166:88::o;15259:127::-;15320:10;15315:3;15311:20;15308:1;15301:31;15351:4;15348:1;15341:15;15375:4;15372:1;15365:15

Swarm Source

ipfs://8a5b66e296c8b8e24743e27b5fa5bc732fc729cee795c2b410e8e104d5de7d49
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.