Contract 0x424E231FBd3f74Ab9D85D1cf7de2d242D96d8ea4 3

 

Contract Overview

Balance:
68.56148814741909323 MATIC

MATIC Value:
$51.40 (@ $0.75/MATIC)
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe20c48e21a27602eaafd623752164e7b7811c739d1668528a9b6546c924fed34Whitelist Contra...319873392022-08-17 7:19:4743 days 3 hrs ago0xda22293aa75e005f7a6411a85f5ae053ebafd3a9 IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea418.446744073709551 MATIC0.005292888836 43.266946533
0x28177d16c55dfd30cc0a50d1b4971e5c3d502787ad25258690266b9883f6d68bCreate Auction290829282022-06-02 17:52:47118 days 17 hrs ago0xacdb7011fcea125a62fb7712a49c7e1c21bbb4d5 IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40 MATIC0.011366053731 38.277016158
0x47fa0e36786e5ad294ec9094b4c00fd9d631d112e48aa6c3233b94696ae772daBid289059782022-05-29 8:44:14123 days 2 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4409.71358095598433 MATIC0.00346494555
0x8cc6680ec4fd92ae34c7d7d3f78fb48b900d368174d4e1d98e5657fa46b43038Bid289058572022-05-29 8:40:08123 days 2 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4409.71358095598433 MATIC0.00361894555
0x3954aab5e6a4b2f7611f7ece335b7b3b1510f4ce6c8e1ce5126f0b3db681bf9dBid288903582022-05-28 23:30:01123 days 11 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4405.65701084750925 MATIC0.00346494555
0xb674129f5bd516b28c8524a3fde1a1b9ffa0a96e50b0b2c50d9689e8c7051eb0Bid288902752022-05-28 23:27:11123 days 11 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4405.65701084750925 MATIC0.00346494555
0x243bd014eb64266c316e4f83da5cf25b7b5684e66f9c6dd7061d4b93958f3439Bid288901732022-05-28 23:23:39123 days 11 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4405.65701084750925 MATIC0.00361894555
0x65553fd1fab2c07665516f22020f26cd755fd8717b9b070f99212a7b74233a87Bid288875902022-05-28 21:54:51123 days 13 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4401.640604799514116 MATIC0.00346494555
0x3005d9d6613766673782f35ae27b93a31c55fd4ad07ccf23545e74a990004b59Bid288873212022-05-28 21:45:37123 days 13 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4401.640604799514116 MATIC0.00361894555
0xe9328d5176df65e036b85c5604a6466bb67f5edd42bd01eea15ab06fec93457dBid288867282022-05-28 21:25:15123 days 13 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4397.663965148033777 MATIC0.00346494555
0xbd65b6bbbf6b233601be5b2386669a32a96868bddc11e41fc7d5031406798833Bid288864902022-05-28 21:17:03123 days 13 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4397.663965148033777 MATIC0.00361894555
0x01872baf955ee1bd6bd19ec6ce5c8eb590526ee9365fbc04ba63fbe03182a525Bid288858372022-05-28 20:54:37123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4393.726698166370041 MATIC0.00346494555
0x0e840fab7a39937e3e097b16e6c0c6c57e53c60f57c993b32d04a9650e438bc3Bid288857282022-05-28 20:50:51123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4393.726698166370041 MATIC0.00361894555
0xaf131ae06b26238c3bc7b9bb50e451ceb83373d2af0875ec9e3060ab0c9d612fBid288856672022-05-28 20:48:45123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4389.82841402610896 MATIC0.00346494555
0x71a259d4ffd2356a85527333969118ee060cc85ced16ee5b4b95b6d2dce6c63eBid288855662022-05-28 20:45:15123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4389.82841402610896 MATIC0.00346494555
0xac4b6973d910b4fa0b05c64a2b10d74417f54a9bbae62b2d12215d3ec4996653Bid288855452022-05-28 20:44:33123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4389.82841402610896 MATIC0.00361894555
0x8aa2bc02c3176cdd6aa702d2096afbe17cc8b5da929b9a5b0d70f4cb31eb142fBid288853312022-05-28 20:37:13123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4385.968726758523731 MATIC0.00346494555
0xf5ec68f7ddaca02161f6e6b436b310ff79317b2167070e5e5218c3408ecf8166Bid288852612022-05-28 20:34:49123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4385.968726758523731 MATIC0.00361894555
0xe4f57b82e5f7e1224db43fda4ab27382eb5c4b6f569176596376a1249f52fea8Bid288852052022-05-28 20:32:53123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4382.147254216360132 MATIC0.00346494555
0x53dcf2028900c2f6d1d700aee1b24083513540f8589569e053b72b6425d312b5Bid288851032022-05-28 20:29:16123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4382.147254216360132 MATIC0.0037799460
0xd386f66fc113e4e96efbc94c607bae240b9d8f6d705308df94126073a61a39aeBid288850752022-05-28 20:28:20123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4382.147254216360132 MATIC0.00346494555
0xfc903ab63b07696d494797252a9bb3cc8ddd62b7fe39ca56a9c012d72a4d654eBid288850412022-05-28 20:27:08123 days 14 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4382.147254216360132 MATIC0.0039479460
0xa66231d2972bf56e3ddca8c5ebe04d76678eb71fafd9d303480ece3c5b9f5d1aBid288844622022-05-28 20:07:14123 days 15 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4378.363618036000096 MATIC0.0039479460
0x6855b612e189483be899d9c0cd0475cb1b473f7aa77f9351e4ac68c51241602fBid288843652022-05-28 20:03:56123 days 15 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4374.61744360000009 MATIC0.00361894555
0x10c6e903802badf24449b345633c0bc7221f2871aa53fadbe740bb94c4380108Bid288834352022-05-28 19:31:54123 days 15 hrs ago0x0d83573a788db47a7835053ce7a71ab2a9e3257a IN  0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea4370.908360000000098 MATIC0.00361894555
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x47fa0e36786e5ad294ec9094b4c00fd9d631d112e48aa6c3233b94696ae772da289059782022-05-29 8:44:14123 days 2 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a409.713580955984330752 MATIC
0x8cc6680ec4fd92ae34c7d7d3f78fb48b900d368174d4e1d98e5657fa46b43038289058572022-05-29 8:40:08123 days 2 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a409.713580955984330752 MATIC
0x3954aab5e6a4b2f7611f7ece335b7b3b1510f4ce6c8e1ce5126f0b3db681bf9d288903582022-05-28 23:30:01123 days 11 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a405.657010847509250048 MATIC
0xb674129f5bd516b28c8524a3fde1a1b9ffa0a96e50b0b2c50d9689e8c7051eb0288902752022-05-28 23:27:11123 days 11 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a405.657010847509250048 MATIC
0x243bd014eb64266c316e4f83da5cf25b7b5684e66f9c6dd7061d4b93958f3439288901732022-05-28 23:23:39123 days 11 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a405.657010847509250048 MATIC
0x65553fd1fab2c07665516f22020f26cd755fd8717b9b070f99212a7b74233a87288875902022-05-28 21:54:51123 days 13 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a401.640604799514116096 MATIC
0x3005d9d6613766673782f35ae27b93a31c55fd4ad07ccf23545e74a990004b59288873212022-05-28 21:45:37123 days 13 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a401.640604799514116096 MATIC
0xe9328d5176df65e036b85c5604a6466bb67f5edd42bd01eea15ab06fec93457d288867282022-05-28 21:25:15123 days 13 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a397.663965148033777664 MATIC
0xbd65b6bbbf6b233601be5b2386669a32a96868bddc11e41fc7d5031406798833288864902022-05-28 21:17:03123 days 13 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a397.663965148033777664 MATIC
0x01872baf955ee1bd6bd19ec6ce5c8eb590526ee9365fbc04ba63fbe03182a525288858372022-05-28 20:54:37123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a393.726698166370041856 MATIC
0x0e840fab7a39937e3e097b16e6c0c6c57e53c60f57c993b32d04a9650e438bc3288857282022-05-28 20:50:51123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a393.726698166370041856 MATIC
0xaf131ae06b26238c3bc7b9bb50e451ceb83373d2af0875ec9e3060ab0c9d612f288856672022-05-28 20:48:45123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a389.828414026108960768 MATIC
0x71a259d4ffd2356a85527333969118ee060cc85ced16ee5b4b95b6d2dce6c63e288855662022-05-28 20:45:15123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a389.828414026108960768 MATIC
0xac4b6973d910b4fa0b05c64a2b10d74417f54a9bbae62b2d12215d3ec4996653288855452022-05-28 20:44:33123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a389.828414026108960768 MATIC
0x8aa2bc02c3176cdd6aa702d2096afbe17cc8b5da929b9a5b0d70f4cb31eb142f288853312022-05-28 20:37:13123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a385.968726758523731968 MATIC
0xf5ec68f7ddaca02161f6e6b436b310ff79317b2167070e5e5218c3408ecf8166288852612022-05-28 20:34:49123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a385.968726758523731968 MATIC
0xe4f57b82e5f7e1224db43fda4ab27382eb5c4b6f569176596376a1249f52fea8288852052022-05-28 20:32:53123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a382.147254216360132608 MATIC
0x53dcf2028900c2f6d1d700aee1b24083513540f8589569e053b72b6425d312b5288851032022-05-28 20:29:16123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a382.147254216360132608 MATIC
0xd386f66fc113e4e96efbc94c607bae240b9d8f6d705308df94126073a61a39ae288850752022-05-28 20:28:20123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a382.147254216360132608 MATIC
0xfc903ab63b07696d494797252a9bb3cc8ddd62b7fe39ca56a9c012d72a4d654e288850412022-05-28 20:27:08123 days 14 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a382.147254216360132608 MATIC
0xa66231d2972bf56e3ddca8c5ebe04d76678eb71fafd9d303480ece3c5b9f5d1a288844622022-05-28 20:07:14123 days 15 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a378.363618036000096256 MATIC
0x6855b612e189483be899d9c0cd0475cb1b473f7aa77f9351e4ac68c51241602f288843652022-05-28 20:03:56123 days 15 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a374.617443600000090112 MATIC
0x10c6e903802badf24449b345633c0bc7221f2871aa53fadbe740bb94c4380108288834352022-05-28 19:31:54123 days 15 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a370.908360000000098304 MATIC
0xa4c9729e6d155d94769b51276898b389c20b3bb18f826dd90e1b6fa809f58aec288833702022-05-28 19:29:40123 days 15 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a367.236000000000065536 MATIC
0x39f0f2ec20b162af302e9e4a198c3809e101a893b9f0c42a33e4bdd1278da192288832582022-05-28 19:25:48123 days 15 hrs ago 0x424e231fbd3f74ab9d85d1cf7de2d242d96d8ea40x0d83573a788db47a7835053ce7a71ab2a9e3257a363.6 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OpenBiSea

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
byzantium EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 16 : Context.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
contract Context {
    constructor () internal { }
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode
        return msg.data;
    }
}

File 2 of 16 : OpenBiSea.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;

import "./access/PoolRoles.sol";
import "./interface/IPoolRegistry.sol";
import "./interface/IAssetsManageTeam.sol";
import "./interface/IERC20.sol";
import "./access/PoolRoles.sol";
import "./math/SafeMath.sol";
//import "./interface/IERC721.sol";
//import "./interface/IERC1155.sol";
import "./utils/EnumerableUintSet.sol";
import "./interface/IOpenBiSeaAuction.sol";
import "./access/TeamRole.sol";

//import "./interface/IERC721Receiver.sol";
//import "./interface/IERC1155Receiver.sol";

