Contract 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a3 6

Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x4dda157b59574bf3139ee8b5337715f479faa2a147a3e256351dd752b0fcd1acTopup Token404150092023-09-23 4:48:391 day 13 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.0001235453 2.050000013
0x854cbb68ac9c213bb2b1c337b8ea340d0105ecc44fae9d495b7dde919bbc5247Topup Token403455532023-09-21 7:18:123 days 10 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000124182373 2.060571019
0x863d07d7f461bd7f1d7d99c81f0383e21d21a80b248c1b183b9138b15875472fTopup Native403050152023-09-20 5:47:554 days 12 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000068766001 1.500000033
0xdd3e27070bbb94019e7c6fc484f01701fe891ea083f043ca01ab5e90cad493bdTopup Token402754212023-09-19 9:47:435 days 8 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399001 1.500000032
0xedfede68c5ed01711f84c155577b6e947aacc4d4cc4695fbe17b3a51a29801baTopup Token402088302023-09-17 11:17:147 days 6 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.00011253056 1.867231286
0x0095753efbfc75c72d9148c8fb0e78cc7b38d821348b7d2863c91aa95c1d65bbTopup Token401410072023-09-15 12:56:509 days 4 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000092528602 1.53533671
0x477f8a5cba779e45f81a00d91d48839f44f991d5edaa22184a63793bf319d396Topup Native400893342023-09-14 0:06:2810 days 17 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000203061618 4.429404479
0x1666226d5056c33141b1187f3040b7aeab7887ddb363afd8201b0c843ee64175Topup Token400772092023-09-13 16:06:2011 days 1 hr ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000123547539 2.050037152
0x62abdf29989abeba6e7414524018cad0a72a1cc62524570ef637b9ca0d83eaefTopup Native400391692023-09-12 14:36:0512 days 3 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.001753633429 38.252190672
0xb3f27b319fe4fa0ab83549f7d7050d6092aa38a91cf317c653b14dea3ccec1efTopup Token400118732023-09-11 18:55:5212 days 22 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399002 1.500000046
0x54dfe8d462602331b7381a9a2721e59df91997c57a4f9cd39e12a096bbb2cce4Topup Token399442282023-09-09 21:25:1814 days 20 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000144638402 2.40000004
0x8be1d67527f0815cca385bee3224956c7cbfe74d8ba5fca9768cd51767fa4fd6Topup Token398706352023-09-07 22:44:4216 days 19 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000134533802 2.23233337
0xd818edb4ac47cf8c552a56b836770b7c644e3d5f884c9413dc5c9c478d6f0dc0Topup Native398369472023-09-07 0:24:3217 days 17 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000142699526 3.112719802
0x97f22ed92e4f1a0d28f60df43bedf7e77a9ed63b5064245c53372cd80016e601Topup Token397999852023-09-06 0:54:1618 days 16 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000120532002 2.000000036
0x7080675c845d8c72d01e3042936777df0311217f27061606f0debe22249fcec7Topup Token397310402023-09-04 3:23:4820 days 14 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399003 1.500000065
0x9b20a75d6d16489b472a01d5bc5713827eb9bc7438b521e0599a9fa736076e1eTopup Token396623182023-09-02 6:23:1722 days 11 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000131982542 2.190000036
0xe9240548c4855026a33ffa9f6d620c03bbad0540f5b24978d0eb1ff6c6778f5fTopup Token395938242023-08-31 8:32:5024 days 9 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399002 1.500000041
0x44085ff4f1b4a0d1784364f04ea635b1362d9a90439bc99e79e602a5690041a7Topup Token395215702023-08-29 10:42:1726 days 7 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000116002977 1.924849457
0x4e5e39fe4e180ecce1f234c742c4f9dd202ce90d21e7130f02d45475b14f1a86Topup Token394546012023-08-27 12:11:4728 days 5 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000117377859 1.947663017
0x77b1b22d594c625db531daa2016f1572d085abf3aef962b7fa45776a4b0e04e0Topup Native394343582023-08-26 22:11:3928 days 19 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000068766001 1.500000034
0x1e81d1d375c0047b37643e1c091589741fd7420393d165d4d35eae0099f17172Topup Token393867932023-08-25 14:11:1930 days 3 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399001 1.500000033
0x33ce54e8078651ef47921827cf90b7dd73e7c64a30e434978698643db72739d8Topup Native393300822023-08-24 1:00:5731 days 16 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000068766001 1.500000031
0xf8b443f9872002832621b0b3563889f9942f483183205f97ab8aa0ec2607b968Topup Token393167502023-08-23 15:20:5532 days 2 hrs ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399002 1.500000035
0x1160f18759d9b36c84a776aaedc352edc088e139504b6d134fa4cfa0fe07d000Topup Token392421002023-08-21 16:00:1934 days 1 hr ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399001 1.500000031
0xd82f39848eaf90dddca3b88f9da8add88ba60e2d0bd8c6d7d3aee26e2768cfe7Topup Token391686912023-08-19 16:09:4936 days 1 hr ago0x39d3f3dbf7044ac5480ace3cc071f96ce583b8ba IN  0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30 MATIC0.000090399002 1.500000046
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x863d07d7f461bd7f1d7d99c81f0383e21d21a80b248c1b183b9138b15875472f403050152023-09-20 5:47:554 days 12 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30x9c6a2592b6b4f2b70c5a9a17228813ac08703dcf3 MATIC
0x477f8a5cba779e45f81a00d91d48839f44f991d5edaa22184a63793bf319d396400893342023-09-14 0:06:2810 days 17 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0x62abdf29989abeba6e7414524018cad0a72a1cc62524570ef637b9ca0d83eaef400391692023-09-12 14:36:0512 days 3 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0xd818edb4ac47cf8c552a56b836770b7c644e3d5f884c9413dc5c9c478d6f0dc0398369472023-09-07 0:24:3217 days 17 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30x76259c949bee90c3ef6f1d04a3cb50ed0de7763c3 MATIC
0x77b1b22d594c625db531daa2016f1572d085abf3aef962b7fa45776a4b0e04e0394343582023-08-26 22:11:3928 days 19 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0x33ce54e8078651ef47921827cf90b7dd73e7c64a30e434978698643db72739d8393300822023-08-24 1:00:5731 days 16 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0x2179aabcfb834fa3b305272f32462961b89cde3c293cdaf7dec390f5b3c85ae8386601672023-08-05 9:26:1150 days 8 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30x76259c949bee90c3ef6f1d04a3cb50ed0de7763c3 MATIC
0xfac2905ba5a45e28bdc65b2ddcb71356755359cc0f5c8f44f75305b5dd22f359384656742023-07-30 22:04:4455 days 19 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0x2d09679b9619d1c67db8db64b64dae2e9ae7efc4fa628b9c326a96e40310a3fa383444022023-07-27 14:23:5959 days 3 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0xcde033e1773a26e0d8c9e6e5af53f728e83269edd388806365744815dfbd77d8376486342023-07-07 3:48:0379 days 14 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0xb2adf8a06d177155f2c4ca518109666b283ba086d34393c452d3cd10059cddc5375325112023-07-04 2:17:0782 days 15 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0x8625b328ccbcc8c564208ca6859f09ceaa1899d05e45a7d69e05104cff478eac370148652023-06-18 22:13:5297 days 19 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30x9c6a2592b6b4f2b70c5a9a17228813ac08703dcf3 MATIC
0xdfefba0d5e48bb8c1f188fb9d25be2109c25ecd6b607960cdd04195bb0fdc1c9369226942023-06-16 14:42:50100 days 3 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30x76259c949bee90c3ef6f1d04a3cb50ed0de7763c3 MATIC
0x983962421d4b95aeca91f7572ef6aa59fe1657223a6001072309187d631fb26f369212972023-06-16 13:52:48100 days 3 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0x7b0255e1b52e0319e7fc63030d00555366ea1388b6e39d2f13e2dc329e2a4bec368684192023-06-15 6:32:22101 days 11 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0x5b446ecce41d98a6340d3ca4a45faf699a3744dfc6c8743f74bfff20cffcbf50368116872023-06-13 20:21:45102 days 21 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0x684a8adad4ff14b2553aecc3cbf54bdae75aab556b60020d7a60e59c38ef936c368077412023-06-13 18:01:42102 days 23 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0x1e0fb04ced688ad8f1b7a5375218bcd53a25ddcbdaf34c4c5bc6f00c4d3c9857367490572023-06-12 7:20:40104 days 10 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0x141bcda44396dfafe72e4f28502d0f7aa009e04b17bddd05669ba8a5e0b3480e367442572023-06-12 4:30:40104 days 13 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0x274bb17eeff06698f2e1a0290381b1d226ea7f88368f0cc992eb3578beb31e2c366866342023-06-10 18:29:50105 days 23 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0xb0ece94d22c4e545c10ae2536b40ec8ce9f261f547ed685a17cd520799510ee2366815492023-06-10 15:29:44106 days 2 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0xdc5a83c0f808cb631987c3f11fbb0187a9e8719bd1fb1d9a37b072b3661898a0366270292023-06-09 7:18:50107 days 10 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
0xca3fb7d9ab8fd832d8f2a74ff0f40d7f17981263a812773bec7f7d84e7b0bc62366177332023-06-09 1:48:43107 days 16 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30x9c6a2592b6b4f2b70c5a9a17228813ac08703dcf3 MATIC
0xcf76769717bc9c12d6ab201051f0ebf4db014f7a9f5815b11c19a124eb1632af366168862023-06-09 1:18:43107 days 16 hrs ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xde0cd2bf7c169dfe26c1093e31475788325dcebc3 MATIC
0x111621c56ed21a18077828839dbf2fb33d0b978967e593bf4ebb64a52aa530ee365634772023-06-07 17:27:57109 days 24 mins ago 0x62d8087267a88bb0aa7c24c096dac0c60ceb54a30xc2621e9e70e64fd4c4bac2d8540581e56b63c4573 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TopperUpper

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at PolygonScan.com on 2022-07-14
*/

// File: @openzeppelin/contracts/utils/Context.sol


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

pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


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

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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


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

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

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

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

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

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

// File: undefined/FundsRecovery.sol

pragma solidity 0.8.9;



contract FundsRecovery is Ownable {
    address payable internal fundsDestination;
    IERC20 public token;

    event DestinationChanged(
        address indexed previousDestination,
        address indexed newDestination
    );

    /**
     * Setting new destination of funds recovery.
     */
    function setFundsDestination(address payable _newDestination)
        public
        virtual
        onlyOwner
    {
        require(_newDestination != address(0), "address is 0x0");
        emit DestinationChanged(fundsDestination, _newDestination);
        fundsDestination = _newDestination;
    }

    /**
     * Getting funds destination address.
     */
    function getFundsDestination() public view onlyOwner returns (address) {
        return fundsDestination;
    }

    /**
     * Possibility to recover funds in case they were sent to this address before smart contract deployment
     */
    function claimNative() public {
        require(fundsDestination != address(0), "address is 0x0");
        fundsDestination.transfer(address(this).balance);
    }

    /**
       Transfers selected tokens into owner address.
    */
    function claimTokens(address _token) public {
        require(fundsDestination != address(0), "address is 0x0");
        require(
            _token != address(token),
            "native token funds can't be recovered"
        );
        uint256 _amount = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(fundsDestination, _amount);
    }
}

// File: hardhat/console.sol


pragma solidity >= 0.4.22 <0.9.0;