contract OpenBiSea is PoolRoles,TeamRole  {
    using SafeMath for uint256;
    using EnumerableUintSet for EnumerableUintSet.UintSet;

    event Deposit(address indexed from, uint256 value);
    event DebugWithdrawLPartner(address sender,address owner, uint256 getDepositLengthSender, uint256 getDepositLengthOwner,uint256 totalAmountReturn,uint256 indexesDepositLength,uint256 balanceThis);
    string private _name;
    bool private _isPublicPool = true;
    address private _auction;
    address private _busdContract;
    address private _token;
    uint256 private _lockPeriod;
    uint256 private _rate;
    uint256 private _poolValueUSD = 0;
    uint256 private _poolValue = 0;
    string private _proofOfValue = "nothing";
    uint256 private _depositFixedFee;
    uint256 private _referralDepositFee;
    uint256 private _auctionCreationFeeMultiplier;
    uint256 private _auctionContractFeeMultiplier;
    uint256 private _totalIncome;
    uint256 private _premiumFee;
    struct DepositToPool {
        uint256 amount;          // Amount of funds deposited
        uint256 time;            // Deposit time
        uint256 lock_period;     // Asset lock time
        bool refund_authorize;   // Are assets unlocked for withdrawal
        uint256 amountWithdrawal;
        address investedToken;
    }
    mapping(address => DepositToPool[]) private _deposites;
    mapping(address => address) private _referrals;

//    mapping(address => uint256) private _consumersRevenueAmount;

    IAssetsManageTeam private _assetsManageTeam;
    IPoolRegistry private _poolRegistry;
    modifier onlyAdmin(address sender) {
        if(hasRole(GENERAL_PARTNER_ROLE, sender) || hasRole(SUPER_ADMIN_ROLE, sender) || _poolRegistry.isTeam(sender)) {
            _;
        } else {
            revert("The sender does not have permission");
        }
    }
    address private _tokenForTokensale;
    uint256 private _initialBalance;
    constructor (
        address tokenForTokensale,
//        string memory name,
//        uint256 locked,
//        uint256 depositFixedFee,
//        uint256 referralDepositFee,
//        uint256 auctionCreationFeeMultiplier,
//        uint256 auctionContractFeeMultiplier,
        address superAdmin,
        address gPartner,
        address lPartner,
        address team,
        address poolRegistry,
        address returnInvestmentLpartner,
        IAssetsManageTeam assetsManageTeam,
        uint256 initialBalance,
        address busdContract
    ) public {
//        _name = name;
        _tokenForTokensale = tokenForTokensale;
//        _lockPeriod = locked;
//        _depositFixedFee = depositFixedFee;
//        _referralDepositFee = referralDepositFee;
//        _auctionCreationFeeMultiplier = auctionCreationFeeMultiplier;
//        _auctionContractFeeMultiplier = auctionContractFeeMultiplier;
        _assetsManageTeam = assetsManageTeam;
        _poolRegistry = IPoolRegistry(poolRegistry);
        _initialBalance = initialBalance;
        _busdContract = busdContract;
        PoolRoles.addAdmin(SUPER_ADMIN_ROLE, msg.sender);
        PoolRoles.addAdmin(SUPER_ADMIN_ROLE, superAdmin);
        PoolRoles.addAdmin(SUPER_ADMIN_ROLE, poolRegistry);
        PoolRoles.finalize();
        grantRole(GENERAL_PARTNER_ROLE, gPartner);
        grantRole(LIMITED_PARTNER_ROLE, lPartner);
        grantRole(STARTUP_TEAM_ROLE, team);
        grantRole(POOL_REGISTRY, poolRegistry);
        grantRole(RETURN_INVESTMENT_LPARTNER, returnInvestmentLpartner);
    }

    function _updatePool(
        string calldata name,
        bool isPublicPool,
        address token,
        uint256 locked,
        uint256 depositFixedFee,
        uint256 referralDepositFee,
        uint256 auctionCreationFeeMultiplier,
        uint256 auctionContractFeeMultiplier
    ) external onlyPoolRegistry returns (bool) {
        _name = name;
        _isPublicPool = isPublicPool;
        _lockPeriod = locked;
        _depositFixedFee = depositFixedFee;
        _referralDepositFee = referralDepositFee;
        _auctionCreationFeeMultiplier = auctionCreationFeeMultiplier;
        _auctionContractFeeMultiplier = auctionContractFeeMultiplier;
        return true;
    }

    function getInfoPool() public view returns( string memory name,bool isPublicPool,address tokenForTokensale,uint256 locked,uint256 initialBalance)
    {
        return ( _name,_isPublicPool,_tokenForTokensale,_lockPeriod, _initialBalance);
    }
    receive() external payable {}
    function getDeposit(address owner, uint256 index) public view returns(uint256 amount, uint256 time, uint256 lock_period, bool refund_authorize, uint256 amountWithdrawal, address investedToken) {
        return ( _deposites[owner][index].amount, _deposites[owner][index].time,_deposites[owner][index].lock_period, _deposites[owner][index].refund_authorize, _deposites[owner][index].amountWithdrawal, _deposites[owner][index].investedToken);
    }
    function getDepositLength(address owner) public view returns(uint256) {
        return (_deposites[owner].length);
    }
    function getReferral(address lPartner) public view returns (address) {
        return _referrals[lPartner];
    }
    function getInfoPoolFees() public view returns(uint256 rate, uint256 depositFixedFee, uint256 referralDepositFee, uint256 auctionCreationFeeMultiplier, uint256 auctionContractFeeMultiplier, uint256 totalIncome, uint256 premiumFee)
    {
        return (_rate, _depositFixedFee, _referralDepositFee, _auctionCreationFeeMultiplier, _auctionContractFeeMultiplier, _totalIncome, _premiumFee);
    }
    function _approveWithdrawLpartner(address lPartner, uint256 index, uint256 amount, address investedToken) external onlyReturnsInvestmentLpartner returns (bool) {
        _deposites[lPartner][index].refund_authorize = true;
        _deposites[lPartner][index].amountWithdrawal = amount;
        _deposites[lPartner][index].investedToken = investedToken;
        return true;
    }
    function _depositPoolRegistry(address sender, uint256 amount, uint256 feesMultipier) external onlyPoolRegistry returns (bool) {
        require(hasRole(LIMITED_PARTNER_ROLE, sender), "InvestmentPool: the sender does not have permission");
        return _deposit(sender, amount, feesMultipier);
    }
    function _withdrawTeam (address payable sender, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(STARTUP_TEAM_ROLE, sender), "InvestmentPool: the sender does not have permission");
        _assetsManageTeam._withdraw(address(this), sender, amount);
        sender.transfer(amount);
        return true;
    }
    function _withdrawTokensToStartup(address payable sender,address token, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(STARTUP_TEAM_ROLE, sender), "InvestmentPool: the sender does not have permission");
        _assetsManageTeam._withdrawTokensToStartup(address(this),token, sender, amount);
        IERC20(token).transfer(sender, amount);
        return true;
    }
    function _returnsInTokensFromTeam(address payable sender,address token, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(STARTUP_TEAM_ROLE, sender), "InvestmentPool: the sender does not have permission");
        IERC20(token).transferFrom(sender, address(this), amount);
        return true;
    }
    function _withdrawLPartner(address payable sender) external onlyPoolRegistry returns (bool, uint256, address) {
        require(hasRole(LIMITED_PARTNER_ROLE, sender), "InvestmentPool: the sender does not have permission");
        uint256 totalAmountReturn = 0;
        address token = address(0);
        uint256 lengthSender = getDepositLength(sender);
        bool result = false;
        for (uint256 i = 0; i < lengthSender; i++) {
            DepositToPool storage deposit = _deposites[sender][i];
            if (deposit.refund_authorize) {
                token = deposit.investedToken;
                if (deposit.amountWithdrawal > 0) {
                    if (token == address(0)) {
                        sender.transfer(deposit.amountWithdrawal);
                        totalAmountReturn = totalAmountReturn.add(deposit.amountWithdrawal);
                    } else {
                        IERC20(token).transfer(sender, deposit.amountWithdrawal);
                    }
                }
                _deposites[sender][i].refund_authorize = false;
                _deposites[sender][i].amountWithdrawal = 0;
            }
        }
        return (result,totalAmountReturn,token);
    }
    function _withdrawSuperAdmin(address payable sender,address token, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(SUPER_ADMIN_ROLE, sender), "InvestmentPool: the sender does not have permission");
        if (amount > 0) {
            if (token == address(0)) {
                sender.transfer(amount);
                return true;
            } else {
                IERC20(token).transfer(sender, amount);
                return true;
            }
        }
        return false;
    }
    function _activateDepositToPool() external onlyPoolRegistry returns (bool) {
        require(!_isPublicPool, "InvestmentPool: the pool is already activated");
        _isPublicPool = true;
        return true;
    }
    function _disactivateDepositToPool() external onlyPoolRegistry returns (bool) {
        require(_isPublicPool, "InvestmentPool: the pool is already deactivated");
        _isPublicPool = false;
        return true;
    }
    function _setReferral(address sender, address lPartner, address referral) external onlyPoolRegistry onlyAdmin(sender) returns (bool) {
        _referrals[lPartner] = referral;
        return true;
    }

    function _setRate(uint256 rate) external onlyPoolRegistry returns (bool) {
        _rate = rate;
        return true;
    }
    function _setPoolValues(uint256 poolValueUSD,uint256 poolValue,string calldata proofOfValue) external onlyPoolRegistry returns (bool) {
        _poolValueUSD = poolValueUSD;
        _poolValue = poolValue;
        _proofOfValue = proofOfValue;
        return true;
    }
    function _setAuction(address newAuction) public onlyTeam {
        _auction = newAuction;
    }
    function auction() public view returns (address)  {
        return _auction;
    }
    function getPoolValues() public view returns(uint256 poolValueUSD, uint256 poolValue, string memory proofOfValue)
    {
        return (_poolValueUSD, _poolValue, _proofOfValue);
    }
    function _depositInvestmentInTokensToPool(address payable sender, uint256 amount, address token) external onlyPoolRegistry returns (bool) {
        require(hasRole(LIMITED_PARTNER_ROLE, sender), "InvestmentPool: the sender does not have permission");
        uint256 depositFee = amount.mul(_depositFixedFee).div(100);
        uint256 depositFeeReferrer = amount.mul(_referralDepositFee).div(100);
        uint256 totalDeposit = 0;
        if (_referrals[sender] != address(0)) {
            totalDeposit = amount.sub(depositFee).sub(depositFeeReferrer);
        } else {
            totalDeposit = amount.sub(depositFee);
        }
        _deposites[sender].push(DepositToPool(totalDeposit, block.timestamp, _lockPeriod, false, 0, token));
        return true;
    }
    uint256 private initialPriceInt = 18446744073709551615;// 88800000000000000 - 0.0888 BNB one token, 18446744073709551615 - MATIC one token
    function getInitialPriceInt() public view returns (uint256)  {
        return initialPriceInt;
    }