library console {
	address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);

	function _sendLogPayload(bytes memory payload) private view {
		uint256 payloadLength = payload.length;
		address consoleAddress = CONSOLE_ADDRESS;
		assembly {
			let payloadStart := add(payload, 32)
			let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
		}
	}

	function log() internal view {
		_sendLogPayload(abi.encodeWithSignature("log()"));
	}

	function logInt(int p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
	}

	function logUint(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function logString(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function logBool(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function logAddress(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function logBytes(bytes memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
	}

	function logBytes1(bytes1 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
	}

	function logBytes2(bytes2 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
	}

	function logBytes3(bytes3 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
	}

	function logBytes4(bytes4 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
	}

	function logBytes5(bytes5 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
	}

	function logBytes6(bytes6 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
	}

	function logBytes7(bytes7 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
	}

	function logBytes8(bytes8 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
	}

	function logBytes9(bytes9 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
	}

	function logBytes10(bytes10 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
	}

	function logBytes11(bytes11 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
	}

	function logBytes12(bytes12 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
	}

	function logBytes13(bytes13 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
	}

	function logBytes14(bytes14 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
	}

	function logBytes15(bytes15 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
	}

	function logBytes16(bytes16 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
	}

	function logBytes17(bytes17 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
	}

	function logBytes18(bytes18 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
	}

	function logBytes19(bytes19 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
	}

	function logBytes20(bytes20 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
	}

	function logBytes21(bytes21 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
	}

	function logBytes22(bytes22 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
	}

	function logBytes23(bytes23 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
	}

	function logBytes24(bytes24 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
	}

	function logBytes25(bytes25 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
	}

	function logBytes26(bytes26 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
	}

	function logBytes27(bytes27 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
	}

	function logBytes28(bytes28 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
	}

	function logBytes29(bytes29 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
	}

	function logBytes30(bytes30 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
	}

	function logBytes31(bytes31 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
	}

	function logBytes32(bytes32 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
	}

	function log(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function log(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function log(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function log(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function log(uint p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
	}

	function log(uint p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
	}

	function log(uint p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
	}

	function log(uint p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
	}

	function log(string memory p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
	}

	function log(string memory p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
	}

	function log(string memory p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
	}

	function log(string memory p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
	}

	function log(bool p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
	}

	function log(bool p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
	}

	function log(bool p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
	}

	function log(bool p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
	}

	function log(address p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
	}

	function log(address p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
	}

	function log(address p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
	}

	function log(address p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
	}

	function log(uint p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
	}

	function log(uint p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
	}

	function log(uint p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
	}

	function log(uint p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
	}

	function log(uint p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
	}

	function log(uint p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
	}

	function log(uint p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
	}

	function log(uint p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
	}

	function log(uint p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
	}

	function log(uint p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
	}

	function log(uint p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
	}

	function log(uint p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
	}

	function log(string memory p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
	}

	function log(string memory p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
	}

	function log(string memory p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
	}

	function log(string memory p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
	}

	function log(bool p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
	}

	function log(bool p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
	}

	function log(bool p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
	}

	function log(bool p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
	}

	function log(bool p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
	}

	function log(bool p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
	}

	function log(bool p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
	}

	function log(bool p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
	}

	function log(bool p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
	}

	function log(bool p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
	}

	function log(bool p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
	}

	function log(bool p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
	}

	function log(address p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
	}

	function log(address p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
	}

	function log(address p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
	}

	function log(address p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
	}

	function log(address p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
	}

	function log(address p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
	}

	function log(address p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
	}

	function log(address p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
	}

	function log(address p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
	}

	function log(address p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
	}

	function log(address p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
	}

	function log(address p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
	}

	function log(address p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
	}

	function log(address p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
	}

	function log(address p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
	}

	function log(address p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
	}

	function log(uint p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
	}

}

// File: undefined/TopperUpper.sol

//SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.9;



contract TopperUpper is FundsRecovery {
    struct Limit {
        uint256 native;
        uint256 token;
        uint256 blocksWindow;
    }

    struct CurrentLimit {
        uint256 amount;
        uint256 validTill;
    }

    mapping(address => bool) public managers;
    mapping(address => Limit) public approvedAddresses;
    mapping(address => CurrentLimit) public tokenLimits; // Current period token limits
    mapping(address => CurrentLimit) public nativeLimits; // Current period native currency limits

    modifier onlyManager() {
        require(managers[_msgSender()], "Caller is not a manager");
        _;
    }

    constructor(address _token) {
        token = IERC20(_token);
    }

    receive() external payable {}

    function setManagers(address[] memory _managers) public onlyOwner {
        require(_managers.length > 0, "Please pass at least one manager");
        for (uint256 i = 0; i < _managers.length; i++) {
            managers[_managers[i]] = true;
        }
    }

    function removeManagers(address[] memory _managers) public onlyOwner {
        require(_managers.length > 0, "Invalid array length");
        for (uint256 i = 0; i < _managers.length; i++) {
            delete managers[_managers[i]];
        }
    }

    function approveAddresses(
        address[] memory _addrs,
        uint256[] memory _limitsNative,
        uint256[] memory _limitsToken,
        uint256[] memory _blocksWindow
    ) public onlyOwner {
        require(
            _addrs.length == _limitsNative.length &&
                _limitsNative.length == _limitsToken.length &&
                _blocksWindow.length == _limitsToken.length,
            "Invalid array length"
        );
        for (uint256 i = 0; i < _addrs.length; i++) {
            Limit memory limit = Limit(
                _limitsNative[i],
                _limitsToken[i],
                _blocksWindow[i]
            );
            approvedAddresses[_addrs[i]] = limit;
        }
    }

    function disapproveAddresses(address[] memory _addrs) public onlyOwner {
        require(_addrs.length > 0, "Invalid array length");
        for (uint256 i = 0; i < _addrs.length; i++) {
            delete approvedAddresses[_addrs[i]];
            delete nativeLimits[_addrs[i]];
            delete tokenLimits[_addrs[i]];
        }
    }

    function _topupNative(address payable _to, uint256 _amount) internal {
        if (block.number > nativeLimits[_to].validTill) {
            require(
                approvedAddresses[_to].native >= _amount,
                "Payout limits exceeded"
            );
            nativeLimits[_to].validTill =
                block.number +
                approvedAddresses[_to].blocksWindow;
            nativeLimits[_to].amount = approvedAddresses[_to].native - _amount;
        } else {
            require(
                nativeLimits[_to].amount >= _amount,
                "Payout limits exceeded"
            );
            nativeLimits[_to].amount -= _amount;
        }

        _to.transfer(_amount);
    }

    function topupNative(address payable _to, uint256 _amounts)
        public
        onlyManager
    {
        _topupNative(_to, _amounts);
    }

    function topupNatives(
        address payable[] memory _to,
        uint256[] memory _amounts
    ) public onlyManager {
        require(_amounts.length == _to.length, "Invalid array length");
        for (uint256 i = 0; i < _to.length; i++) {
            topupNative(_to[i], _amounts[i]);
        }
    }

    function _topupToken(address _to, uint256 _amount) internal {
        if (block.number > tokenLimits[_to].validTill) {
            require(
                approvedAddresses[_to].token >= _amount,
                "Payout limits exceeded"
            );
            tokenLimits[_to].validTill =
                block.number +
                approvedAddresses[_to].blocksWindow;
            tokenLimits[_to].amount = approvedAddresses[_to].token - _amount;
        } else {
            require(
                tokenLimits[_to].amount >= _amount,
                "Payout limits exceeded"
            );
            tokenLimits[_to].amount -= _amount;
        }

        token.transfer(_to, _amount);
    }

    function topupToken(address _to, uint256 _amounts) public onlyManager {
        _topupToken(_to, _amounts);
    }

    function topupTokens(address[] memory _to, uint256[] memory _amounts)
        public
        onlyManager
    {
        require(_amounts.length == _to.length, "Invalid array length");
        for (uint256 i = 0; i < _amounts.length; i++) {
            _topupToken(_to[i], _amounts[i]);
        }
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousDestination","type":"address"},{"indexed":true,"internalType":"address","name":"newDestination","type":"address"}],"name":"DestinationChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"_addrs","type":"address[]"},{"internalType":"uint256[]","name":"_limitsNative","type":"uint256[]"},{"internalType":"uint256[]","name":"_limitsToken","type":"uint256[]"},{"internalType":"uint256[]","name":"_blocksWindow","type":"uint256[]"}],"name":"approveAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"approvedAddresses","outputs":[{"internalType":"uint256","name":"native","type":"uint256"},{"internalType":"uint256","name":"token","type":"uint256"},{"internalType":"uint256","name":"blocksWindow","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addrs","type":"address[]"}],"name":"disapproveAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFundsDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"managers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nativeLimits","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"validTill","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_managers","type":"address[]"}],"name":"removeManagers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newDestination","type":"address"}],"name":"setFundsDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_managers","type":"address[]"}],"name":"setManagers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenLimits","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"validTill","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amounts","type":"uint256"}],"name":"topupNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"topupNatives","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amounts","type":"uint256"}],"name":"topupToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_to","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"topupTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516116a53803806116a583398101604081905261002f916100ad565b6100383361005d565b600280546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b6115b9806100ec6000396000f3fe6080604052600436106101235760003560e01c806391b571cf116100a0578063f2fde38b11610064578063f2fde38b14610391578063f4856230146103b1578063f58c5b6e146103c6578063fc0c546a146103db578063fdff9b4d146103fb57600080fd5b806391b571cf146102a6578063d4f2b668146102c6578063df8de3e7146102e6578063e7fc94c414610306578063f136a8741461033a57600080fd5b80634784e21b116100e75780634784e21b146101ff5780634f85d3db1461021f578063714280b31461023f578063715018a61461025f5780638da5cb5b1461027457600080fd5b80630d4e1a1e1461012f57806310f3ee2914610151578063238e130a14610171578063367caa0914610191578063417a0698146101b157600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5061014f61014a366004611092565b61043b565b005b34801561015d57600080fd5b5061014f61016c36600461119d565b610481565b34801561017d57600080fd5b5061014f61018c3660046111da565b610509565b34801561019d57600080fd5b5061014f6101ac36600461119d565b610593565b3480156101bd57600080fd5b506101e56101cc3660046111da565b6005602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b34801561020b57600080fd5b5061014f61021a366004611259565b610654565b34801561022b57600080fd5b5061014f61023a36600461119d565b610788565b34801561024b57600080fd5b5061014f61025a366004611092565b6108bb565b34801561026b57600080fd5b5061014f6108f4565b34801561028057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101f6565b3480156102b257600080fd5b5061014f6102c1366004611306565b610908565b3480156102d257600080fd5b5061014f6102e136600461136a565b6109b7565b3480156102f257600080fd5b5061014f6103013660046111da565b610a61565b34801561031257600080fd5b506101e56103213660046111da565b6006602052600090815260409020805460019091015482565b34801561034657600080fd5b506103766103553660046111da565b60046020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f6565b34801561039d57600080fd5b5061014f6103ac3660046111da565b610bf8565b3480156103bd57600080fd5b5061014f610c71565b3480156103d257600080fd5b5061028e610cd2565b3480156103e757600080fd5b5060025461028e906001600160a01b031681565b34801561040757600080fd5b5061042b6104163660046111da565b60036020526000908152604090205460ff1681565b60405190151581526020016101f6565b3360009081526003602052604090205460ff166104735760405162461bcd60e51b815260040161046a90611415565b60405180910390fd5b61047d8282610cec565b5050565b610489610e5a565b60008151116104aa5760405162461bcd60e51b815260040161046a9061144c565b60005b815181101561047d57600360008383815181106104cc576104cc61147a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916905580610501816114a6565b9150506104ad565b610511610e5a565b6001600160a01b0381166105375760405162461bcd60e51b815260040161046a906114c1565b6001546040516001600160a01b038084169216907fe1a66d77649cf0a57b9937073549f30f1c82bb865aaf066d2f299e37a62c6aad90600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b61059b610e5a565b60008151116105ec5760405162461bcd60e51b815260206004820181905260248201527f506c656173652070617373206174206c65617374206f6e65206d616e61676572604482015260640161046a565b60005b815181101561047d576001600360008484815181106106105761061061147a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061064c816114a6565b9150506105ef565b61065c610e5a565b8251845114801561066e575081518351145b801561067b575081518151145b6106975760405162461bcd60e51b815260040161046a9061144c565b60005b845181101561078157600060405180606001604052808684815181106106c2576106c261147a565b602002602001015181526020018584815181106106e1576106e161147a565b602002602001015181526020018484815181106107005761070061147a565b6020026020010151815250905080600460008885815181106107245761072461147a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050508080610779906114a6565b91505061069a565b5050505050565b610790610e5a565b60008151116107b15760405162461bcd60e51b815260040161046a9061144c565b60005b815181101561047d57600460008383815181106107d3576107d361147a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000808201600090556001820160009055600282016000905550506006600083838151811061082c5761082c61147a565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600080820160009055600182016000905550506005600083838151811061087d5761087d61147a565b6020908102919091018101516001600160a01b03168252810191909152604001600090812081815560010155806108b3816114a6565b9150506107b4565b3360009081526003602052604090205460ff166108ea5760405162461bcd60e51b815260040161046a90611415565b61047d8282610eb4565b6108fc610e5a565b610906600061102d565b565b3360009081526003602052604090205460ff166109375760405162461bcd60e51b815260040161046a90611415565b81518151146109585760405162461bcd60e51b815260040161046a9061144c565b60005b81518110156109b2576109a08382815181106109795761097961147a565b60200260200101518383815181106109935761099361147a565b6020026020010151610eb4565b806109aa816114a6565b91505061095b565b505050565b3360009081526003602052604090205460ff166109e65760405162461bcd60e51b815260040161046a90611415565b8151815114610a075760405162461bcd60e51b815260040161046a9061144c565b60005b82518110156109b257610a4f838281518110610a2857610a2861147a565b6020026020010151838381518110610a4257610a4261147a565b602002602001015161043b565b80610a59816114a6565b915050610a0a565b6001546001600160a01b0316610a895760405162461bcd60e51b815260040161046a906114c1565b6002546001600160a01b0382811691161415610af55760405162461bcd60e51b815260206004820152602560248201527f6e617469766520746f6b656e2066756e64732063616e2774206265207265636f6044820152641d995c995960da1b606482015260840161046a565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610b3757600080fd5b505afa158015610b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6f91906114e9565b60015460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925083169063a9059cbb906044015b602060405180830381600087803b158015610bc057600080fd5b505af1158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b29190611502565b610c00610e5a565b6001600160a01b038116610c655760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161046a565b610c6e8161102d565b50565b6001546001600160a01b0316610c995760405162461bcd60e51b815260040161046a906114c1565b6001546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c6e573d6000803e3d6000fd5b6000610cdc610e5a565b506001546001600160a01b031690565b6001600160a01b038216600090815260066020526040902060010154431115610dbe576001600160a01b038216600090815260046020526040902054811115610d475760405162461bcd60e51b815260040161046a90611524565b6001600160a01b038216600090815260046020526040902060020154610d6d9043611554565b6001600160a01b038316600090815260066020908152604080832060010193909355600490522054610da090829061156c565b6001600160a01b038316600090815260066020526040902055610e24565b6001600160a01b038216600090815260066020526040902054811115610df65760405162461bcd60e51b815260040161046a90611524565b6001600160a01b03821660009081526006602052604081208054839290610e1e90849061156c565b90915550505b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156109b2573d6000803e3d6000fd5b6000546001600160a01b031633146109065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161046a565b6001600160a01b038216600090815260056020526040902060010154431115610f8e576001600160a01b038216600090815260046020526040902060010154811115610f125760405162461bcd60e51b815260040161046a90611524565b6001600160a01b038216600090815260046020526040902060020154610f389043611554565b6001600160a01b0383166000908152600560209081526040808320600190810194909455600490915290200154610f7090829061156c565b6001600160a01b038316600090815260056020526040902055610ff4565b6001600160a01b038216600090815260056020526040902054811115610fc65760405162461bcd60e51b815260040161046a90611524565b6001600160a01b03821660009081526005602052604081208054839290610fee90849061156c565b90915550505b60025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401610ba6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610c6e57600080fd5b600080604083850312156110a557600080fd5b82356110b08161107d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110fd576110fd6110be565b604052919050565b600067ffffffffffffffff82111561111f5761111f6110be565b5060051b60200190565b600082601f83011261113a57600080fd5b8135602061114f61114a83611105565b6110d4565b82815260059290921b8401810191818101908684111561116e57600080fd5b8286015b848110156111925780356111858161107d565b8352918301918301611172565b509695505050505050565b6000602082840312156111af57600080fd5b813567ffffffffffffffff8111156111c657600080fd5b6111d284828501611129565b949350505050565b6000602082840312156111ec57600080fd5b81356111f78161107d565b9392505050565b600082601f83011261120f57600080fd5b8135602061121f61114a83611105565b82815260059290921b8401810191818101908684111561123e57600080fd5b8286015b848110156111925780358352918301918301611242565b6000806000806080858703121561126f57600080fd5b843567ffffffffffffffff8082111561128757600080fd5b61129388838901611129565b955060208701359150808211156112a957600080fd5b6112b5888389016111fe565b945060408701359150808211156112cb57600080fd5b6112d7888389016111fe565b935060608701359150808211156112ed57600080fd5b506112fa878288016111fe565b91505092959194509250565b6000806040838503121561131957600080fd5b823567ffffffffffffffff8082111561133157600080fd5b61133d86838701611129565b9350602085013591508082111561135357600080fd5b50611360858286016111fe565b9150509250929050565b6000806040838503121561137d57600080fd5b823567ffffffffffffffff8082111561139557600080fd5b818501915085601f8301126113a957600080fd5b813560206113b961114a83611105565b82815260059290921b840181019181810190898411156113d857600080fd5b948201945b838610156113ff5785356113f08161107d565b825294820194908201906113dd565b9650508601359250508082111561135357600080fd5b60208082526017908201527f43616c6c6572206973206e6f742061206d616e61676572000000000000000000604082015260600190565b602080825260149082015273092dcecc2d8d2c840c2e4e4c2f240d8cadccee8d60631b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156114ba576114ba611490565b5060010190565b6020808252600e908201526d061646472657373206973203078360941b604082015260600190565b6000602082840312156114fb57600080fd5b5051919050565b60006020828403121561151457600080fd5b815180151581146111f757600080fd5b60208082526016908201527514185e5bdd5d081b1a5b5a5d1cc8195e18d95959195960521b604082015260600190565b6000821982111561156757611567611490565b500190565b60008282101561157e5761157e611490565b50039056fea2646970667358221220d2885a1c49adecfc291438a48b5a6c9d4bc9d922ad6252ab39657edcc832e78564736f6c63430008090033000000000000000000000000b923b52b60e247e34f9afe6b3fa5accbaea829e8

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

000000000000000000000000b923b52b60e247e34f9afe6b3fa5accbaea829e8

-----Decoded View---------------
Arg [0] : _token (address): 0xb923b52b60e247e34f9afe6b3fa5accbaea829e8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b923b52b60e247e34f9afe6b3fa5accbaea829e8


Deployed ByteCode Sourcemap

71789:4786:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;74932:148;;;;;;;;;;-1:-1:-1;74932:148:0;;;;;:::i;:::-;;:::i;:::-;;72832:254;;;;;;;;;;-1:-1:-1;72832:254:0;;;;;:::i;:::-;;:::i;6855:308::-;;;;;;;;;;-1:-1:-1;6855:308:0;;;;;:::i;:::-;;:::i;72561:263::-;;;;;;;;;;-1:-1:-1;72561:263:0;;;;;:::i;:::-;;:::i;72136:51::-;;;;;;;;;;-1:-1:-1;72136:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2899:25:1;;;2955:2;2940:18;;2933:34;;;;2872:18;72136:51:0;;;;;;;;73094:737;;;;;;;;;;-1:-1:-1;73094:737:0;;;;;:::i;:::-;;:::i;73839:345::-;;;;;;;;;;-1:-1:-1;73839:345:0;;;;;:::i;:::-;;:::i;76141:115::-;;;;;;;;;;-1:-1:-1;76141:115:0;;;;;:::i;:::-;;:::i;2776:103::-;;;;;;;;;;;;;:::i;2128:87::-;;;;;;;;;;-1:-1:-1;2174:7:0;2201:6;-1:-1:-1;;;;;2201:6:0;2128:87;;;-1:-1:-1;;;;;5190:32:1;;;5172:51;;5160:2;5145:18;2128:87:0;5026:203:1;76264:308:0;;;;;;;;;;-1:-1:-1;76264:308:0;;;;;:::i;:::-;;:::i;75088:314::-;;;;;;;;;;-1:-1:-1;75088:314:0;;;;;:::i;:::-;;:::i;7724:371::-;;;;;;;;;;-1:-1:-1;7724:371:0;;;;;:::i;:::-;;:::i;72225:52::-;;;;;;;;;;-1:-1:-1;72225:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;72079:50;;;;;;;;;;-1:-1:-1;72079:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7272:25:1;;;7328:2;7313:18;;7306:34;;;;7356:18;;;7349:34;7260:2;7245:18;72079:50:0;7070:319:1;3034:201:0;;;;;;;;;;-1:-1:-1;3034:201:0;;;;;:::i;:::-;;:::i;7480:165::-;;;;;;;;;;;;;:::i;7232:113::-;;;;;;;;;;;;;:::i;6631:19::-;;;;;;;;;;-1:-1:-1;6631:19:0;;;;-1:-1:-1;;;;;6631:19:0;;;72032:40;;;;;;;;;;-1:-1:-1;72032:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7781:14:1;;7774:22;7756:41;;7744:2;7729:18;72032:40:0;7616:187:1;74932:148:0;759:10;72369:22;;;;:8;:22;;;;;;;;72361:58;;;;-1:-1:-1;;;72361:58:0;;;;;;;:::i;:::-;;;;;;;;;75045:27:::1;75058:3;75063:8;75045:12;:27::i;:::-;74932:148:::0;;:::o;72832:254::-;2014:13;:11;:13::i;:::-;72939:1:::1;72920:9;:16;:20;72912:53;;;;-1:-1:-1::0;;;72912:53:0::1;;;;;;;:::i;:::-;72981:9;72976:103;73000:9;:16;72996:1;:20;72976:103;;;73045:8;:22;73054:9;73064:1;73054:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;73045:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;73045:22:0;73038:29;;-1:-1:-1;;73038:29:0::1;::::0;;73018:3;::::1;::::0;::::1;:::i;:::-;;;;72976:103;;6855:308:::0;2014:13;:11;:13::i;:::-;-1:-1:-1;;;;;6993:29:0;::::1;6985:56;;;;-1:-1:-1::0;;;6985:56:0::1;;;;;;;:::i;:::-;7076:16;::::0;7057:53:::1;::::0;-1:-1:-1;;;;;7057:53:0;;::::1;::::0;7076:16:::1;::::0;7057:53:::1;::::0;7076:16:::1;::::0;7057:53:::1;7121:16;:34:::0;;-1:-1:-1;;;;;;7121:34:0::1;-1:-1:-1::0;;;;;7121:34:0;;;::::1;::::0;;;::::1;::::0;;6855:308::o;72561:263::-;2014:13;:11;:13::i;:::-;72665:1:::1;72646:9;:16;:20;72638:65;;;::::0;-1:-1:-1;;;72638:65:0;;9458:2:1;72638:65:0::1;::::0;::::1;9440:21:1::0;;;9477:18;;;9470:30;9536:34;9516:18;;;9509:62;9588:18;;72638:65:0::1;9256:356:1::0;72638:65:0::1;72719:9;72714:103;72738:9;:16;72734:1;:20;72714:103;;;72801:4;72776:8;:22;72785:9;72795:1;72785:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;72776:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;72776:22:0;:29;;-1:-1:-1;;72776:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;72756:3;::::1;::::0;::::1;:::i;:::-;;;;72714:103;;73094:737:::0;2014:13;:11;:13::i;:::-;73350::::1;:20;73333:6;:13;:37;:101;;;;;73415:12;:19;73391:13;:20;:43;73333:101;:165;;;;;73479:12;:19;73455:13;:20;:43;73333:165;73311:235;;;;-1:-1:-1::0;;;73311:235:0::1;;;;;;;:::i;:::-;73562:9;73557:267;73581:6;:13;73577:1;:17;73557:267;;;73616:18;73637:124;;;;;;;;73661:13;73675:1;73661:16;;;;;;;;:::i;:::-;;;;;;;73637:124;;;;73696:12;73709:1;73696:15;;;;;;;;:::i;:::-;;;;;;;73637:124;;;;73730:13;73744:1;73730:16;;;;;;;;:::i;:::-;;;;;;;73637:124;;::::0;73616:145:::1;;73807:5;73776:17;:28;73794:6;73801:1;73794:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;73776:28:0::1;-1:-1:-1::0;;;;;73776:28:0::1;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;73601:223;73596:3;;;;;:::i;:::-;;;;73557:267;;;;73094:737:::0;;;;:::o;73839:345::-;2014:13;:11;:13::i;:::-;73945:1:::1;73929:6;:13;:17;73921:50;;;;-1:-1:-1::0;;;73921:50:0::1;;;;;;;:::i;:::-;73987:9;73982:195;74006:6;:13;74002:1;:17;73982:195;;;74048:17;:28;74066:6;74073:1;74066:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;74048:28:0::1;-1:-1:-1::0;;;;;74048:28:0::1;;;;;;;;;;;;;74041:35:::0;::::1;;;;;;;;;;;;;;;;;;;74098:12;:23;74111:6;74118:1;74111:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;74098:23:0::1;-1:-1:-1::0;;;;;74098:23:0::1;;;;;;;;;;;;;74091:30:::0;::::1;;;;;;;;;;;;;74143:11;:22;74155:6;74162:1;74155:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;74143:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;74143:22:0;;;74136:29;;;::::1;;::::0;74021:3;::::1;::::0;::::1;:::i;:::-;;;;73982:195;;76141:115:::0;759:10;72369:22;;;;:8;:22;;;;;;;;72361:58;;;;-1:-1:-1;;;72361:58:0;;;;;;;:::i;:::-;76222:26:::1;76234:3;76239:8;76222:11;:26::i;2776:103::-:0;2014:13;:11;:13::i;:::-;2841:30:::1;2868:1;2841:18;:30::i;:::-;2776:103::o:0;76264:308::-;759:10;72369:22;;;;:8;:22;;;;;;;;72361:58;;;;-1:-1:-1;;;72361:58:0;;;;;;;:::i;:::-;76414:3:::1;:10;76395:8;:15;:29;76387:62;;;;-1:-1:-1::0;;;76387:62:0::1;;;;;;;:::i;:::-;76465:9;76460:105;76484:8;:15;76480:1;:19;76460:105;;;76521:32;76533:3;76537:1;76533:6;;;;;;;;:::i;:::-;;;;;;;76541:8;76550:1;76541:11;;;;;;;;:::i;:::-;;;;;;;76521;:32::i;:::-;76501:3:::0;::::1;::::0;::::1;:::i;:::-;;;;76460:105;;;;76264:308:::0;;:::o;75088:314::-;759:10;72369:22;;;;:8;:22;;;;;;;;72361:58;;;;-1:-1:-1;;;72361:58:0;;;;;;;:::i;:::-;75249:3:::1;:10;75230:8;:15;:29;75222:62;;;;-1:-1:-1::0;;;75222:62:0::1;;;;;;;:::i;:::-;75300:9;75295:100;75319:3;:10;75315:1;:14;75295:100;;;75351:32;75363:3;75367:1;75363:6;;;;;;;;:::i;:::-;;;;;;;75371:8;75380:1;75371:11;;;;;;;;:::i;:::-;;;;;;;75351;:32::i;:::-;75331:3:::0;::::1;::::0;::::1;:::i;:::-;;;;75295:100;;7724:371:::0;7787:16;;-1:-1:-1;;;;;7787:16:0;7779:57;;;;-1:-1:-1;;;7779:57:0;;;;;;;:::i;:::-;7887:5;;-1:-1:-1;;;;;7869:24:0;;;7887:5;;7869:24;;7847:111;;;;-1:-1:-1;;;7847:111:0;;9819:2:1;7847:111:0;;;9801:21:1;9858:2;9838:18;;;9831:30;9897:34;9877:18;;;9870:62;-1:-1:-1;;;9948:18:1;;;9941:35;9993:19;;7847:111:0;9617:401:1;7847:111:0;7987:39;;-1:-1:-1;;;7987:39:0;;8020:4;7987:39;;;5172:51:1;7969:15:0;;-1:-1:-1;;;;;7987:24:0;;;;;5145:18:1;;7987:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8061:16;;8037:50;;-1:-1:-1;;;8037:50:0;;-1:-1:-1;;;;;8061:16:0;;;8037:50;;;10394:51:1;10461:18;;;10454:34;;;7969:57:0;;-1:-1:-1;8037:23:0;;;;;10367:18:1;;8037:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3034:201::-;2014:13;:11;:13::i;:::-;-1:-1:-1;;;;;3123:22:0;::::1;3115:73;;;::::0;-1:-1:-1;;;3115:73:0;;10983:2:1;3115:73:0::1;::::0;::::1;10965:21:1::0;11022:2;11002:18;;;10995:30;11061:34;11041:18;;;11034:62;-1:-1:-1;;;11112:18:1;;;11105:36;11158:19;;3115:73:0::1;10781:402:1::0;3115:73:0::1;3199:28;3218:8;3199:18;:28::i;:::-;3034:201:::0;:::o;7480:165::-;7529:16;;-1:-1:-1;;;;;7529:16:0;7521:57;;;;-1:-1:-1;;;7521:57:0;;;;;;;:::i;:::-;7589:16;;:48;;-1:-1:-1;;;;;7589:16:0;;;;7615:21;7589:48;;;;;:16;:48;:16;:48;7615:21;7589:16;:48;;;;;;;;;;;;;;;;;;;7232:113;7294:7;2014:13;:11;:13::i;:::-;-1:-1:-1;7321:16:0::1;::::0;-1:-1:-1;;;;;7321:16:0::1;7232:113:::0;:::o;74192:732::-;-1:-1:-1;;;;;74291:17:0;;;;;;:12;:17;;;;;:27;;;74276:12;:42;74272:611;;;-1:-1:-1;;;;;74361:22:0;;;;;;:17;:22;;;;;:29;:40;-1:-1:-1;74361:40:0;74335:124;;;;-1:-1:-1;;;74335:124:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;74553:22:0;;;;;;:17;:22;;;;;:35;;;74521:67;;:12;:67;:::i;:::-;-1:-1:-1;;;;;74474:17:0;;;;;;:12;:17;;;;;;;;:27;;:114;;;;74630:17;:22;;;:29;:39;;74662:7;;74630:39;:::i;:::-;-1:-1:-1;;;;;74603:17:0;;;;;;:12;:17;;;;;:66;74272:611;;;-1:-1:-1;;;;;74728:17:0;;;;;;:12;:17;;;;;:24;:35;-1:-1:-1;74728:35:0;74702:119;;;;-1:-1:-1;;;74702:119:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;74836:17:0;;;;;;:12;:17;;;;;:35;;74864:7;;74836:17;:35;;74864:7;;74836:35;:::i;:::-;;;;-1:-1:-1;;74272:611:0;74895:21;;-1:-1:-1;;;;;74895:12:0;;;:21;;;;;74908:7;;74895:21;;;;74908:7;74895:12;:21;;;;;;;;;;;;;;;;;;;2293:132;2174:7;2201:6;-1:-1:-1;;;;;2201:6:0;759:10;2357:23;2349:68;;;;-1:-1:-1;;;2349:68:0;;12004:2:1;2349:68:0;;;11986:21:1;;;12023:18;;;12016:30;12082:34;12062:18;;;12055:62;12134:18;;2349:68:0;11802:356:1;75410:723:0;-1:-1:-1;;;;;75500:16:0;;;;;;:11;:16;;;;;:26;;;75485:12;:41;75481:604;;;-1:-1:-1;;;;;75569:22:0;;;;;;:17;:22;;;;;:28;;;:39;-1:-1:-1;75569:39:0;75543:123;;;;-1:-1:-1;;;75543:123:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;75759:22:0;;;;;;:17;:22;;;;;:35;;;75727:67;;:12;:67;:::i;:::-;-1:-1:-1;;;;;75681:16:0;;;;;;:11;:16;;;;;;;;:26;;;;:113;;;;75835:17;:22;;;;;:28;;:38;;75866:7;;75835:38;:::i;:::-;-1:-1:-1;;;;;75809:16:0;;;;;;:11;:16;;;;;:64;75481:604;;;-1:-1:-1;;;;;75932:16:0;;;;;;:11;:16;;;;;:23;:34;-1:-1:-1;75932:34:0;75906:118;;;;-1:-1:-1;;;75906:118:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;76039:16:0;;;;;;:11;:16;;;;;:34;;76066:7;;76039:16;:34;;76066:7;;76039:34;:::i;:::-;;;;-1:-1:-1;;75481:604:0;76097:5;;:28;;-1:-1:-1;;;76097:28:0;;-1:-1:-1;;;;;10412:32:1;;;76097:28:0;;;10394:51:1;10461:18;;;10454:34;;;76097:5:0;;;;:14;;10367:18:1;;76097:28:0;10212:282:1;3395:191:0;3469:16;3488:6;;-1:-1:-1;;;;;3505:17:0;;;-1:-1:-1;;;;;;3505:17:0;;;;;;3538:40;;3488:6;;;;;;;3538:40;;3469:16;3538:40;3458:128;3395:191;:::o;14:139:1:-;-1:-1:-1;;;;;97:31:1;;87:42;;77:70;;143:1;140;133:12;158:331;234:6;242;295:2;283:9;274:7;270:23;266:32;263:52;;;311:1;308;301:12;263:52;350:9;337:23;369:39;402:5;369:39;:::i;:::-;427:5;479:2;464:18;;;;451:32;;-1:-1:-1;;;158:331:1:o;494:127::-;555:10;550:3;546:20;543:1;536:31;586:4;583:1;576:15;610:4;607:1;600:15;626:275;697:2;691:9;762:2;743:13;;-1:-1:-1;;739:27:1;727:40;;797:18;782:34;;818:22;;;779:62;776:88;;;844:18;;:::i;:::-;880:2;873:22;626:275;;-1:-1:-1;626:275:1:o;906:183::-;966:4;999:18;991:6;988:30;985:56;;;1021:18;;:::i;:::-;-1:-1:-1;1066:1:1;1062:14;1078:4;1058:25;;906:183::o;1094:745::-;1148:5;1201:3;1194:4;1186:6;1182:17;1178:27;1168:55;;1219:1;1216;1209:12;1168:55;1255:6;1242:20;1281:4;1305:60;1321:43;1361:2;1321:43;:::i;:::-;1305:60;:::i;:::-;1399:15;;;1485:1;1481:10;;;;1469:23;;1465:32;;;1430:12;;;;1509:15;;;1506:35;;;1537:1;1534;1527:12;1506:35;1573:2;1565:6;1561:15;1585:225;1601:6;1596:3;1593:15;1585:225;;;1681:3;1668:17;1698:39;1731:5;1698:39;:::i;:::-;1750:18;;1788:12;;;;1618;;1585:225;;;-1:-1:-1;1828:5:1;1094:745;-1:-1:-1;;;;;;1094:745:1:o;1844:348::-;1928:6;1981:2;1969:9;1960:7;1956:23;1952:32;1949:52;;;1997:1;1994;1987:12;1949:52;2037:9;2024:23;2070:18;2062:6;2059:30;2056:50;;;2102:1;2099;2092:12;2056:50;2125:61;2178:7;2169:6;2158:9;2154:22;2125:61;:::i;:::-;2115:71;1844:348;-1:-1:-1;;;;1844:348:1:o;2197:263::-;2264:6;2317:2;2305:9;2296:7;2292:23;2288:32;2285:52;;;2333:1;2330;2323:12;2285:52;2372:9;2359:23;2391:39;2424:5;2391:39;:::i;:::-;2449:5;2197:263;-1:-1:-1;;;2197:263:1:o;2978:662::-;3032:5;3085:3;3078:4;3070:6;3066:17;3062:27;3052:55;;3103:1;3100;3093:12;3052:55;3139:6;3126:20;3165:4;3189:60;3205:43;3245:2;3205:43;:::i;3189:60::-;3283:15;;;3369:1;3365:10;;;;3353:23;;3349:32;;;3314:12;;;;3393:15;;;3390:35;;;3421:1;3418;3411:12;3390:35;3457:2;3449:6;3445:15;3469:142;3485:6;3480:3;3477:15;3469:142;;;3551:17;;3539:30;;3589:12;;;;3502;;3469:142;;3645:1048;3831:6;3839;3847;3855;3908:3;3896:9;3887:7;3883:23;3879:33;3876:53;;;3925:1;3922;3915:12;3876:53;3965:9;3952:23;3994:18;4035:2;4027:6;4024:14;4021:34;;;4051:1;4048;4041:12;4021:34;4074:61;4127:7;4118:6;4107:9;4103:22;4074:61;:::i;:::-;4064:71;;4188:2;4177:9;4173:18;4160:32;4144:48;;4217:2;4207:8;4204:16;4201:36;;;4233:1;4230;4223:12;4201:36;4256:63;4311:7;4300:8;4289:9;4285:24;4256:63;:::i;:::-;4246:73;;4372:2;4361:9;4357:18;4344:32;4328:48;;4401:2;4391:8;4388:16;4385:36;;;4417:1;4414;4407:12;4385:36;4440:63;4495:7;4484:8;4473:9;4469:24;4440:63;:::i;:::-;4430:73;;4556:2;4545:9;4541:18;4528:32;4512:48;;4585:2;4575:8;4572:16;4569:36;;;4601:1;4598;4591:12;4569:36;;4624:63;4679:7;4668:8;4657:9;4653:24;4624:63;:::i;:::-;4614:73;;;3645:1048;;;;;;;:::o;5234:595::-;5352:6;5360;5413:2;5401:9;5392:7;5388:23;5384:32;5381:52;;;5429:1;5426;5419:12;5381:52;5469:9;5456:23;5498:18;5539:2;5531:6;5528:14;5525:34;;;5555:1;5552;5545:12;5525:34;5578:61;5631:7;5622:6;5611:9;5607:22;5578:61;:::i;:::-;5568:71;;5692:2;5681:9;5677:18;5664:32;5648:48;;5721:2;5711:8;5708:16;5705:36;;;5737:1;5734;5727:12;5705:36;;5760:63;5815:7;5804:8;5793:9;5789:24;5760:63;:::i;:::-;5750:73;;;5234:595;;;;;:::o;5834:1231::-;5960:6;5968;6021:2;6009:9;6000:7;5996:23;5992:32;5989:52;;;6037:1;6034;6027:12;5989:52;6077:9;6064:23;6106:18;6147:2;6139:6;6136:14;6133:34;;;6163:1;6160;6153:12;6133:34;6201:6;6190:9;6186:22;6176:32;;6246:7;6239:4;6235:2;6231:13;6227:27;6217:55;;6268:1;6265;6258:12;6217:55;6304:2;6291:16;6326:4;6350:60;6366:43;6406:2;6366:43;:::i;6350:60::-;6444:15;;;6526:1;6522:10;;;;6514:19;;6510:28;;;6475:12;;;;6550:19;;;6547:39;;;6582:1;6579;6572:12;6547:39;6606:11;;;;6626:225;6642:6;6637:3;6634:15;6626:225;;;6722:3;6709:17;6739:39;6772:5;6739:39;:::i;:::-;6791:18;;6659:12;;;;6829;;;;6626:225;;;6870:5;-1:-1:-1;;6913:18:1;;6900:32;;-1:-1:-1;;6944:16:1;;;6941:36;;;6973:1;6970;6963:12;7808:347;8010:2;7992:21;;;8049:2;8029:18;;;8022:30;8088:25;8083:2;8068:18;;8061:53;8146:2;8131:18;;7808:347::o;8160:344::-;8362:2;8344:21;;;8401:2;8381:18;;;8374:30;-1:-1:-1;;;8435:2:1;8420:18;;8413:50;8495:2;8480:18;;8160:344::o;8509:127::-;8570:10;8565:3;8561:20;8558:1;8551:31;8601:4;8598:1;8591:15;8625:4;8622:1;8615:15;8641:127;8702:10;8697:3;8693:20;8690:1;8683:31;8733:4;8730:1;8723:15;8757:4;8754:1;8747:15;8773:135;8812:3;-1:-1:-1;;8833:17:1;;8830:43;;;8853:18;;:::i;:::-;-1:-1:-1;8900:1:1;8889:13;;8773:135::o;8913:338::-;9115:2;9097:21;;;9154:2;9134:18;;;9127:30;-1:-1:-1;;;9188:2:1;9173:18;;9166:44;9242:2;9227:18;;8913:338::o;10023:184::-;10093:6;10146:2;10134:9;10125:7;10121:23;10117:32;10114:52;;;10162:1;10159;10152:12;10114:52;-1:-1:-1;10185:16:1;;10023:184;-1:-1:-1;10023:184:1:o;10499:277::-;10566:6;10619:2;10607:9;10598:7;10594:23;10590:32;10587:52;;;10635:1;10632;10625:12;10587:52;10667:9;10661:16;10720:5;10713:13;10706:21;10699:5;10696:32;10686:60;;10742:1;10739;10732:12;11188:346;11390:2;11372:21;;;11429:2;11409:18;;;11402:30;-1:-1:-1;;;11463:2:1;11448:18;;11441:52;11525:2;11510:18;;11188:346::o;11539:128::-;11579:3;11610:1;11606:6;11603:1;11600:13;11597:39;;;11616:18;;:::i;:::-;-1:-1:-1;11652:9:1;;11539:128::o;11672:125::-;11712:4;11740:1;11737;11734:8;11731:34;;;11745:18;;:::i;:::-;-1:-1:-1;11782:9:1;;11672:125::o

Swarm Source

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