//    uint256 private _tokensaleTotalAmount = (10 ** uint256(18)).mul(8000);// 8000 obs
    uint256 private _tokensaleTotalSold;

    function purchaseTokensQuantityFor(uint256 amount) public view returns (uint256,uint256) {
        uint256 delta = _initialBalance.sub(_tokensaleTotalSold);
        uint256 newPrice = initialPriceInt.mul(_initialBalance).div(delta);
        return (amount.mul(10 ** uint256(18)).div(newPrice),_initialBalance.sub(_tokensaleTotalSold));
    }

    function purchaseTokens() public payable returns (uint256) {
        require(msg.value > 100000000000000000, "TokensalePool: minimal purchase 0.1BNB.");
        uint256 amountTokens;
        uint256 balance;
        (amountTokens,balance) = purchaseTokensQuantityFor(msg.value);
        require(amountTokens > 0, "TokensalePool: we can't sell 0 tokens.");
        require(amountTokens < balance.div(3), "TokensalePool: we can't sell more than 30% from one transaction. Please decrease investment amount.");
        IERC20(_tokenForTokensale).transfer(msg.sender, amountTokens);
        _tokensaleTotalSold = _tokensaleTotalSold.add(amountTokens);
        return amountTokens;
    }
    uint256 constant private multiplierDefault = 100000;

    function _deposit(address sender, uint256 amount, uint256 feesMultipier) private returns (bool) {
        require(_isPublicPool, "InvestmentPool: pool deposit blocked");
        address payable team = payable(getRoleMember(GENERAL_PARTNER_ROLE,0));
        uint256 depositFee = amount.mul(_depositFixedFee).div(100).div(feesMultipier).mul(multiplierDefault);
        uint256 depositFeeReferrer = amount.mul(_referralDepositFee).div(100).div(feesMultipier).mul(multiplierDefault);
        uint256 totalDeposit = 0;
        if (_referrals[sender] != address(0)) {
            payable(_referrals[sender]).transfer(depositFeeReferrer);
            team.transfer(depositFee);
            totalDeposit = amount.sub(depositFee).sub(depositFeeReferrer);
        } else {
            team.transfer(depositFee);
            totalDeposit = amount.sub(depositFee);
        }
        _deposites[sender].push(DepositToPool(totalDeposit, block.timestamp, _lockPeriod, false, 0, address(0)));
        _totalIncome = _totalIncome.add(amount);
        emit Deposit(sender, amount);
        return true;
    }
    function _transferGeneralPartner(uint256 amount) private returns (bool) {
        address payable gPartner = payable(getMembersRole(GENERAL_PARTNER_ROLE)[0]);
        gPartner.transfer(amount);
        return true;
    }
    function _getTokenAmount(uint256 weiAmount) public view returns (uint256) {
        uint8 DECIMALS = IERC20(_token).decimals();
        return (weiAmount.mul(_rate)).div(10 ** uint256(DECIMALS));
    }
    function isContract(address _addr) private view returns (bool is_contract) {
        uint length;
        assembly {
            length := extcodesize(_addr)
        }
        return (length>0);
    }

    function _removeIndexArray(uint256 index, DepositToPool[] storage array) internal virtual {
        for(uint256 i = index; i < array.length-1; i++) {
            array[i] = array[i+1];
        }
        array.pop();
    }

    function contractsNFTWhitelisted() public view returns (address[] memory) {
        return IOpenBiSeaAuction(_auction).contractsNFTWhitelisted();
    }

    function whitelistContractCreator( address _contractNFT ) public payable {
        require(msg.value >= initialPriceInt.mul(_auctionCreationFeeMultiplier), "OpenBiSea: you must send minimal amount or more");
        IOpenBiSeaAuction(_auction).whitelistContractCreator(_contractNFT,msg.value);
        _totalIncome = _totalIncome.add(msg.value);
    }

    function whitelistContractCreatorTokens( address _contractNFT ) public {
        uint256 amount = (10 ** uint256(18)).mul(_auctionCreationFeeMultiplier);
        IERC20(_tokenForTokensale).transferFrom(msg.sender,address(this),amount);
        _totalIncome = _totalIncome.add(initialPriceInt.mul(amount).div(10 ** uint256(18)));
        IOpenBiSeaAuction(_auction).whitelistContractCreator(_contractNFT,initialPriceInt.mul(amount));
    }
    function createAuction( address _contractNFT, uint256 _tokenId, uint256 _price,uint256 _deadline, bool _isERC1155, bool _isUSD ) public {
        IOpenBiSeaAuction(_auction).createAuction(_contractNFT,_tokenId, _price, _deadline,_isERC1155, msg.sender, _isUSD);
    }
    function bidUSD( address _contractNFT,uint256 _tokenId, uint256 _bidAmount, bool _isERC1155 ) public {
        IERC20(_busdContract).transferFrom(msg.sender,address(this),_bidAmount);
        bool isWin;
        uint256 amountTransferBack;
        address auctionLatestBidderOrSeller;
        bool isUSD;
        (isWin,amountTransferBack,auctionLatestBidderOrSeller,isUSD) = IOpenBiSeaAuction(_auction).bid( _contractNFT, _tokenId, _bidAmount, _isERC1155, msg.sender );
        if (isWin) {
            if (isUSD) {
                uint256 depositFee = _bidAmount.mul(_depositFixedFee).div(100);
                uint256 depositFeeReferrer = _bidAmount.mul(_referralDepositFee).div(100);
                uint256 totalSellerAmount = _bidAmount.sub(depositFee);
                if (_referrals[msg.sender] != address(0)) {
                    totalSellerAmount = totalSellerAmount.sub(depositFeeReferrer);
                    IERC20(_busdContract).transfer(_referrals[msg.sender],depositFeeReferrer);
                    IERC20(_busdContract).transfer(getRoleMember(GENERAL_PARTNER_ROLE,0),depositFee);
                } else {
                    IERC20(_busdContract).transfer(getRoleMember(GENERAL_PARTNER_ROLE,0),depositFee);
                }
                IERC20(_busdContract).transfer(auctionLatestBidderOrSeller,totalSellerAmount);
            }
        } else {
            if (amountTransferBack > 0 && isUSD) {
                IERC20(_busdContract).transfer(auctionLatestBidderOrSeller,amountTransferBack);
            }
        }
    }
    function bid( address _contractNFT,uint256 _tokenId, bool _isERC1155 ) public payable {
        bool isWin;
        uint256 amountTransferBack;
        address auctionLatestBidderOrSeller;
        bool isUSD;
        (isWin,amountTransferBack,auctionLatestBidderOrSeller,isUSD) = IOpenBiSeaAuction(_auction).bid( _contractNFT, _tokenId, msg.value, _isERC1155, msg.sender );
        if (isWin) {
            if (!isUSD) {
                uint256 depositFee = msg.value.mul(_depositFixedFee).div(100);
                uint256 depositFeeReferrer = msg.value.mul(_referralDepositFee).div(100);
                uint256 totalSellerAmount = msg.value.sub(depositFee);
                if (_referrals[msg.sender] != address(0)) {
                    totalSellerAmount = totalSellerAmount.sub(depositFeeReferrer);
                    payable(_referrals[msg.sender]).transfer(depositFeeReferrer);
                    payable(getRoleMember(GENERAL_PARTNER_ROLE,0)).transfer(depositFee);
                } else {
                    payable(getRoleMember(GENERAL_PARTNER_ROLE,0)).transfer(depositFee);
                }
                payable(auctionLatestBidderOrSeller).transfer(totalSellerAmount);
            }
        } else {
            if (amountTransferBack > 0 && !isUSD) {
                payable(auctionLatestBidderOrSeller).transfer(amountTransferBack);
            }
        }
    }
    function cancelAuction( address _contractNFT, uint256 _tokenId, bool _isERC1155 ) public {
        IOpenBiSeaAuction(_auction).cancelAuction(_contractNFT,_tokenId,msg.sender,_isERC1155);
    }
    function checkTokensForClaim( address customer, uint256 priceMainToUSD) public view returns (uint256,uint256,uint256,bool) {
        return IOpenBiSeaAuction(_auction).checkTokensForClaim(customer,priceMainToUSD);
    }
    event ClaimFreeTokens(uint256 amount, address investor,bool result);
    function claimFreeTokens() public returns (bool) {
        uint256 priceMainToUSD;
        uint8 decimals;
        (priceMainToUSD,decimals) = _poolRegistry.getOracleContract().getLatestPrice();

        uint256 tokensToPay;
        (tokensToPay,,,)= checkTokensForClaim(msg.sender,priceMainToUSD.div(10 ** uint256(decimals)));
        bool result = false;
        if (tokensToPay > 0) {
            IERC20(_tokenForTokensale).transfer(msg.sender, tokensToPay);
            IOpenBiSeaAuction(_auction).setConsumersReceivedMainTokenLatestDate(msg.sender);
            result = true;
        }
        emit ClaimFreeTokens(tokensToPay,msg.sender,result);
        return result;
    }
}

File 3 of 16 : AccessControl.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;

import "../utils/EnumerableSet.sol";
import "../GSN/Context.sol";

contract AccessControl is Context {
    using EnumerableSet for EnumerableSet.AddressSet;
    struct RoleData {
        EnumerableSet.AddressSet members;
        bytes32 adminRole;
    }
    mapping (bytes32 => RoleData) private _roles;
    mapping (bytes32 => address[]) private _addressesRoles;
    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
    function hasRole(bytes32 role, address account) public view returns (bool) {
        return _roles[role].members.contains(account);
    }
    function getRoleMemberCount(bytes32 role) public view returns (uint256) {
        return _roles[role].members.length();
    }
   function getRoleMember(bytes32 role, uint256 index) public view returns (address) {
        return _roles[role].members.at(index);
    }
    function getRoleAdmin(bytes32 role) public view returns (bytes32) {
        return _roles[role].adminRole;
    }
    function getMembersRole(bytes32 role) public view returns (address[] memory Accounts) {
        return _addressesRoles[role];
    }
    function grantRole(bytes32 role, address account) public virtual {
        require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant");
        _grantRole(role, account);
    }
    function revokeRole(bytes32 role, address account) public virtual {
        require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke");

        _revokeRole(role, account);
    }
    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }
    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        _roles[role].adminRole = adminRole;
    }
    function _grantRole(bytes32 role, address account) private {
        if (_roles[role].members.add(account)) {
            _addressesRoles[role].push(account);
            emit RoleGranted(role, account, _msgSender());
        }
    }
    function _revokeRole(bytes32 role, address account) private {
        if (_roles[role].members.remove(account)) {
            for (uint256 i; i < _addressesRoles[role].length; i++) {
                if (_addressesRoles[role][i] == account) {
                    _removeIndexArray(i, _addressesRoles[role]);
                    break;
                }
            }
            emit RoleRevoked(role, account, _msgSender());
        }
    }
    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
        for(uint256 i = index; i < array.length-1; i++) {
            array[i] = array[i+1];
        }
        array.pop();
    }
}

File 4 of 16 : PoolRoles.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./AccessControl.sol";
import "../ownership/Ownable.sol";
import "../interface/IRoleModel.sol";
contract PoolRoles is AccessControl, Ownable, IRoleModel {
    bool private _finalized = false;
    event Finalized();
    modifier onlyGPartner() {
        require(hasRole(GENERAL_PARTNER_ROLE, msg.sender), "Roles: caller does not have the general partner role");
        _;
    }
    modifier onlyLPartner() {
        require(hasRole(LIMITED_PARTNER_ROLE, msg.sender), "Roles: caller does not have the limited partner role");
        _;
    }
    modifier onlyStartupTeam() {
        require(hasRole(STARTUP_TEAM_ROLE, msg.sender), "Roles: caller does not have the team role");
        _;
    }
    modifier onlyPoolRegistry() {
        require(hasRole(POOL_REGISTRY, msg.sender), "Roles: caller does not have the pool regystry role");
        _;
    }
    modifier onlyReturnsInvestmentLpartner() {
        require(hasRole(RETURN_INVESTMENT_LPARTNER, msg.sender), "Roles: caller does not have the return invesment lpartner role");
        _;
    }
    modifier onlyOracle() {
        require(hasRole(ORACLE, msg.sender), "Roles: caller does not have oracle role");
        _;
    }
    constructor () public {
        _setRoleAdmin(GENERAL_PARTNER_ROLE, SUPER_ADMIN_ROLE);
        _setRoleAdmin(LIMITED_PARTNER_ROLE, SUPER_ADMIN_ROLE);
        _setRoleAdmin(STARTUP_TEAM_ROLE, SUPER_ADMIN_ROLE);
        _setRoleAdmin(POOL_REGISTRY, SUPER_ADMIN_ROLE);
        _setRoleAdmin(RETURN_INVESTMENT_LPARTNER, SUPER_ADMIN_ROLE);
        _setRoleAdmin(ORACLE, SUPER_ADMIN_ROLE);
    }
    function addAdmin(bytes32 role, address account) public onlyOwner returns (bool) {
        require(!_finalized, "ManagerRole: already finalized");

        _setupRole(role, account);
        return true;
    }
    function finalize() public onlyOwner {
        require(!_finalized, "ManagerRole: already finalized");
        _finalized = true;
        emit Finalized();
    }
}

File 5 of 16 : TeamRole.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./lib/Roles.sol";
contract TeamRole {
    using Roles for Roles.Role;
    event TeamAdded(address indexed account);
    event TeamRemoved(address indexed account);
    event OracleAdded(address indexed account);
    event OracleRemoved(address indexed account);
    Roles.Role private _team;
    Roles.Role private _oracle;
    constructor () internal {
        _addTeam(msg.sender);
    }
    modifier onlyTeam() {
        require(isTeam(msg.sender), "TeamRole: caller does not have the Team role");
        _;
    }
    modifier onlyRegistryOracle() {
        require(isOracle(msg.sender), "TeamRole: caller does not have the Oracle role");
        _;
    }

    function isOracle(address account) public view returns (bool) {
        return _oracle.has(account);
    }
    function getOracleAddresses() public view returns (address[] memory) {
        return _oracle.accounts;
    }

    function addOracle(address account) public onlyTeam {
        _addOracle(account);
    }
    function _addOracle(address account) internal {
        _oracle.add(account);
        emit OracleAdded(account);
    }
    function renounceOracle() public {
        _removeOracle(msg.sender);
    }
    function _removeOracle(address account) internal {
        _oracle.remove(account);
        emit OracleRemoved(account);
    }

    function isTeam(address account) public view returns (bool) {
        return _team.has(account);
    }
    function getTeamAddresses() public view returns (address[] memory) {
        return _team.accounts;
    }
    function addTeam(address account) public onlyTeam {
        _addTeam(account);
    }
    function renounceTeam() public onlyTeam {
        _removeTeam(msg.sender);
    }
    function _addTeam(address account) internal {
        _team.add(account);
        emit TeamAdded(account);
    }
    function _removeTeam(address account) internal {
        _team.remove(account);
        emit TeamRemoved(account);
    }
}

File 6 of 16 : Roles.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library Roles {
    struct Role {
        address[] accounts;
        mapping (address => bool) bearer;
        mapping (bytes32 => uint256) _indexes;
    }
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
        role.accounts.push(account);
        role._indexes[bytes32(uint256(account))] = role.accounts.length;
    }
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        uint256 valueIndex = role._indexes[bytes32(uint256(account))];
        if (valueIndex != 0) { // Equivalent to contains()
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = role.accounts.length - 1;
            address lastValue = role.accounts[lastIndex];
            role.accounts[toDeleteIndex] = lastValue;
            role.accounts.pop();
            delete role._indexes[bytes32(uint256(account))];
        }
//        for (uint256 i; i < role.accounts.length; i++) {
//            if (role.accounts[i] == account) {
//                _removeIndexArray(i, role.accounts);
//                break;
//            }
//        }
        role.bearer[account] = false;
    }
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
//    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
//        for(uint256 i = index; i < array.length-1; i++) {
//            array[i] = array[i+1];
//        }
//        array.pop();
//    }
}

File 7 of 16 : IAssetsManageTeam.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IAssetsManageTeam {
    function _depositToken(address pool, address team, address token, uint256 amount) external returns (bool);
    function _withdraw(address pool, address team, uint256 amount) external returns (bool);
    function _withdrawTokensToStartup(address pool,address token, address team, uint256 amount) external returns (bool);
    function _request(bool withdraw, address pool, address team, uint256 maxValue) external returns(bool);
    function _requestTokensWidthdrawalFromStartup(address pool, address token, address team, uint256 maxValue) external returns(bool);
    function _approve(address pool, address team, address owner) external returns(bool);
    function _approveTokensWidthdrawalFromStartup(address pool, address token, address team, address owner) external returns(bool);
    function _disapprove(address pool, address team, address owner) external returns(bool);
    function _lock(address pool, address team, address owner) external returns(bool);
    function _unlock(address pool, address team, address owner) external returns(bool);
    function addManager(address account) external;
    function getPerformedOperationsLength(address pool, address owner) external view returns(uint256 length);
    function getPerformedOperations(address pool, address owner, uint256 index) external view returns(address token, uint256 amountToken, uint256 withdraw, uint256 time);
    function getRequests(address pool) external view returns(address[] memory);
    function getApproval(address pool) external view returns(address[] memory);
    function getRequestTeamAddress(address pool, address team) external view returns(bool lock, uint256 maxValueToken, uint256 madeValueToken, uint256 maxValue, uint256 madeValue);
    function getApproveTeamAddress(address pool, address team) external view returns(bool lock, uint256 maxValueToken, uint256 madeValueToken, uint256 maxValue, uint256 madeValueE);
}

File 8 of 16 : IERC20.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function decimals() external view returns (uint8);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 9 of 16 : IOpenBiSeaAuction.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IOpenBiSeaAuction {
    function contractsNFTWhitelisted() external view returns (address[] memory);
    function whitelistContractCreator( address _contractNFT, uint256 fee ) external payable;
    function createAuction( address _contractNFT, uint256 _tokenId, uint256 _price,uint256 _deadline, bool _isERC1155, address _sender, bool _isUSD ) external;
    function bid( address _contractNFT,uint256 _tokenId, uint256 _price, bool _isERC1155, address _sender ) external returns (bool, uint256, address, bool);
    function cancelAuction( address _contractNFT, uint256 _tokenId, address _sender, bool _isERC1155 ) external;
    function checkTokensForClaim( address customer, uint256 priceMainToUSD) external view returns (uint256,uint256,uint256,bool);
    function setConsumersReceivedMainTokenLatestDate(address _sender) external;
}

File 10 of 16 : IOracle.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IOracle {
    function getLatestPrice() external view returns ( uint256,uint8);
    function getCustomPrice(address aggregator) external view returns (uint256,uint8);
}

File 11 of 16 : IPoolRegistry.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./IOracle.sol";
interface IPoolRegistry {
    function isTeam(address account) external view returns (bool);
    function getTeamAddresses() external view returns (address[] memory);
    function getOracleContract() external view returns (IOracle);
    function feesMultipier(address sender) external view returns (uint256);
}

File 12 of 16 : IRoleModel.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
contract IRoleModel {
    bytes32 public constant SUPER_ADMIN_ROLE = keccak256("SUPER_ADMIN_ROLE");
    bytes32 public constant GENERAL_PARTNER_ROLE = keccak256("GENERAL_PARTNER_ROLE");
    bytes32 public constant LIMITED_PARTNER_ROLE = keccak256("LIMITED_PARTNER_ROLE");
    bytes32 public constant STARTUP_TEAM_ROLE = keccak256("STARTUP_TEAM_ROLE");
    bytes32 public constant POOL_REGISTRY = keccak256("POOL_REGISTRY");
    bytes32 public constant RETURN_INVESTMENT_LPARTNER = keccak256("RETURN_INVESTMENT_LPARTNER");
    bytes32 public constant ORACLE = keccak256("ORACLE");
    bytes32 public constant REFERER_ROLE = keccak256("REFERER_ROLE");
}

File 13 of 16 : SafeMath.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library SafeMath {
     function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
         if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

File 14 of 16 : Ownable.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "../GSN/Context.sol";
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    /**
    * @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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 15 of 16 : EnumerableSet.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library EnumerableSet {
    struct Set {
        bytes32[] _values;
        address[] _collection;
        mapping (bytes32 => uint256) _indexes;
    }
    function _add(Set storage set, bytes32 value, address addressValue) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._collection.push(addressValue);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];
        if (valueIndex != 0) { // Equivalent to contains(set, value)
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;
            bytes32 lastValue = set._values[lastIndex];
            set._values[toDeleteIndex] = lastValue;
            set._values.pop();

            address lastvalueAddress = set._collection[lastIndex];
            set._collection[toDeleteIndex] = lastvalueAddress;
            set._collection.pop();

            set._indexes[lastValue] = toDeleteIndex + 1; // All indexes are 1-based
            delete set._indexes[value];
//            for(uint256 i = 0; i < set._collection.length; i++) {
//                if (set._collection[i] == addressValue) {
//                    _removeIndexArray(i, set._collection);
//                    break;
//                }
//            }
            return true;
        } else {
            return false;
        }
    }
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }
    function _collection(Set storage set) private view returns (address[] memory) {
        return set._collection;    
    }
//    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
//        for(uint256 i = index; i < array.length-1; i++) {
//            array[i] = array[i+1];
//        }
//        array.pop();
//    }
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }
    struct AddressSet {
        Set _inner;
    }
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)), value);
    }
    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }
    function collection(AddressSet storage set) internal view returns (address[] memory) {
        return _collection(set._inner);
    }
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint256(_at(set._inner, index)));
    }
}

File 16 of 16 : EnumerableUintSet.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library EnumerableUintSet {
    struct Set {
        bytes32[] _values;
        uint256[] _collection;
        mapping (bytes32 => uint256) _indexes;
    }
    function _add(Set storage set, bytes32 value, uint256 savedValue) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._collection.push(savedValue);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];
        if (valueIndex != 0) { // Equivalent to contains(set, value)
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;
            bytes32 lastValue = set._values[lastIndex];
            set._values[toDeleteIndex] = lastValue;
            set._values.pop();

            uint256 lastvalueAddress = set._collection[lastIndex];
            set._collection[toDeleteIndex] = lastvalueAddress;
            set._collection.pop();

            set._indexes[lastValue] = toDeleteIndex + 1; // All indexes are 1-based
            delete set._indexes[value];
            return true;
        } else {
            return false;
        }
    }
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }
    function _collection(Set storage set) private view returns (uint256[] memory) {
        return set._collection;    
    }

    function _at(Set storage set, uint256 index) private view returns (uint256) {
        require(set._collection.length > index, "EnumerableSet: index out of bounds");
        return set._collection[index];
    }
    struct UintSet {
        Set _inner;
    }
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)), value);
    }
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }
    function collection(UintSet storage set) internal view returns (uint256[] memory) {
        return _collection(set._inner);
    }
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return _at(set._inner, index);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenForTokensale","type":"address"},{"internalType":"address","name":"superAdmin","type":"address"},{"internalType":"address","name":"gPartner","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"address","name":"team","type":"address"},{"internalType":"address","name":"poolRegistry","type":"address"},{"internalType":"address","name":"returnInvestmentLpartner","type":"address"},{"internalType":"contract IAssetsManageTeam","name":"assetsManageTeam","type":"address"},{"internalType":"uint256","name":"initialBalance","type":"uint256"},{"internalType":"address","name":"busdContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"bool","name":"result","type":"bool"}],"name":"ClaimFreeTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"getDepositLengthSender","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"getDepositLengthOwner","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalAmountReturn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"indexesDepositLength","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"balanceThis","type":"uint256"}],"name":"DebugWithdrawLPartner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OracleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OracleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"TeamAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"TeamRemoved","type":"event"},{"inputs":[],"name":"GENERAL_PARTNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIMITED_PARTNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL_REGISTRY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RETURN_INVESTMENT_LPARTNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STARTUP_TEAM_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPER_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_activateDepositToPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"investedToken","type":"address"}],"name":"_approveWithdrawLpartner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"_depositInvestmentInTokensToPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"feesMultipier","type":"uint256"}],"name":"_depositPoolRegistry","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_disactivateDepositToPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"_getTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_returnsInTokensFromTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAuction","type":"address"}],"name":"_setAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolValueUSD","type":"uint256"},{"internalType":"uint256","name":"poolValue","type":"uint256"},{"internalType":"string","name":"proofOfValue","type":"string"}],"name":"_setPoolValues","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"_setRate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"address","name":"referral","type":"address"}],"name":"_setReferral","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"isPublicPool","type":"bool"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"locked","type":"uint256"},{"internalType":"uint256","name":"depositFixedFee","type":"uint256"},{"internalType":"uint256","name":"referralDepositFee","type":"uint256"},{"internalType":"uint256","name":"auctionCreationFeeMultiplier","type":"uint256"},{"internalType":"uint256","name":"auctionContractFeeMultiplier","type":"uint256"}],"name":"_updatePool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"}],"name":"_withdrawLPartner","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_withdrawSuperAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_withdrawTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_withdrawTokensToStartup","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"addAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auction","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"}],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_bidAmount","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"}],"name":"bidUSD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"}],"name":"cancelAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"customer","type":"address"},{"internalType":"uint256","name":"priceMainToUSD","type":"uint256"}],"name":"checkTokensForClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFreeTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractsNFTWhitelisted","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"},{"internalType":"bool","name":"_isUSD","type":"bool"}],"name":"createAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getDeposit","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"lock_period","type":"uint256"},{"internalType":"bool","name":"refund_authorize","type":"bool"},{"internalType":"uint256","name":"amountWithdrawal","type":"uint256"},{"internalType":"address","name":"investedToken","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getDepositLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfoPool","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"isPublicPool","type":"bool"},{"internalType":"address","name":"tokenForTokensale","type":"address"},{"internalType":"uint256","name":"locked","type":"uint256"},{"internalType":"uint256","name":"initialBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfoPoolFees","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"depositFixedFee","type":"uint256"},{"internalType":"uint256","name":"referralDepositFee","type":"uint256"},{"internalType":"uint256","name":"auctionCreationFeeMultiplier","type":"uint256"},{"internalType":"uint256","name":"auctionContractFeeMultiplier","type":"uint256"},{"internalType":"uint256","name":"totalIncome","type":"uint256"},{"internalType":"uint256","name":"premiumFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInitialPriceInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getMembersRole","outputs":[{"internalType":"address[]","name":"Accounts","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPoolValues","outputs":[{"internalType":"uint256","name":"poolValueUSD","type":"uint256"},{"internalType":"uint256","name":"poolValue","type":"uint256"},{"internalType":"string","name":"proofOfValue","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lPartner","type":"address"}],"name":"getReferral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTeamAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purchaseTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"purchaseTokensQuantityFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"}],"name":"whitelistContractCreator","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"}],"name":"whitelistContractCreatorTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6002805460a060020a60ff0219169055600a805460ff191660011790556000600f81905560105560c0604052600760808190527f6e6f7468696e670000000000000000000000000000000000000000000000000060a090815262000067916011919062000d0d565b5067ffffffffffffffff601e553480156200008157600080fd5b50604051620064fa380380620064fa8339818101604052610140811015620000a857600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e0880151610100890151610120909901519798969795969495939492939192909160006200010064010000000062000648810204565b60028054600160a060020a031916600160a060020a038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080517f47454e4552414c5f504152544e45525f524f4c4500000000000000000000000081528151908190036014018120600080516020620064da83398151915282529151908190036010019020620001b291906401000000006200064d810204565b604080517f4c494d495445445f504152544e45525f524f4c4500000000000000000000000081528151908190036014018120600080516020620064da833981519152825291519081900360100190206200021691906401000000006200064d810204565b604080517f535441525455505f5445414d5f524f4c4500000000000000000000000000000081528151908190036011018120600080516020620064da833981519152825291519081900360100190206200027a91906401000000006200064d810204565b604080517f504f4f4c5f5245474953545259000000000000000000000000000000000000008152815190819003600d018120600080516020620064da83398151915282529151908190036010019020620002de91906401000000006200064d810204565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152815190819003601a018120600080516020620064da833981519152825291519081900360100190206200034291906401000000006200064d810204565b604080517f4f5241434c45000000000000000000000000000000000000000000000000000081528151908190036006018120600080516020620064da83398151915282529151908190036010019020620003a691906401000000006200064d810204565b620003ba3364010000000062000662810204565b601c8054600160a060020a03808d16600160a060020a031992831617909255601a8054868416908316179055601b8054888416908316179055601d849055600b80549284169290911691909117905560408051600080516020620064da8339815191528152905190819003601001902062000444903364010000000062001e5d620006b482021704565b5060408051600080516020620064da8339815191528152905190819003601001902062000480908a64010000000062001e5d620006b482021704565b5060408051600080516020620064da83398151915281529051908190036010019020620004bc908664010000000062001e5d620006b482021704565b50620004d564010000000062001ae4620007de82021704565b604080517f47454e4552414c5f504152544e45525f524f4c45000000000000000000000000815290519081900360140190206200051c90896401000000006200093a810204565b604080517f4c494d495445445f504152544e45525f524f4c45000000000000000000000000815290519081900360140190206200056390886401000000006200093a810204565b604080517f535441525455505f5445414d5f524f4c4500000000000000000000000000000081529051908190036011019020620005aa90876401000000006200093a810204565b604080517f504f4f4c5f5245474953545259000000000000000000000000000000000000008152905190819003600d019020620005f190866401000000006200093a810204565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a0190206200063890856401000000006200093a810204565b5050505050505050505062000daf565b335b90565b60009182526020829052604090912060030155565b6200067d60038264010000000062004472620009e382021704565b604051600160a060020a038216907f3f5f1db80208f0d453083a86e16909cecc1e95e2618d5d927c93ace22b8200fc90600090a250565b6000620006c964010000000062000648810204565b600254600160a060020a039081169116146200073557604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062006498833981519152604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615620007c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b620007d58383640100000000620009ca810204565b50600192915050565b620007f164010000000062000648810204565b600254600160a060020a039081169116146200085d57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062006498833981519152604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615620008e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b6002805460a060020a60ff021916740100000000000000000000000000000000000000001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a1565b60008281526020819052604090206003015462000973906200096464010000000062000648810204565b64010000000062000ac0810204565b620009ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062006469602f913960400191505060405180910390fd5b620009df828264010000000062000aef810204565b5050565b620009f8828264010000000062000baa810204565b1562000a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a03166000818152600183810160209081526040808420805460ff191684179055855492830186558584528184209092018054600160a060020a03191685179055845493835260029094019093529190912055565b600082815260208190526040812062000ae890836401000000006200452c62000c3082021704565b9392505050565b600082815260208190526040902062000b1790826401000000006200454162000c5082021704565b15620009df5760008281526001602081815260408320805492830181558352909120018054600160a060020a031916600160a060020a03831617905562000b6664010000000062000648810204565b600160a060020a031681600160a060020a0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000600160a060020a03821662000c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620064b86022913960400191505060405180910390fd5b50600160a060020a03166000908152600191909101602052604090205460ff1690565b600062000ae883600160a060020a03841664010000000062000c71810204565b600062000ae883600160a060020a0384168464010000000062000c89810204565b60009081526002919091016020526040902054151590565b600062000ca0848464010000000062000c71810204565b62000d0357508254600180820185556000858152602080822090930185905581860180548084018255908252838220018054600160a060020a031916600160a060020a038616179055855485825260028701909352604090209190915562000ae8565b5060009392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000d5057805160ff191683800117855562000d80565b8280016001018555821562000d80579182015b8281111562000d8057825182559160200191906001019062000d63565b5062000d8e92915062000d92565b5090565b6200064a91905b8082111562000d8e576000815560010162000d99565b6156aa8062000dbf6000396000f3fe6080604052600436106103b55760003560e060020a900480639010d07c116101eb578063d5c5e43411610111578063e89ec45f116100a4578063f66fdcca11610073578063f66fdcca14610ff9578063fd66c06714611094578063fe070e9d146110e9578063fedf51e9146110fe576103bc565b8063e89ec45f14610f35578063f14d218114610f6e578063f2fde38b14610f83578063f45efe6714610fb6576103bc565b8063d9a431b3116100e0578063d9a431b314610e69578063dae06b7214610e7e578063dca80c1914610ec1578063df5dd1a514610f02576103bc565b8063d5c5e43414610d54578063d69df4c714610db0578063d6d6878414610def578063d93f48b014610e22576103bc565b8063b463a75c11610189578063cb4ff7f211610158578063cb4ff7f214610c02578063cbc5906e14610c47578063d2f0d2a814610c5c578063d547741f14610d1b576103bc565b8063b463a75c14610b07578063bd8afbf814610b3a578063c1abd75714610bc3578063ca15c87314610bd8576103bc565b80639cf6cc70116101c55780639cf6cc701461099c5780639f2ac7f8146109c6578063a97e5c9314610a27578063b06fd88f14610a5a576103bc565b80639010d07c1461090957806391d148541461093957806394707a9514610972576103bc565b8063594ce4c7116102db5780637a99bb0a1161026e57806387ac828a1161023d57806387ac828a1461087957806389e52771146108ac5780638c533ba7146108c15780638da5cb5b146108f4576103bc565b80637a99bb0a146107c35780637d9f6db5146107ed5780637fdbc08b14610802578063878d9b7a14610845576103bc565b80636d8664e0116102aa5780636d8664e01461073d5780637330aba214610752578063770108a7146107675780637837efdc146107ae576103bc565b8063594ce4c7146106975780635ac8b005146106da5780636176dd9f146106ef5780636419bcdb14610704576103bc565b80632dc20f621161035357806338013f021161032257806338013f02146106095780633b0f0f2f1461061e5780634460bdd61461066d5780634bb278f314610682576103bc565b80632dc20f621461058b5780632f2ff15d146105b35780633049ea33146105ec5780633290ce2914610601576103bc565b8063248519141161038f57806324851914146104a4578063248a9ca3146104d7578063261fef02146105015780632726b50614610516576103bc565b8063052c09fd146103c157806316fb3c15146104265780631cda4a8d1461047d576103bc565b366103bc57005b600080fd5b3480156103cd57600080fd5b506103d661114b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104125781810151838201526020016103fa565b505050509050019250505060405180910390f35b34801561043257600080fd5b506104696004803603606081101561044957600080fd5b50600160a060020a0381358116916020810135909116906040013561126d565b604080519115158252519081900360200190f35b34801561048957600080fd5b50610492611477565b60408051918252519081900360200190f35b3480156104b057600080fd5b50610469600480360360208110156104c757600080fd5b5035600160a060020a031661149a565b3480156104e357600080fd5b50610492600480360360208110156104fa57600080fd5b50356114b3565b34801561050d57600080fd5b506104926114c8565b34801561052257600080fd5b5061054f6004803603604081101561053957600080fd5b50600160a060020a0381351690602001356114fd565b6040805196875260208701959095528585019390935290151560608501526080840152600160a060020a031660a0830152519081900360c00190f35b6105b1600480360360208110156105a157600080fd5b5035600160a060020a03166116a3565b005b3480156105bf57600080fd5b506105b1600480360360408110156105d657600080fd5b5080359060200135600160a060020a031661179e565b3480156105f857600080fd5b5061046961180d565b6104926118d1565b34801561061557600080fd5b50610492611a5c565b34801561062a57600080fd5b506106516004803603602081101561064157600080fd5b5035600160a060020a0316611a91565b60408051600160a060020a039092168252519081900360200190f35b34801561067957600080fd5b50610492611aaf565b34801561068e57600080fd5b506105b1611ae4565b3480156106a357600080fd5b50610469600480360360608110156106ba57600080fd5b50600160a060020a03813581169160208101359091169060400135611c24565b3480156106e657600080fd5b50610492611d69565b3480156106fb57600080fd5b50610469611d9e565b34801561071057600080fd5b506104696004803603604081101561072757600080fd5b5080359060200135600160a060020a0316611e5d565b34801561074957600080fd5b50610492611f52565b34801561075e57600080fd5b506103d6611f58565b34801561077357600080fd5b506105b16004803603608081101561078a57600080fd5b50600160a060020a0381351690602081013590604081013590606001351515611fbd565b3480156107ba57600080fd5b506105b1612515565b3480156107cf57600080fd5b50610492600480360360208110156107e657600080fd5b5035612520565b3480156107f957600080fd5b506106516125c3565b34801561080e57600080fd5b506104696004803603606081101561082557600080fd5b50600160a060020a038135811691602081013590911690604001356125d7565b6105b16004803603606081101561085b57600080fd5b50600160a060020a03813516906020810135906040013515156127b3565b34801561088557600080fd5b506104926004803603602081101561089c57600080fd5b5035600160a060020a0316612abd565b3480156108b857600080fd5b506103d6612ad8565b3480156108cd57600080fd5b506105b1600480360360208110156108e457600080fd5b5035600160a060020a0316612b3b565b34801561090057600080fd5b50610651612cc9565b34801561091557600080fd5b506106516004803603604081101561092c57600080fd5b5080359060200135612cd8565b34801561094557600080fd5b506104696004803603604081101561095c57600080fd5b5080359060200135600160a060020a0316612cf6565b34801561097e57600080fd5b506104696004803603602081101561099557600080fd5b5035612d14565b3480156109a857600080fd5b506103d6600480360360208110156109bf57600080fd5b5035612d88565b3480156109d257600080fd5b506109ff600480360360408110156109e957600080fd5b50600160a060020a038135169060200135612df4565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b348015610a3357600080fd5b5061046960048036036020811015610a4a57600080fd5b5035600160a060020a0316612ebd565b348015610a6657600080fd5b506104696004803603610100811015610a7e57600080fd5b810190602081018135640100000000811115610a9957600080fd5b820183602082011115610aab57600080fd5b80359060200191846001830284011164010000000083111715610acd57600080fd5b91935091508035151590600160a060020a036020820135169060408101359060608101359060808101359060a08101359060c00135612ed0565b348015610b1357600080fd5b506105b160048036036020811015610b2a57600080fd5b5035600160a060020a0316612f79565b348015610b4657600080fd5b5061046960048036036060811015610b5d57600080fd5b813591602081013591810190606081016040820135640100000000811115610b8457600080fd5b820183602082011115610b9657600080fd5b80359060200191846001830284011164010000000083111715610bb857600080fd5b509092509050612fcc565b348015610bcf57600080fd5b50610492613059565b348015610be457600080fd5b5061049260048036036020811015610bfb57600080fd5b503561307c565b348015610c0e57600080fd5b5061046960048036036060811015610c2557600080fd5b50600160a060020a038135811691602081013582169160409091013516613093565b348015610c5357600080fd5b50610492613283565b348015610c6857600080fd5b50610c716132a6565b60405180806020018615151515815260200185600160a060020a0316600160a060020a03168152602001848152602001838152602001828103825287818151815260200191508051906020019080838360005b83811015610cdc578181015183820152602001610cc4565b50505050905090810190601f168015610d095780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b348015610d2757600080fd5b506105b160048036036040811015610d3e57600080fd5b5080359060200135600160a060020a0316613373565b348015610d6057600080fd5b50610d8760048036036020811015610d7757600080fd5b5035600160a060020a03166133d9565b6040805193151584526020840192909252600160a060020a031682820152519081900360600190f35b348015610dbc57600080fd5b5061046960048036036060811015610dd357600080fd5b50600160a060020a0381351690602081013590604001356136be565b348015610dfb57600080fd5b506105b160048036036020811015610e1257600080fd5b5035600160a060020a03166137a4565b348015610e2e57600080fd5b5061046960048036036080811015610e4557600080fd5b50600160a060020a0381358116916020810135916040820135916060013516613820565b348015610e7557600080fd5b506105b16139a5565b348015610e8a57600080fd5b50610ea860048036036020811015610ea157600080fd5b50356139f5565b6040805192835260208301919091528051918290030190f35b348015610ecd57600080fd5b506105b160048036036060811015610ee457600080fd5b50600160a060020a0381351690602081013590604001351515613a6e565b348015610f0e57600080fd5b506105b160048036036020811015610f2557600080fd5b5035600160a060020a0316613b04565b348015610f4157600080fd5b5061046960048036036040811015610f5857600080fd5b50600160a060020a038135169060200135613b54565b348015610f7a57600080fd5b50610469613d08565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b5035600160a060020a0316613f9b565b348015610fc257600080fd5b5061046960048036036060811015610fd957600080fd5b50600160a060020a038135811691602081013591604090910135166140ac565b34801561100557600080fd5b5061100e6142d1565b6040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561105757818101518382015260200161103f565b50505050905090810190601f1680156110845780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b3480156110a057600080fd5b506105b1600480360360c08110156110b757600080fd5b50600160a060020a0381351690602081013590604081013590606081013590608081013515159060a001351515614385565b3480156110f557600080fd5b50610492614431565b34801561110a57600080fd5b50611113614454565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b6060600a60019054906101000a9004600160a060020a0316600160a060020a031663052c09fd6040518163ffffffff1660e060020a02815260040160006040518083038186803b15801561119e57600080fd5b505afa1580156111b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111db57600080fd5b81019080805160405193929190846401000000008211156111fb57600080fd5b90830190602082018581111561121057600080fd5b825186602082028301116401000000008211171561122d57600080fd5b82525081516020918201928201910280838360005b8381101561125a578181015183820152602001611242565b5050505090500160405250505090505b90565b6040805160008051602061531d8339815191528152905190819003600d01902060009061129a9033612cf6565b6112d85760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b60408051600080516020615528833981519152815290519081900360110190206113029085612cf6565b6113405760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b601a54604080517fe33d8221000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a0386811660248301528781166044830152606482018690529151919092169163e33d82219160848083019260209291908290030181600087803b1580156113bd57600080fd5b505af11580156113d1573d6000803e3d6000fd5b505050506040513d60208110156113e757600080fd5b50506040805160e060020a63a9059cbb028152600160a060020a0386811660048301526024820185905291519185169163a9059cbb916044808201926020929091908290030181600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b505050506040513d602081101561146957600080fd5b5060019150505b9392505050565b6040805160008051602061531d8339815191528152905190819003600d01902081565b60006114ad60038363ffffffff61455716565b92915050565b60009081526020819052604090206003015490565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a01902081565b6000806000806000806018600089600160a060020a0316600160a060020a03168152602001908152602001600020878154811061153657fe5b60009182526020808320600690920290910154600160a060020a038b1683526018909152604090912080548990811061156b57fe5b906000526020600020906006020160010154601860008b600160a060020a0316600160a060020a0316815260200190815260200160002089815481106115ad57fe5b906000526020600020906006020160020154601860008c600160a060020a0316600160a060020a031681526020019081526020016000208a815481106115ef57fe5b6000918252602080832060036006909302019190910154600160a060020a038e16835260189091526040909120805460ff909216918c90811061162e57fe5b906000526020600020906006020160040154601860008e600160a060020a0316600160a060020a031681526020019081526020016000208c8154811061167057fe5b6000918252602090912060069091020160050154949d939c50919a5098509650600160a060020a03909116945092505050565b601454601e546116b89163ffffffff6145c416565b3410156116f95760405160e560020a62461bcd02815260040180806020018281038252602f8152602001806155b8602f913960400191505060405180910390fd5b600a54604080517f4f63d3ce000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152346024830152915161010090930490911691634f63d3ce9160448082019260009290919082900301818387803b15801561176c57600080fd5b505af1158015611780573d6000803e3d6000fd5b5050601654611798925090503463ffffffff61462016565b60165550565b6000828152602081905260409020600301546117c1906117bc61467d565b612cf6565b6117ff5760405160e560020a62461bcd02815260040180806020018281038252602f8152602001806152bb602f913960400191505060405180910390fd5b6118098282614681565b5050565b6040805160008051602061531d8339815191528152905190819003600d01902060009061183a9033612cf6565b6118785760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b600a5460ff16156118bd5760405160e560020a62461bcd02815260040180806020018281038252602d815260200180615548602d913960400191505060405180910390fd5b50600a805460ff1916600190811790915590565b600067016345785d8a0000341161191c5760405160e560020a62461bcd0281526004018080602001828103825260278152602001806155016027913960400191505060405180910390fd5b600080611928346139f5565b90925090508161196c5760405160e560020a62461bcd0281526004018080602001828103825260268152602001806153d56026913960400191505060405180910390fd5b61197d81600363ffffffff61472616565b82106119bd5760405160e560020a62461bcd02815260040180806020018281038252606381526020018061546f6063913960800191505060405180910390fd5b601c546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015611a1457600080fd5b505af1158015611a28573d6000803e3d6000fd5b505050506040513d6020811015611a3e57600080fd5b5050601f54611a53908363ffffffff61462016565b601f5550905090565b604080517f4f5241434c4500000000000000000000000000000000000000000000000000008152905190819003600601902081565b600160a060020a039081166000908152601960205260409020541690565b604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902081565b611aec61467d565b600254600160a060020a03908116911614611b51576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615611bc4576040805160e560020a62461bcd02815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b6002805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a1565b6040805160008051602061531d8339815191528152905190819003600d019020600090611c519033612cf6565b611c8f5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061552883398151915281529051908190036011019020611cb99085612cf6565b611cf75760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152306024830152604482018590529151918516916323b872dd916064808201926020929091908290030181600087803b15801561143f57600080fd5b604080517f524546455245525f524f4c4500000000000000000000000000000000000000008152905190819003600c01902081565b6040805160008051602061531d8339815191528152905190819003600d019020600090611dcb9033612cf6565b611e095760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b600a5460ff16611e4d5760405160e560020a62461bcd02815260040180806020018281038252602f8152602001806154d2602f913960400191505060405180910390fd5b50600a805460ff19169055600190565b6000611e6761467d565b600254600160a060020a03908116911614611ecc576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615611f3f576040805160e560020a62461bcd02815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b611f4983836117ff565b50600192915050565b601e5490565b60606006600001805480602002602001604051908101604052809291908181526020018280548015611fb357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611f95575b5050505050905090565b600b54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561203057600080fd5b505af1158015612044573d6000803e3d6000fd5b505050506040513d602081101561205a57600080fd5b5050600a54604080517f15b60639000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482018790526044820186905284151560648301523360848301529151600093849384938493610100909304909116916315b606399160a48082019260809290919082900301818787803b1580156120ee57600080fd5b505af1158015612102573d6000803e3d6000fd5b505050506040513d608081101561211857600080fd5b5080516020820151604083015160609093015191965094509092509050831561247357801561246e576000612169606461215d6012548a6145c490919063ffffffff16565b9063ffffffff61472616565b90506000612187606461215d6013548b6145c490919063ffffffff16565b9050600061219b898463ffffffff61476816565b33600090815260196020526040902054909150600160a060020a031615612325576121cc818363ffffffff61476816565b600b5433600090815260196020908152604080832054815160e060020a63a9059cbb028152600160a060020a0391821660048201526024810189905291519596509093169363a9059cbb93604480820194918390030190829087803b15801561223457600080fd5b505af1158015612248573d6000803e3d6000fd5b505050506040513d602081101561225e57600080fd5b5050600b546040805160008051602061538383398151915281529051908190036014019020600160a060020a039091169063a9059cbb906122a0906000612cd8565b856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b505050506040513d602081101561231d57600080fd5b506123e59050565b600b546040805160008051602061538383398151915281529051908190036014019020600160a060020a039091169063a9059cbb90612365906000612cd8565b856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156123b857600080fd5b505af11580156123cc573d6000803e3d6000fd5b505050506040513d60208110156123e257600080fd5b50505b600b546040805160e060020a63a9059cbb028152600160a060020a038881166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050506040513d602081101561246857600080fd5b50505050505b61250b565b6000831180156124805750805b1561250b57600b546040805160e060020a63a9059cbb028152600160a060020a038581166004830152602482018790529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b505050506040513d602081101561250857600080fd5b50505b5050505050505050565b61251e336147aa565b565b600080600c60009054906101000a9004600160a060020a0316600160a060020a031663313ce5676040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561257457600080fd5b505afa158015612588573d6000803e3d6000fd5b505050506040513d602081101561259e57600080fd5b5051600e549091506114709060ff8316600a0a9061215d90869063ffffffff6145c416565b600a546101009004600160a060020a031690565b6040805160008051602061531d8339815191528152905190819003600d0190206000906126049033612cf6565b6126425760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902061267e9085612cf6565b6126bc5760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b81156127a957600160a060020a03831661271057604051600160a060020a0385169083156108fc029084906000818181858888f19350505050158015612706573d6000803e3d6000fd5b5060019050611470565b82600160a060020a031663a9059cbb85846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561277357600080fd5b505af1158015612787573d6000803e3d6000fd5b505050506040513d602081101561279d57600080fd5b50600191506114709050565b5060009392505050565b600a54604080517f15b60639000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820186905234604483015284151560648301523360848301529151600093849384938493610100909304909116916315b606399160a48082019260809290919082900301818787803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b505050506040513d608081101561286e57600080fd5b50805160208201516040830151606090930151919650945090925090508315612a6b5780612a665760006128b2606461215d601254346145c490919063ffffffff16565b905060006128d0606461215d601354346145c490919063ffffffff16565b905060006128e4348463ffffffff61476816565b33600090815260196020526040902054909150600160a060020a0316156129c657612915818363ffffffff61476816565b33600090815260196020526040808220549051929350600160a060020a03169184156108fc0291859190818181858888f1935050505015801561295c573d6000803e3d6000fd5b506040805160008051602061538383398151915281529051908190036014019020612988906000612cd8565b600160a060020a03166108fc849081150290604051600060405180830381858888f193505050501580156129c0573d6000803e3d6000fd5b50612a2b565b60408051600080516020615383833981519152815290519081900360140190206129f1906000612cd8565b600160a060020a03166108fc849081150290604051600060405180830381858888f19350505050158015612a29573d6000803e3d6000fd5b505b604051600160a060020a0386169082156108fc029083906000818181858888f19350505050158015612a61573d6000803e3d6000fd5b505050505b612ab4565b600083118015612a79575080155b15612ab457604051600160a060020a0383169084156108fc029085906000818181858888f1935050505015801561250b573d6000803e3d6000fd5b50505050505050565b600160a060020a031660009081526018602052604090205490565b60606003600001805480602002602001604051908101604052809291908181526020018280548015611fb357602002820191906000526020600020908154600160a060020a03168152600190910190602001808311611f95575050505050905090565b601454600090612b5a90670de0b6b3a76400009063ffffffff6145c416565b601c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015612bd057600080fd5b505af1158015612be4573d6000803e3d6000fd5b505050506040513d6020811015612bfa57600080fd5b5050601e54612c3090612c2190670de0b6b3a76400009061215d908563ffffffff6145c416565b6016549063ffffffff61462016565b601655600a54601e54610100909104600160a060020a031690634f63d3ce908490612c5b90856145c4565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015612cad57600080fd5b505af1158015612cc1573d6000803e3d6000fd5b505050505050565b600254600160a060020a031690565b6000828152602081905260408120611470908363ffffffff6147f216565b6000828152602081905260408120611470908363ffffffff61452c16565b6040805160008051602061531d8339815191528152905190819003600d019020600090612d419033612cf6565b612d7f5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b50600e55600190565b600081815260016020908152604091829020805483518184028101840190945280845260609392830182828015612de857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dca575b50505050509050919050565b600080600080600a60019054906101000a9004600160a060020a0316600160a060020a0316639f2ac7f887876040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060806040518083038186803b158015612e7057600080fd5b505afa158015612e84573d6000803e3d6000fd5b505050506040513d6080811015612e9a57600080fd5b508051602082015160408301516060909301519199909850919650945092505050565b60006114ad60068363ffffffff61455716565b6040805160008051602061531d8339815191528152905190819003600d019020600090612efd9033612cf6565b612f3b5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b612f4760098b8b615200565b5050600a805460ff191697151597909717909655600d9390935560129190915560135560145550601555506001919050565b612f823361149a565b612fc05760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b612fc9816147fe565b50565b6040805160008051602061531d8339815191528152905190819003600d019020600090612ff99033612cf6565b6130375760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b600f859055601084905561304d60118484615200565b50600195945050505050565b604080516000805160206153838339815191528152905190819003601401902081565b60008181526020819052604081206114ad90614846565b6040805160008051602061531d8339815191528152905190819003600d0190206000906130c09033612cf6565b6130fe5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061538383398151915281529051908190036014019020849061312a9082612cf6565b8061316c5750604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902061316c9082612cf6565b806132055750601b54604080517f24851914000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915191909216916324851914916024808301926020929190829003018186803b1580156131d857600080fd5b505afa1580156131ec573d6000803e3d6000fd5b505050506040513d602081101561320257600080fd5b50515b1561324157600160a060020a0384811660009081526019602052604090208054600160a060020a0319169185169190911790556001915061327b565b60405160e560020a62461bcd02815260040180806020018281038252602381526020018061542b6023913960400191505060405180910390fd5b509392505050565b604080516000805160206155288339815191528152905190819003601101902081565b600a54601c54600d54601d546009805460408051602060026101006001861615026000190190941693909304601f81018490048402820184019092528181526060976000978897889788979660ff90941695600160a060020a039093169491939092879183018282801561335b5780601f106133305761010080835404028352916020019161335b565b820191906000526020600020905b81548152906001019060200180831161333e57829003601f168201915b50505050509450945094509450945094509091929394565b600082815260208190526040902060030154613391906117bc61467d565b6133cf5760405160e560020a62461bcd0281526004018080602001828103825260308152602001806153fb6030913960400191505060405180910390fd5b6118098282614851565b600080600061340b604051808060008051602061531d833981519152815250600d019050604051809103902033612cf6565b6134495760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061533d833981519152815290519081900360140190206134739085612cf6565b6134b15760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b600080806134be87612abd565b90506000805b828110156136af57600160a060020a03891660009081526018602052604081208054839081106134f057fe5b60009182526020909120600690910201600381015490915060ff16156136a65760058101546004820154600160a060020a0390911695501561362557600160a060020a038516613591576004810154604051600160a060020a038c169180156108fc02916000818181858888f19350505050158015613573573d6000803e3d6000fd5b50600481015461358a90879063ffffffff61462016565b9550613625565b84600160a060020a031663a9059cbb8b83600401546040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156135f857600080fd5b505af115801561360c573d6000803e3d6000fd5b505050506040513d602081101561362257600080fd5b50505b600160a060020a038a16600090815260186020526040812080548490811061364957fe5b60009182526020808320600692909202909101600301805460ff191693151593909317909255600160a060020a038c16815260189091526040812080548490811061369057fe5b9060005260206000209060060201600401819055505b506001016134c4565b50979296509094509092505050565b6040805160008051602061531d8339815191528152905190819003600d0190206000906136eb9033612cf6565b6137295760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061533d833981519152815290519081900360140190206137539085612cf6565b6137915760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b61379c848484614941565b949350505050565b6137ad3361149a565b6137eb5760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b600a8054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a01902060009061385f9033612cf6565b61389d5760405160e560020a62461bcd02815260040180806020018281038252603e815260200180615637603e913960400191505060405180910390fd5b600160a060020a0385166000908152601860205260409020805460019190869081106138c557fe5b906000526020600020906006020160030160006101000a81548160ff021916908315150217905550826018600087600160a060020a0316600160a060020a03168152602001908152602001600020858154811061391e57fe5b906000526020600020906006020160040181905550816018600087600160a060020a0316600160a060020a03168152602001908152602001600020858154811061396457fe5b906000526020600020906006020160050160006101000a815481600160a060020a030219169083600160a060020a0316021790555060019050949350505050565b6139ae3361149a565b6139ec5760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b61251e33614c25565b6000806000613a11601f54601d5461476890919063ffffffff16565b90506000613a308261215d601d54601e546145c490919063ffffffff16565b9050613a4e8161215d87670de0b6b3a764000063ffffffff6145c416565b601f54601d54613a639163ffffffff61476816565b935093505050915091565b600a54604080517f9b58a9a8000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690523360448301528415156064830152915161010090930490911691639b58a9a89160848082019260009290919082900301818387803b158015613af057600080fd5b505af1158015612ab4573d6000803e3d6000fd5b613b0d3361149a565b613b4b5760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b612fc981614c6d565b6040805160008051602061531d8339815191528152905190819003600d019020600090613b819033612cf6565b613bbf5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061552883398151915281529051908190036011019020613be99084612cf6565b613c275760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b601a54604080517f1208333a000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a0386811660248301526044820186905291519190921691631208333a9160648083019260209291908290030181600087803b158015613c9c57600080fd5b505af1158015613cb0573d6000803e3d6000fd5b505050506040513d6020811015613cc657600080fd5b5050604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015613cfe573d6000803e3d6000fd5b5060019392505050565b6000806000601b60009054906101000a9004600160a060020a0316600160a060020a031663e3bbb5656040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613d5e57600080fd5b505afa158015613d72573d6000803e3d6000fd5b505050506040513d6020811015613d8857600080fd5b5051604080517f8e15f4730000000000000000000000000000000000000000000000000000000081528151600160a060020a0390931692638e15f47392600480840193919291829003018186803b158015613de257600080fd5b505afa158015613df6573d6000803e3d6000fd5b505050506040513d6040811015613e0c57600080fd5b50805160209091015190925090506000613e3b33613e368560ff8616600a0a63ffffffff61472616565b612df4565b5091925060009150508115613f5357601c546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015613ea157600080fd5b505af1158015613eb5573d6000803e3d6000fd5b505050506040513d6020811015613ecb57600080fd5b5050600a54604080517fbb7598060000000000000000000000000000000000000000000000000000000081523360048201529051610100909204600160a060020a03169163bb7598069160248082019260009290919082900301818387803b158015613f3657600080fd5b505af1158015613f4a573d6000803e3d6000fd5b50505050600190505b604080518381523360208201528215158183015290517f9d6ad47cb919b7aa19b4e438ceeaa7b16afb7e9a6afe89335044b64c3cb4adca9181900360600190a1935050505090565b613fa361467d565b600254600160a060020a03908116911614614008576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600160a060020a0381166140505760405160e560020a62461bcd02815260040180806020018281038252602681526020018061535d6026913960400191505060405180910390fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a031916600160a060020a0392909216919091179055565b6040805160008051602061531d8339815191528152905190819003600d0190206000906140d99033612cf6565b6141175760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061533d833981519152815290519081900360140190206141419085612cf6565b61417f5760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b600061419b606461215d601254876145c490919063ffffffff16565b905060006141b9606461215d601354886145c490919063ffffffff16565b600160a060020a03878116600090815260196020526040812054929350911615614204576141fd826141f1888663ffffffff61476816565b9063ffffffff61476816565b9050614217565b614214868463ffffffff61476816565b90505b600160a060020a039687166000908152601860209081526040808320815160c08101835294855242858401908152600d5492860192835260608601858152608087018681529a8d1660a088019081528354600180820186559488529590962096516006909502909601938455518382015590516002830155925160038201805460ff1916911515919091179055955160048701555160059095018054600160a060020a031916959097169490941790955550909392505050565b6000806060600f546010546011808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143735780601f1061434857610100808354040283529160200191614373565b820191906000526020600020905b81548152906001019060200180831161435657829003601f168201915b50505050509050925092509250909192565b600a54604080517f854fe7ac000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201899052604482018890526064820187905285151560848301523360a483015284151560c483015291516101009093049091169163854fe7ac9160e48082019260009290919082900301818387803b15801561441d57600080fd5b505af1158015612508573d6000803e3d6000fd5b6040805160008051602061533d8339815191528152905190819003601401902081565b600e5460125460135460145460155460165460175490919293949596565b61447c8282614557565b156144d1576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a03166000818152600183810160209081526040808420805460ff191684179055855492830186558584528184209092018054600160a060020a03191685179055845493835260029094019093529190912055565b600061147083600160a060020a038416614cb4565b600061147083600160a060020a03841684614ccc565b6000600160a060020a0382166145a15760405160e560020a62461bcd0281526004018080602001828103825260228152602001806155966022913960400191505060405180910390fd5b50600160a060020a03166000908152600191909101602052604090205460ff1690565b6000826145d3575060006114ad565b828202828482816145e057fe5b04146114705760405160e560020a62461bcd0281526004018080602001828103825260218152602001806155756021913960400191505060405180910390fd5b600082820183811015611470576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b600082815260208190526040902061469f908263ffffffff61454116565b156118095760008281526001602081815260408320805492830181558352909120018054600160a060020a031916600160a060020a0383161790556146e261467d565b600160a060020a031681600160a060020a0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061147083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614d41565b600061147083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614de6565b6147bb60068263ffffffff614e4316565b604051600160a060020a038216907f9c8e7d83025bef8a04c664b2f753f64b8814bdb7e27291d7e50935f18cc3c71290600090a250565b60006114708383614f8b565b61480f60038263ffffffff61447216565b604051600160a060020a038216907f3f5f1db80208f0d453083a86e16909cecc1e95e2618d5d927c93ace22b8200fc90600090a250565b60006114ad82614ff2565b600082815260208190526040902061486f908263ffffffff614ff616565b156118095760005b6000838152600160205260409020548110156148f45760008381526001602052604090208054600160a060020a0384169190839081106148b357fe5b600091825260209091200154600160a060020a031614156148ec5760008381526001602052604090206148e790829061500b565b6148f4565b600101614877565b506148fd61467d565b600160a060020a031681600160a060020a0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600a5460009060ff166149885760405160e560020a62461bcd0281526004018080602001828103825260248152602001806156136024913960400191505060405180910390fd5b60408051600080516020615383833981519152815290519081900360140190206000906149b59082612cd8565b905060006149ea620186a06149de8661215d606461215d6012548c6145c490919063ffffffff16565b9063ffffffff6145c416565b90506000614a13620186a06149de8761215d606461215d6013548d6145c490919063ffffffff16565b600160a060020a03888116600090815260196020526040812054929350911615614ad157600160a060020a0380891660009081526019602052604080822054905192169184156108fc0291859190818181858888f19350505050158015614a7e573d6000803e3d6000fd5b50604051600160a060020a0385169084156108fc029085906000818181858888f19350505050158015614ab5573d6000803e3d6000fd5b50614aca826141f1898663ffffffff61476816565b9050614b1b565b604051600160a060020a0385169084156108fc029085906000818181858888f19350505050158015614b07573d6000803e3d6000fd5b50614b18878463ffffffff61476816565b90505b600160a060020a038881166000908152601860209081526040808320815160c08101835286815242818501908152600d54938201938452606082018681526080830187815260a08401888152855460018082018855968a529790982093516006909702909301958655905192850192909255915160028401555160038301805460ff1916911515919091179055516004820155905160059091018054600160a060020a03191691909216179055601654614bd59088614620565b601655604080518881529051600160a060020a038a16917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a2506001979650505050505050565b614c3660038263ffffffff614e4316565b604051600160a060020a038216907f26b6063d78aefcf96f02ff06bc9822b5a623278253add7fffa5fb453db39981090600090a250565b614c7e60068263ffffffff61447216565b604051600160a060020a038216907e47706786c922d17b39285dc59d696bafea72c0b003d3841ae1202076f4c2e490600090a250565b60009081526002919091016020526040902054151590565b6000614cd88484614cb4565b614d3957508254600180820185556000858152602080822090930185905581860180548084018255908252838220018054600160a060020a031916600160a060020a0386161790558554858252600287019093526040902091909155611470565b506000611470565b60008183614dd05760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614d95578181015183820152602001614d7d565b50505050905090810190601f168015614dc25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614ddc57fe5b0495945050505050565b60008184841115614e3b5760405160e560020a62461bcd028152602060048201818152835160248401528351909283926044909101919085019080838360008315614d95578181015183820152602001614d7d565b505050900390565b614e4d8282614557565b614e8b5760405160e560020a62461bcd02815260040180806020018281038252602181526020018061544e6021913960400191505060405180910390fd5b600160a060020a03811660009081526002830160205260409020548015614f665782546000198083019190810190600090869083908110614ec857fe5b6000918252602090912001548654600160a060020a0390911691508190879085908110614ef157fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790558554869080614f2557fe5b6000828152602080822083016000199081018054600160a060020a0319169055909201909255600160a060020a038716825260028801905260408120555050505b50600160a060020a03166000908152600190910160205260409020805460ff19169055565b81546000908210614fd05760405160e560020a62461bcd0281526004018080602001828103825260228152602001806152996022913960400191505060405180910390fd5b826000018281548110614fdf57fe5b9060005260206000200154905092915050565b5490565b600061147083600160a060020a0384166150b5565b815b8154600019018110156150845781816001018154811061502957fe5b9060005260206000200160009054906101000a9004600160a060020a031682828154811061505357fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560010161500d565b508080548061508f57fe5b60008281526020902081016000199081018054600160a060020a03191690550190555050565b600081815260028301602052604081205480156151f657835460001980830191908101906000908790839081106150e857fe5b906000526020600020015490508087600001848154811061510557fe5b600091825260209091200155865487908061511c57fe5b60019003818190600052602060002001600090559055600087600101838154811061514357fe5b600091825260209091200154600189018054600160a060020a03909216925082918690811061516e57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550876001018054806151a957fe5b6000828152602080822083016000199081018054600160a060020a031916905590920190925592815260028901909252506040808220600194850190558682528120555091506114ad9050565b60009150506114ad565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152415782800160ff1982351617855561526e565b8280016001018555821561526e579182015b8281111561526e578235825591602001919060010190615253565b5061527a92915061527e565b5090565b61126a91905b8082111561527a576000815560010161528456fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74496e766573746d656e74506f6f6c3a207468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e504f4f4c5f5245474953545259000000000000000000000000000000000000004c494d495445445f504152544e45525f524f4c450000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737347454e4552414c5f504152544e45525f524f4c45000000000000000000000000526f6c65733a2063616c6c657220646f6573206e6f7420686176652074686520706f6f6c20726567797374727920726f6c65546f6b656e73616c65506f6f6c3a2077652063616e27742073656c6c203020746f6b656e732e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b655468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65546f6b656e73616c65506f6f6c3a2077652063616e27742073656c6c206d6f7265207468616e203330252066726f6d206f6e65207472616e73616374696f6e2e20506c6561736520646563726561736520696e766573746d656e7420616d6f756e742e496e766573746d656e74506f6f6c3a2074686520706f6f6c20697320616c7265616479206465616374697661746564546f6b656e73616c65506f6f6c3a206d696e696d616c20707572636861736520302e31424e422e535441525455505f5445414d5f524f4c45000000000000000000000000000000496e766573746d656e74506f6f6c3a2074686520706f6f6c20697320616c726561647920616374697661746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734f70656e42695365613a20796f75206d7573742073656e64206d696e696d616c20616d6f756e74206f72206d6f72655465616d526f6c653a2063616c6c657220646f6573206e6f74206861766520746865205465616d20726f6c65496e766573746d656e74506f6f6c3a20706f6f6c206465706f73697420626c6f636b6564526f6c65733a2063616c6c657220646f6573206e6f742068617665207468652072657475726e20696e7665736d656e74206c706172746e657220726f6c65a264697066735822122089ca0248498019765071b025bbb49e24927b75a337a38cfc8f02ac7dbc94eb8464736f6c63430006080033416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f206164647265737353555045525f41444d494e5f524f4c450000000000000000000000000000000000000000000000000000000002474589f8e03110efc56ed3d69d60294d9ff0630000000000000000000000004f476c35f1d823c24c476db1eecb97db3a6a49a1000000000000000000000000027d865ef0b4d1372affe941272f47e013cac669000000000000000000000000f52e9da33ffde0a12418e93ce6fe8b56912121640000000000000000000000004e54b369aecfe04e6ef3f6c768f7a77f39c388c800000000000000000000000075113e57034ffdbd696df54ce843761ace5ee1090000000000000000000000000d94f6119982ee3a85f99cd5e24901e8319acad3000000000000000000000000a03255c3c16a7d998c570f5b55d15c330c317ea80000000000000000000000000000000000000000000001b1ae4d6e2ef5000000000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f

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

00000000000000000000000002474589f8e03110efc56ed3d69d60294d9ff0630000000000000000000000004f476c35f1d823c24c476db1eecb97db3a6a49a1000000000000000000000000027d865ef0b4d1372affe941272f47e013cac669000000000000000000000000f52e9da33ffde0a12418e93ce6fe8b56912121640000000000000000000000004e54b369aecfe04e6ef3f6c768f7a77f39c388c800000000000000000000000075113e57034ffdbd696df54ce843761ace5ee1090000000000000000000000000d94f6119982ee3a85f99cd5e24901e8319acad3000000000000000000000000a03255c3c16a7d998c570f5b55d15c330c317ea80000000000000000000000000000000000000000000001b1ae4d6e2ef5000000000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f

-----Decoded View---------------
Arg [0] : tokenForTokensale (address): 0x02474589f8e03110efc56ed3d69d60294d9ff063
Arg [1] : superAdmin (address): 0x4f476c35f1d823c24c476db1eecb97db3a6a49a1
Arg [2] : gPartner (address): 0x027d865ef0b4d1372affe941272f47e013cac669
Arg [3] : lPartner (address): 0xf52e9da33ffde0a12418e93ce6fe8b5691212164
Arg [4] : team (address): 0x4e54b369aecfe04e6ef3f6c768f7a77f39c388c8
Arg [5] : poolRegistry (address): 0x75113e57034ffdbd696df54ce843761ace5ee109
Arg [6] : returnInvestmentLpartner (address): 0x0d94f6119982ee3a85f99cd5e24901e8319acad3
Arg [7] : assetsManageTeam (address): 0xa03255c3c16a7d998c570f5b55d15c330c317ea8
Arg [8] : initialBalance (uint256): 8000000000000000000000
Arg [9] : busdContract (address): 0xc2132d05d31c914a87c6611c10748aeb04b58e8f

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000002474589f8e03110efc56ed3d69d60294d9ff063
Arg [1] : 0000000000000000000000004f476c35f1d823c24c476db1eecb97db3a6a49a1
Arg [2] : 000000000000000000000000027d865ef0b4d1372affe941272f47e013cac669
Arg [3] : 000000000000000000000000f52e9da33ffde0a12418e93ce6fe8b5691212164
Arg [4] : 0000000000000000000000004e54b369aecfe04e6ef3f6c768f7a77f39c388c8
Arg [5] : 00000000000000000000000075113e57034ffdbd696df54ce843761ace5ee109
Arg [6] : 0000000000000000000000000d94f6119982ee3a85f99cd5e24901e8319acad3
Arg [7] : 000000000000000000000000a03255c3c16a7d998c570f5b55d15c330c317ea8
Arg [8] : 0000000000000000000000000000000000000000000001b1ae4d6e2ef5000000
Arg [9] : 000000000000000000000000c2132d05d31c914a87c6611c10748aeb04b58e8f


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.