Contract 0x769856aa2fb41a1267f243e0b787f985622b0e2e

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd5cfdbddeedb5c1c449eac8a5459cc477fba596618a7ccd84f73301b7f813f3fWithdraw146612382022-01-25 2:06:2915 hrs 44 mins ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054905
0x3a86157532b390adf8fab6dceac651c9d64fc5c7608dd20153313fc723656718Invest146548522022-01-24 20:47:0921 hrs 4 mins ago0x8865301642731ed9c9ec3943aefd6675a4b2ba96 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0.02 BNB0.000978245
0xa200d750157702c636e6efdb1834abb19456cdcda5050008a27af5a6fae6f833Withdraw146316802022-01-24 1:26:061 day 16 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0x05ff17e63981f9a24920f17b0a50f5b6f77d33743e77febb16276f0b13894c51Invest146196152022-01-23 15:21:392 days 2 hrs ago0xb554042cb9cc7506f75a893b102b87e7fad3bc3f IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0.15 BNB0.000978245
0x45054e5cca830bc371647542d5a098b314d47d843bf77d27051d0d5ff10e6c72Withdraw146032112022-01-23 1:40:382 days 16 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054905
0x2c881d24dea66422f3cd724edf4be224c387b4b048a7e41bf41e21b7b553e96dInvest146012502022-01-23 0:02:262 days 17 hrs ago0x7d2a45b50cded1376c6994c53ef1330d354180be IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0.005340415 BNB0.000108395
0x4871d7542f61c65f0f0fc3737cf9c2c1edf954978269c76b228185b490f10d28Withdraw145962592022-01-22 19:52:452 days 21 hrs ago0xdeeb99a4929e725039d3f0620c0cd6248e5b29ce IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00037331
0xc43da0116c876f544f5daf29641911a13501049a047c571d9f547f2b22c15d85Invest145356722022-01-20 17:13:525 days 37 mins ago0x7d2a45b50cded1376c6994c53ef1330d354180be IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0.006402715 BNB0.000108395
0x669bcc60dcea6a883d99c125c7a272bce9719bcd4fd8ea3d995c2c72290bb688Withdraw144893552022-01-19 2:30:046 days 15 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0xc9379c51c86e2c2cbe13aae1d2a7cc23d25e678c37b25157224de84e16fb8c93Invest144786372022-01-18 17:34:037 days 17 mins ago0x753c34e96895f2fc938b7e2d7032a6e802483ce7 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0.99 BNB0.000797065
0xb0eea9a2a7285d91f4ec99e51ba711c1326ce075e050b50382dd73f358758badWithdraw143769252022-01-15 4:03:1610 days 13 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054905
0x6b56ce8ebe49b0daa18d3c05e012ac29f84da0e5b18c45f2610b8eede324b0c1Invest143660052022-01-14 18:57:1310 days 22 hrs ago0x753c34e96895f2fc938b7e2d7032a6e802483ce7 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e1 BNB0.000978245
0x94474e75e307774917333f637b3a7bb0c9723ecaaf46de5a88834fb1615cd8e8Compound141948192022-01-08 20:01:3416 days 21 hrs ago0x38eee44614a5f31f9be4e4ba8fd24506d9cfafd8 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00015653
0xcac844be8e60945d7d39a2a3a07728a29df865ece0c27f417c33e41220e5d530Withdraw141626982022-01-07 17:13:0918 days 38 mins ago0xbd7e85eb840f61d596f3c51701b0771523329f59 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00037335
0x8ba1d8a3b090135c731bdae60e64c95c083fcdd45145225c9089cb4f415d9364Withdraw140866932022-01-05 1:43:1620 days 16 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0x898fb22c5bfa566ac3740b092d15ef8389c27d3540b3361b88bbbbaa5bc0c412Withdraw140646812022-01-04 7:18:3821 days 10 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0x65d33b3c67d0fdea460f0d66469f8c3d425105afaa94727bc5259d7ba613cd67Withdraw139600232021-12-31 15:57:4425 days 1 hr ago0xbd7e85eb840f61d596f3c51701b0771523329f59 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00044831
0x268b0a36a9241fbb6b556fd8b9e068e3a4bccf7355d7a5b944ad0dbbaaa50944Withdraw138931322021-12-29 8:10:5527 days 9 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0x9622c730864049a706065312a4af5daa8f0934e82b9c965a92892408781a29ffCompound137871172021-12-25 15:41:1631 days 2 hrs ago0x04732eaa4ed1218b81314e711c5c898df9590a8a IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00088442
0x3d61c73a9ce204df457c7a7384fd08faccd5a12917291e7afbdc7802b698a34dWithdraw137731142021-12-25 4:00:2531 days 13 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0x3743bef20199f5f5d92fb7b2f889ed78524485aeb6087d16e367abd26b698c9eWithdraw137618392021-12-24 18:36:4031 days 23 hrs ago0x040200ee7b76b06b6c5988556bae0d3d199e56d9 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00054901
0x6fca1460406800b094e2fc8bb1ffdd7680cf961ed281ea93ba7a287af57b1d66Invest137595292021-12-24 16:41:1032 days 1 hr ago0xbd7e85eb840f61d596f3c51701b0771523329f59 IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e2.6 BNB0.000978245
0x5e3910574dca122b11b4e75b843dca9f35071930939732ef99f9055e56356930Compound136660272021-12-21 10:15:2935 days 7 hrs ago0x04732eaa4ed1218b81314e711c5c898df9590a8a IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00019211
0xc8f415054a644e0cb516a7b26edf6565258d0ca275c26742c21a09332ce9cc2bWithdraw136659822021-12-21 10:13:1435 days 7 hrs ago0x04732eaa4ed1218b81314e711c5c898df9590a8a IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.000192105
0x8de5839d679509babc1777e399aa15262c9da6f9ef34ca55617e08684d72c889Compound135761922021-12-18 7:09:0038 days 10 hrs ago0x04732eaa4ed1218b81314e711c5c898df9590a8a IN  0x769856aa2fb41a1267f243e0b787f985622b0e2e0 BNB0.00019211
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd5cfdbddeedb5c1c449eac8a5459cc477fba596618a7ccd84f73301b7f813f3f146612382022-01-25 2:06:2915 hrs 44 mins ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.05316085 BNB
0xd5cfdbddeedb5c1c449eac8a5459cc477fba596618a7ccd84f73301b7f813f3f146612382022-01-25 2:06:2915 hrs 44 mins ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.00164415 BNB
0x3a86157532b390adf8fab6dceac651c9d64fc5c7608dd20153313fc723656718146548522022-01-24 20:47:0921 hrs 4 mins ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0006 BNB
0xa200d750157702c636e6efdb1834abb19456cdcda5050008a27af5a6fae6f833146316802022-01-24 1:26:061 day 16 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.10679215 BNB
0xa200d750157702c636e6efdb1834abb19456cdcda5050008a27af5a6fae6f833146316802022-01-24 1:26:061 day 16 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.00330285 BNB
0x05ff17e63981f9a24920f17b0a50f5b6f77d33743e77febb16276f0b13894c51146196152022-01-23 15:21:392 days 2 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0045 BNB
0x45054e5cca830bc371647542d5a098b314d47d843bf77d27051d0d5ff10e6c72146032112022-01-23 1:40:382 days 16 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.41540735 BNB
0x45054e5cca830bc371647542d5a098b314d47d843bf77d27051d0d5ff10e6c72146032112022-01-23 1:40:382 days 16 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.01284765 BNB
0x4871d7542f61c65f0f0fc3737cf9c2c1edf954978269c76b228185b490f10d28145962592022-01-22 19:52:452 days 21 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0xdeeb99a4929e725039d3f0620c0cd6248e5b29ce0.08891505 BNB
0x4871d7542f61c65f0f0fc3737cf9c2c1edf954978269c76b228185b490f10d28145962592022-01-22 19:52:452 days 21 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.00274995 BNB
0x669bcc60dcea6a883d99c125c7a272bce9719bcd4fd8ea3d995c2c72290bb688144893552022-01-19 2:30:046 days 15 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.4271686 BNB
0x669bcc60dcea6a883d99c125c7a272bce9719bcd4fd8ea3d995c2c72290bb688144893552022-01-19 2:30:046 days 15 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0132114 BNB
0xc9379c51c86e2c2cbe13aae1d2a7cc23d25e678c37b25157224de84e16fb8c93144786372022-01-18 17:34:037 days 17 mins ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0297 BNB
0xb0eea9a2a7285d91f4ec99e51ba711c1326ce075e050b50382dd73f358758bad143769252022-01-15 4:03:1610 days 13 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.9409 BNB
0xb0eea9a2a7285d91f4ec99e51ba711c1326ce075e050b50382dd73f358758bad143769252022-01-15 4:03:1610 days 13 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0291 BNB
0x6b56ce8ebe49b0daa18d3c05e012ac29f84da0e5b18c45f2610b8eede324b0c1143660052022-01-14 18:57:1310 days 22 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.03 BNB
0xcac844be8e60945d7d39a2a3a07728a29df865ece0c27f417c33e41220e5d530141626982022-01-07 17:13:0918 days 38 mins ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0xbd7e85eb840f61d596f3c51701b0771523329f590.0109972392 BNB
0xcac844be8e60945d7d39a2a3a07728a29df865ece0c27f417c33e41220e5d530141626982022-01-07 17:13:0918 days 38 mins ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0003401208 BNB
0x8ba1d8a3b090135c731bdae60e64c95c083fcdd45145225c9089cb4f415d9364140866932022-01-05 1:43:1620 days 16 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.10679215 BNB
0x8ba1d8a3b090135c731bdae60e64c95c083fcdd45145225c9089cb4f415d9364140866932022-01-05 1:43:1620 days 16 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.00330285 BNB
0x898fb22c5bfa566ac3740b092d15ef8389c27d3540b3361b88bbbbaa5bc0c412140646812022-01-04 7:18:3821 days 10 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.6407529 BNB
0x898fb22c5bfa566ac3740b092d15ef8389c27d3540b3361b88bbbbaa5bc0c412140646812022-01-04 7:18:3821 days 10 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0198171 BNB
0x65d33b3c67d0fdea460f0d66469f8c3d425105afaa94727bc5259d7ba613cd67139600232021-12-31 15:57:4425 days 1 hr ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0xbd7e85eb840f61d596f3c51701b0771523329f590.0856219 BNB
0x65d33b3c67d0fdea460f0d66469f8c3d425105afaa94727bc5259d7ba613cd67139600232021-12-31 15:57:4425 days 1 hr ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x88501d955b56a4513f41e4e2a0cc6072645543f40.0026481 BNB
0x268b0a36a9241fbb6b556fd8b9e068e3a4bccf7355d7a5b944ad0dbbaaa50944138931322021-12-29 8:10:5527 days 9 hrs ago 0x769856aa2fb41a1267f243e0b787f985622b0e2e0x040200ee7b76b06b6c5988556bae0d3d199e56d90.4271686 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BNBLockedStake

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-10-07
*/

// SPDX-License-Identifier: MIT 


pragma solidity 0.8.3;

contract Ownable {
    address public owner;
    event onOwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        owner = msg.sender;
    }
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        emit onOwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

contract BNBLockedStake is Ownable{
    using SafeMath for uint256;

    uint256 constant public INVEST_MIN_AMOUNT = 0.01 ether; 
    uint256 constant public INVEST_MAX_AMOUNT = 20000 ether;
    uint256 constant public WITHDRAW_MIN_AMOUNT = 0.01 ether;
    uint256[] internal REFERRAL_PERCENTS = [50, 0, 0];
    uint256 constant public DEPOSIT_WITHDRAW_FEE = 30; // 3% Fee for each invest/withdraw
    uint256 constant public COMPOUND_FEE = 10; // 1% Fee for compound
    uint256 constant public PERCENTS_DIVIDER = 1000;
    
    uint256 public totalStaked;
    uint256 public totalRefBonus;
    uint256 public totalWithdrawn;
    
    address payable public marketingAddress;

    struct Plan {
        uint256 time;
        uint256 percent;
    }
    Plan[] internal plans;

    struct Deposit {
        uint8 plan;
        uint256 percent;
        uint256 amount;
        uint256 profit;
        uint256 start;
        uint256 finish;
    }

    struct User {
        Deposit[] deposits;
        uint256 checkpoint;
        address referrer;
        uint256[3] levels;
        uint256 bonus;
        uint256 totalBonus;
        uint256 wprofits;
    }
    
    mapping (address => User) internal users;

    event Newbie(address user);
    event NewDeposit(address indexed user, uint8 plan, uint256 percent, uint256 amount, uint256 profit, uint256 start, uint256 finish);
    event Withdrawn(address indexed user, uint256 amount);
    event RefBonus(address indexed referrer, address indexed referral, uint256 indexed level, uint256 amount);
    event FeePayed(address indexed user, uint256 totalAmount);

    constructor() {
        plans.push(Plan(300, 5));
        marketingAddress = payable(owner);
    }
    
    function feePayout(uint256 amt) internal{
        marketingAddress.transfer(amt);
        emit FeePayed(msg.sender, amt);
    }
    
    function invest(address referrer) public payable{
        uint256 depAmount = msg.value;
        require(depAmount >= INVEST_MIN_AMOUNT,"Check minimum investing amount");
        require(depAmount <= INVEST_MAX_AMOUNT,"Check maximum investing amount");
        uint8 plan  = 0;

        //Pay admin & marketing fee
        uint256 investFee = depAmount.mul(DEPOSIT_WITHDRAW_FEE).div(PERCENTS_DIVIDER);
        feePayout(investFee);

        uint256 realDepAmount = depAmount.sub(investFee);

        User storage user = users[msg.sender];
        if (user.referrer == address(0)) {
            if (users[referrer].deposits.length > 0 && referrer != msg.sender) {
                user.referrer = referrer;
            }
            
            address upline = user.referrer;
            for (uint256 i = 0; i < 3; i++) {
                if (upline != address(0)) {
                    users[upline].levels[i] = users[upline].levels[i].add(1);
                    upline = users[upline].referrer;
                } else break;
            }
        }

        if (user.referrer != address(0)) {
            address upline = user.referrer;
            for (uint256 i = 0; i < 3; i++) {
                if (upline != address(0)) {
                    uint256 amount = realDepAmount.mul(REFERRAL_PERCENTS[i]).div(PERCENTS_DIVIDER);
                    users[upline].bonus = users[upline].bonus.add(amount);
                    users[upline].totalBonus = users[upline].totalBonus.add(amount);
                    emit RefBonus(upline, msg.sender, i, amount);
                    upline = users[upline].referrer;
                } else break;
            }
        }

        if (user.deposits.length == 0) {
            user.checkpoint = getDateFromTimeStamp(block.timestamp);
            emit Newbie(msg.sender);
        }
        
        (uint256 percent, uint256 profit, , uint256 finish) = getResult(plan, realDepAmount);
        user.deposits.push(Deposit(plan, percent, realDepAmount, profit, getDateFromTimeStamp(block.timestamp), finish));
        totalStaked = totalStaked.add(realDepAmount);
        emit NewDeposit(msg.sender, plan, percent, realDepAmount, profit, block.timestamp, finish);
    }
    
    function withdraw() public {
        User storage user = users[msg.sender];
        
        //only once a day
        require(getDateFromTimeStamp(block.timestamp) > users[msg.sender].checkpoint , "You can only withdraw once a day");
        uint256 totalAmount = getUserDividends(msg.sender);
        if (user.bonus > 0) {
            totalAmount = totalAmount.add(user.bonus);
            user.bonus = 0;
        }
        require(totalAmount > 0, "User has no dividends");
        require(totalAmount >= WITHDRAW_MIN_AMOUNT, "Please check minimum withdrawal amount");
        uint256 contractBalance = address(this).balance;
        if (contractBalance < totalAmount) {
            totalAmount = contractBalance;
        }
        require(totalAmount >= WITHDRAW_MIN_AMOUNT, "Please check contract balance");

        uint256 withdrawFee = totalAmount.mul(DEPOSIT_WITHDRAW_FEE).div(PERCENTS_DIVIDER);
        feePayout(withdrawFee);

        uint256 withdrawAmount = totalAmount.sub(withdrawFee);
        
        user.checkpoint = getDateFromTimeStamp(block.timestamp);
        
        user.wprofits = (user.wprofits).add(withdrawAmount);
        payable(msg.sender).transfer(withdrawAmount);
        
        totalWithdrawn = (totalWithdrawn.add(withdrawAmount));
        emit Withdrawn(msg.sender, withdrawAmount);
    }
    
    function compound() public {
        User storage user = users[msg.sender];
        
        //only once a day
        require(getDateFromTimeStamp(block.timestamp) > users[msg.sender].checkpoint , "You can only compound once a day");
        uint256 totalAmount = getUserDividends(msg.sender);
        if (user.bonus > 0) {
            totalAmount = totalAmount.add(user.bonus);
            user.bonus = 0;
        }
        require(totalAmount > 0, "User has no dividends");
        require(totalAmount >= WITHDRAW_MIN_AMOUNT, "Please check minimum compounding amount");

        uint8 plan  = 0;
        uint256 contractBalance = address(this).balance;
        if (contractBalance < totalAmount) {
            totalAmount = contractBalance;
        }
        require(totalAmount >= WITHDRAW_MIN_AMOUNT, "Please check contract balance");

        user.checkpoint = getDateFromTimeStamp(block.timestamp);

        uint256 compoundFee = totalAmount.mul(COMPOUND_FEE).div(PERCENTS_DIVIDER);
        feePayout(compoundFee);
        uint256 compoundAmount = totalAmount.sub(compoundFee);

        (uint256 percent, uint256 profit, , uint256 finish) = getResult(plan, compoundAmount);
        user.deposits.push(Deposit(plan, percent, compoundAmount, profit, getDateFromTimeStamp(block.timestamp), finish));
        totalStaked = totalStaked.add(compoundAmount);
        emit NewDeposit(msg.sender, plan, percent, compoundAmount, profit, block.timestamp, finish);
    }

    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function getPlanInfo(uint8 plan) public view returns(uint256 time, uint256 percent) {
        require(plan < 3, "Invalid plan");
        time = plans[plan].time;
        percent = plans[plan].percent;
    }

    function getPercent(uint8 plan) public view returns (uint256) {
        require(plan < 3, "Invalid plan");
        return plans[plan].percent;
    }
    
    function getResult(uint8 plan, uint256 deposit) public view returns ( uint256 percent, uint256 profit, uint256 current, uint256 finish){
        require(plan < 3, "Invalid plan");
        percent = getPercent(plan);
        profit = deposit.mul(percent).div(PERCENTS_DIVIDER).mul(plans[plan].time);
        current = getDateFromTimeStamp(block.timestamp);
        finish = current.add(plans[plan].time);
    }
    
    function getUserDividends(address userAddress) public view returns (uint256){
        User memory user = users[userAddress];

        uint256 totalAmount;
        for (uint256 i = 0; i < user.deposits.length; i++) {
            if (user.checkpoint < user.deposits[i].finish) {
                uint256 share = user.deposits[i].amount.mul(user.deposits[i].percent).div(PERCENTS_DIVIDER);
                uint256 from = user.deposits[i].start > user.checkpoint ? user.deposits[i].start : user.checkpoint;
                uint256 to = user.deposits[i].finish < getDateFromTimeStamp(block.timestamp) ? user.deposits[i].finish : getDateFromTimeStamp(block.timestamp);
                if (from < to) {
                    totalAmount = totalAmount.add(share.mul(to.sub(from)));
                }
            }
        }
        return totalAmount;
    }
    
    function getUserCheckpoint(address userAddress) public view returns(uint256) {
        return users[userAddress].checkpoint;
    }

    function getUserReferrer(address userAddress) public view returns(address) {
        return users[userAddress].referrer;
    }

    function getUserDownlineCount(address userAddress) public view returns(uint256, uint256, uint256) {
        return (users[userAddress].levels[0], users[userAddress].levels[1], users[userAddress].levels[2]);
    }

    function getUserReferralBonus(address userAddress) public view returns(uint256) {
        return users[userAddress].bonus;
    }

    function getUserReferralTotalBonus(address userAddress) public view returns(uint256) {
        return users[userAddress].totalBonus;
    }

    function getUserReferralWithdrawn(address userAddress) public view returns(uint256) {
        return users[userAddress].totalBonus.sub(users[userAddress].bonus);
    }

    function getUserAvailable(address userAddress) public view returns(uint256) {
        return getUserReferralBonus(userAddress).add(getUserDividends(userAddress));
    }
    

    function getUserAmountOfDeposits(address userAddress) public view returns(uint256) {
        return users[userAddress].deposits.length;
    }

    function getUserTotalDeposits(address userAddress) public view returns(uint256 amount) {
        for (uint256 i = 0; i < users[userAddress].deposits.length; i++) {
            amount = amount.add(users[userAddress].deposits[i].amount);
        }
    }
    
    function getUserTotalWithdrawn(address userAddress) public view returns(uint256) {
        return users[userAddress].wprofits;
    }
    
    function getUserDepositInfo(address userAddress, uint256 index) public view returns (uint8 plan, uint256 percent, uint256 amount, uint256 profit, uint256 start, uint256 finish){
        User memory user = users[userAddress];
        require(index < user.deposits.length, "Invalid index");

        plan = user.deposits[index].plan;
        percent = user.deposits[index].percent;
        amount = user.deposits[index].amount;
        profit = user.deposits[index].profit;
        start = user.deposits[index].start;
        finish = user.deposits[index].finish;
    }
    
    function setMarketingAccount(address payable _newMarketingAccount) public onlyOwner {
        require(_newMarketingAccount != address(0));
        marketingAddress = payable(_newMarketingAccount);
    }

    function getDateFromTimeStamp(uint256 time) internal pure returns (uint256){
        uint256 dateNo = time.div(24 * 60 * 60);
        return dateNo;
    }
    
    function isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }

    function emergencyWithdraw() public onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
}
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) {
        require(b <= a, "SafeMath: subtraction overflow");
        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) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"totalAmount","type":"uint256"}],"name":"FeePayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint8","name":"plan","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"profit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finish","type":"uint256"}],"name":"NewDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"}],"name":"Newbie","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"address","name":"referral","type":"address"},{"indexed":true,"internalType":"uint256","name":"level","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RefBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"onOwnershipTransferred","type":"event"},{"inputs":[],"name":"COMPOUND_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_WITHDRAW_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INVEST_MAX_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INVEST_MIN_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTS_DIVIDER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_MIN_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"plan","type":"uint8"}],"name":"getPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"plan","type":"uint8"}],"name":"getPlanInfo","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"percent","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"plan","type":"uint8"},{"internalType":"uint256","name":"deposit","type":"uint256"}],"name":"getResult","outputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"profit","type":"uint256"},{"internalType":"uint256","name":"current","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserAmountOfDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserCheckpoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getUserDepositInfo","outputs":[{"internalType":"uint8","name":"plan","type":"uint8"},{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"profit","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"finish","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserDownlineCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferralBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferralTotalBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferralWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserTotalDeposits","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getUserTotalWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrer","type":"address"}],"name":"invest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newMarketingAccount","type":"address"}],"name":"setMarketingAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalRefBonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e060405260326080908152600060a081905260c05262000025906001906003620000dc565b503480156200003357600080fd5b5060008054336001600160a01b03199182161782556040805180820190915261012c81526005602082018181526006805460018101825590865292517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290940293840155517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090920191909155915482546001600160a01b03909116911617905562000148565b8280548282559060005260206000209081019282156200011f579160200282015b828111156200011f578251829060ff16905591602001919060010190620000fd565b506200012d92915062000131565b5090565b5b808211156200012d576000815560010162000132565b611f2880620001586000396000f3fe6080604052600436106101ee5760003560e01c80637d8cb7a21161010d578063c0806b03116100a0578063e262113e1161006f578063e262113e146102d2578063e85abe0914610637578063f2fde38b14610670578063f69e204614610690578063fb4cb32b146106a5576101ee565b8063c0806b0314610583578063c7547416146105d4578063d7ffca91146105e9578063db2e21bc14610622576101ee565b8063a51b9533116100dc578063a51b9533146104d8578063a5ece941146104f8578063a8aeb6c214610518578063aecaa6341461054e576101ee565b80637d8cb7a2146104645780637e3abeea14610482578063817b1cd2146104a25780638da5cb5b146104b8576101ee565b806348c372031161018557806369b11dd51161015457806369b11dd5146104065780636bb185561461041c5780636f9fb98a1461043c5780637c79614a1461044f576101ee565b806348c37203146103565780634b3197131461039057806350b2a881146103a65780635936cf61146103c6576101ee565b8063153ab9df116101c1578063153ab9df146102b25780631e2ac81b146102d257806336144c9a146102ed5780633ccfd60b14610341576101ee565b806301c234a8146101f357806303a93c0c1461021c57806303f9c7931461027d578063040a772e14610292575b600080fd5b3480156101ff57600080fd5b506102096103e881565b6040519081526020015b60405180910390f35b34801561022857600080fd5b50610262610237366004611d9c565b6001600160a01b03166000908152600760205260409020600381015460048201546005909201549092565b60408051938452602084019290925290820152606001610213565b61029061028b366004611d9c565b6106de565b005b34801561029e57600080fd5b506102096102ad366004611d9c565b610c21565b3480156102be57600080fd5b506102096102cd366004611d9c565b610f4a565b3480156102de57600080fd5b50610209662386f26fc1000081565b3480156102f957600080fd5b50610329610308366004611d9c565b6001600160a01b039081166000908152600760205260409020600201541690565b6040516001600160a01b039091168152602001610213565b34801561034d57600080fd5b50610290610f80565b34801561036257600080fd5b50610209610371366004611d9c565b6001600160a01b03166000908152600760208190526040909120015490565b34801561039c57600080fd5b5061020960045481565b3480156103b257600080fd5b506102906103c1366004611d9c565b6111f6565b3480156103d257600080fd5b506103e66103e1366004611dfd565b611242565b604080519485526020850193909352918301526060820152608001610213565b34801561041257600080fd5b5061020960035481565b34801561042857600080fd5b50610209610437366004611d9c565b61131b565b34801561044857600080fd5b5047610209565b34801561045b57600080fd5b50610209600a81565b34801561047057600080fd5b5061020969043c33c193756480000081565b34801561048e57600080fd5b5061020961049d366004611d9c565b611346565b3480156104ae57600080fd5b5061020960025481565b3480156104c457600080fd5b50600054610329906001600160a01b031681565b3480156104e457600080fd5b506102096104f3366004611de3565b6113e2565b34801561050457600080fd5b50600554610329906001600160a01b031681565b34801561052457600080fd5b50610209610533366004611d9c565b6001600160a01b031660009081526007602052604090205490565b34801561055a57600080fd5b5061056e610569366004611de3565b611444565b60408051928352602083019190915201610213565b34801561058f57600080fd5b506105a361059e366004611db8565b6114df565b6040805160ff90971687526020870195909552938501929092526060840152608083015260a082015260c001610213565b3480156105e057600080fd5b50610209601e81565b3480156105f557600080fd5b50610209610604366004611d9c565b6001600160a01b031660009081526007602052604090206001015490565b34801561062e57600080fd5b5061029061178b565b34801561064357600080fd5b50610209610652366004611d9c565b6001600160a01b031660009081526007602052604090206006015490565b34801561067c57600080fd5b5061029061068b366004611d9c565b6117d1565b34801561069c57600080fd5b50610290611856565b3480156106b157600080fd5b506102096106c0366004611d9c565b6001600160a01b031660009081526007602052604090206008015490565b34662386f26fc1000081101561073b5760405162461bcd60e51b815260206004820152601e60248201527f436865636b206d696e696d756d20696e76657374696e6720616d6f756e74000060448201526064015b60405180910390fd5b69043c33c19375648000008111156107955760405162461bcd60e51b815260206004820152601e60248201527f436865636b206d6178696d756d20696e76657374696e6720616d6f756e7400006044820152606401610732565b6000806107af6103e86107a985601e611b60565b90611be6565b90506107ba81611c4b565b60006107c68483611cbe565b3360009081526007602052604090206002810154919250906001600160a01b0316610939576001600160a01b0386166000908152600760205260409020541580159061081b57506001600160a01b0386163314155b1561083e576002810180546001600160a01b0319166001600160a01b0388161790555b60028101546001600160a01b031660005b6003811015610936576001600160a01b0382161561091f576108bb600160076000856001600160a01b03166001600160a01b0316815260200190815260200160002060030183600381106108b357634e487b7160e01b600052603260045260246000fd5b015490611d1c565b6001600160a01b0383166000908152600760205260409020600390810190839081106108f757634e487b7160e01b600052603260045260246000fd5b01556001600160a01b0391821660009081526007602052604090206002015490911690610924565b610936565b8061092e81611eac565b91505061084f565b50505b60028101546001600160a01b031615610aab5760028101546001600160a01b031660005b6003811015610aa8576001600160a01b03821615610a915760006109bb6103e86107a9600185815481106109a157634e487b7160e01b600052603260045260246000fd5b906000526020600020015488611b6090919063ffffffff16565b6001600160a01b0384166000908152600760205260409020600601549091506109e49082611d1c565b6001600160a01b038416600090815260076020819052604090912060068101929092550154610a139082611d1c565b6001600160a01b038416600081815260076020818152604092839020909101939093555183815284923392917fd41f7e766eebcc7ff42b11ac8691bdf864db4afc0c55e71d629d54edce460d98910160405180910390a4506001600160a01b0391821660009081526007602052604090206002015490911690610a96565b610aa8565b80610aa081611eac565b91505061095d565b50505b8054610af357610aba42611d7b565b60018201556040513381527f9fd565cd14c3c391679eb0cad12a14dcf7534e9d3462bcb9b67a098a9bbbc24a9060200160405180910390a15b6000806000610b028786611242565b93505092509250836000016040518060c001604052808960ff168152602001858152602001878152602001848152602001610b3c42611d7b565b815260209081018490528254600180820185556000948552938290208351600690920201805460ff191660ff90921691909117815590820151928101929092556040810151600280840191909155606082015160038401556080820151600484015560a09091015160059092019190915554610bb89086611d1c565b6002556040805160ff89168152602081018590529081018690526060810183905242608082015260a0810182905233907f84e02daa69bdb087c9fe8d3041abca495512cb14e723070f6d1d4efface82e5d9060c0015b60405180910390a2505050505050505050565b6001600160a01b0381166000908152600760209081526040808320815181546101009481028201850190935260e08101838152859491938492849190879085015b82821015610ccd5760008481526020908190206040805160c08101825260068602909201805460ff1683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101610c62565b505050908252506001820154602082015260028201546001600160a01b03166040808301919091528051606080820192839052909201919060038085019182845b815481526020019060010190808311610d0e575050509183525050600682015460208201526007820154604082015260089091015460609091015290506000805b825151811015610f40578251805182908110610d7b57634e487b7160e01b600052603260045260246000fd5b602002602001015160a0015183602001511015610f2e576000610e0b6103e86107a986600001518581518110610dc157634e487b7160e01b600052603260045260246000fd5b60200260200101516020015187600001518681518110610df157634e487b7160e01b600052603260045260246000fd5b602002602001015160400151611b6090919063ffffffff16565b90506000846020015185600001518481518110610e3857634e487b7160e01b600052603260045260246000fd5b60200260200101516080015111610e53578460200151610e82565b8451805184908110610e7557634e487b7160e01b600052603260045260246000fd5b6020026020010151608001515b90506000610e8f42611d7b565b8651805186908110610eb157634e487b7160e01b600052603260045260246000fd5b602002602001015160a0015110610ed057610ecb42611d7b565b610eff565b8551805185908110610ef257634e487b7160e01b600052603260045260246000fd5b602002602001015160a001515b905080821015610f2a57610f27610f20610f198385611cbe565b8590611b60565b8690611d1c565b94505b5050505b80610f3881611eac565b915050610d4f565b509150505b919050565b6000610f7a610f5883610c21565b6001600160a01b03841660009081526007602052604090206006015490611d1c565b92915050565b3360009081526007602052604090206001810154610f9d42611d7b565b11610fea5760405162461bcd60e51b815260206004820181905260248201527f596f752063616e206f6e6c79207769746864726177206f6e63652061206461796044820152606401610732565b6000610ff533610c21565b60068301549091501561101c576006820154611012908290611d1c565b6000600684015590505b600081116110645760405162461bcd60e51b81526020600482015260156024820152745573657220686173206e6f206469766964656e647360581b6044820152606401610732565b662386f26fc100008110156110ca5760405162461bcd60e51b815260206004820152602660248201527f506c6561736520636865636b206d696e696d756d207769746864726177616c20604482015265185b5bdd5b9d60d21b6064820152608401610732565b47818110156110d7578091505b662386f26fc1000082101561112e5760405162461bcd60e51b815260206004820152601d60248201527f506c6561736520636865636b20636f6e74726163742062616c616e63650000006044820152606401610732565b60006111416103e86107a985601e611b60565b905061114c81611c4b565b60006111588483611cbe565b905061116342611d7b565b600186015560088501546111779082611d1c565b6008860155604051339082156108fc029083906000818181858888f193505050501580156111a9573d6000803e3d6000fd5b506004546111b79082611d1c565b60045560405181815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d59060200160405180910390a25050505050565b6000546001600160a01b0316331461120d57600080fd5b6001600160a01b03811661122057600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008060038660ff161061126b5760405162461bcd60e51b815260040161073290611e18565b611274866113e2565b93506112c460068760ff168154811061129d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600290910201546112be6103e86107a98989611b60565b90611b60565b92506112cf42611d7b565b915061131060068760ff16815481106112f857634e487b7160e01b600052603260045260246000fd5b60009182526020909120600290910201548390611d1c565b905092959194509250565b6001600160a01b038116600090815260076020819052604082206006810154910154610f7a91611cbe565b6000805b6001600160a01b0383166000908152600760205260409020548110156113dc576001600160a01b038316600090815260076020526040902080546113c89190839081106113a757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016002015483611d1c90919063ffffffff16565b9150806113d481611eac565b91505061134a565b50919050565b600060038260ff16106114075760405162461bcd60e51b815260040161073290611e18565b60068260ff168154811061142b57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101549050919050565b60008060038360ff161061146a5760405162461bcd60e51b815260040161073290611e18565b60068360ff168154811061148e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000154915060068360ff16815481106114c657634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101549050915091565b6001600160a01b0382166000908152600760209081526040808320815181546101009481028201850190935260e0810183815285948594859485948594859491938492849190879085015b828210156115955760008481526020908190206040805160c08101825260068602909201805460ff1683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a0830152908352909201910161152a565b505050908252506001820154602082015260028201546001600160a01b03166040808301919091528051606080820192839052909201919060038085019182845b8154815260200190600101908083116115d657505050505081526020016006820154815260200160078201548152602001600882015481525050905080600001515188106116565760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610732565b805180518990811061167857634e487b7160e01b600052603260045260246000fd5b6020026020010151600001519650806000015188815181106116aa57634e487b7160e01b600052603260045260246000fd5b6020026020010151602001519550806000015188815181106116dc57634e487b7160e01b600052603260045260246000fd5b60200260200101516040015194508060000151888151811061170e57634e487b7160e01b600052603260045260246000fd5b60200260200101516060015193508060000151888151811061174057634e487b7160e01b600052603260045260246000fd5b60200260200101516080015192508060000151888151811061177257634e487b7160e01b600052603260045260246000fd5b602002602001015160a001519150509295509295509295565b6000546001600160a01b031633146117a257600080fd5b60405133904780156108fc02916000818181858888f193505050501580156117ce573d6000803e3d6000fd5b50565b6000546001600160a01b031633146117e857600080fd5b6001600160a01b0381166117fb57600080fd5b600080546040516001600160a01b03808516939216917f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600760205260409020600181015461187342611d7b565b116118c05760405162461bcd60e51b815260206004820181905260248201527f596f752063616e206f6e6c7920636f6d706f756e64206f6e63652061206461796044820152606401610732565b60006118cb33610c21565b6006830154909150156118f25760068201546118e8908290611d1c565b6000600684015590505b6000811161193a5760405162461bcd60e51b81526020600482015260156024820152745573657220686173206e6f206469766964656e647360581b6044820152606401610732565b662386f26fc100008110156119a15760405162461bcd60e51b815260206004820152602760248201527f506c6561736520636865636b206d696e696d756d20636f6d706f756e64696e6760448201526608185b5bdd5b9d60ca1b6064820152608401610732565b600047828110156119b0578092505b662386f26fc10000831015611a075760405162461bcd60e51b815260206004820152601d60248201527f506c6561736520636865636b20636f6e74726163742062616c616e63650000006044820152606401610732565b611a1042611d7b565b60018501556000611a286103e86107a986600a611b60565b9050611a3381611c4b565b6000611a3f8583611cbe565b90506000806000611a508785611242565b93505092509250886000016040518060c001604052808960ff168152602001858152602001868152602001848152602001611a8a42611d7b565b815260209081018490528254600180820185556000948552938290208351600690920201805460ff191660ff90921691909117815590820151928101929092556040810151600280840191909155606082015160038401556080820151600484015560a09091015160059092019190915554611b069085611d1c565b6002556040805160ff89168152602081018590529081018590526060810183905242608082015260a0810182905233907f84e02daa69bdb087c9fe8d3041abca495512cb14e723070f6d1d4efface82e5d9060c001610c0e565b600082611b6f57506000610f7a565b6000611b7b8385611e76565b905082611b888583611e56565b14611bdf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610732565b9392505050565b6000808211611c375760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610732565b6000611c438385611e56565b949350505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611c85573d6000803e3d6000fd5b5060405181815233907f2899dc8c12def1caa9accb64257cf2fd9f960f21bb27a560a757eae3c2ec43c19060200160405180910390a250565b600082821115611d105760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610732565b6000611c438385611e95565b600080611d298385611e3e565b905083811015611bdf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610732565b600080611bdf8362015180611be6565b803560ff81168114610f4557600080fd5b600060208284031215611dad578081fd5b8135611bdf81611edd565b60008060408385031215611dca578081fd5b8235611dd581611edd565b946020939093013593505050565b600060208284031215611df4578081fd5b611bdf82611d8b565b60008060408385031215611e0f578182fd5b611dd583611d8b565b6020808252600c908201526b24b73b30b634b210383630b760a11b604082015260600190565b60008219821115611e5157611e51611ec7565b500190565b600082611e7157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611e9057611e90611ec7565b500290565b600082821015611ea757611ea7611ec7565b500390565b6000600019821415611ec057611ec0611ec7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146117ce57600080fdfea2646970667358221220083402684cfed61c8fa3cc6f9ddc126b61ea5ddcb286c022b621fd9d9f0a416164736f6c63430008030033

Deployed ByteCode Sourcemap

555:11824:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:47;;;;;;;;;;;;1079:4;1036:47;;;;;7195:25:1;;;7183:2;7168:18;1036:47:0;;;;;;;;9683:214;;;;;;;;;;-1:-1:-1;9683:214:0;;;;;:::i;:::-;-1:-1:-1;;;;;9800:18:0;9754:7;9800:18;;;:5;:18;;;;;:25;;;:28;9830;;;;9860;;;;;9800;;9683:214;;;;;7686:25:1;;;7742:2;7727:18;;7720:34;;;;7770:18;;;7763:34;7674:2;7659:18;9683:214:0;7641:162:1;2473:2253:0;;;;;;:::i;:::-;;:::i;:::-;;8534:861;;;;;;;;;;-1:-1:-1;8534:861:0;;;;;:::i;:::-;;:::i;10368:170::-;;;;;;;;;;-1:-1:-1;10368:170:0;;;;;:::i;:::-;;:::i;755:56::-;;;;;;;;;;;;801:10;755:56;;9547:128;;;;;;;;;;-1:-1:-1;9547:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;9640:18:0;;;9613:7;9640:18;;;:5;:18;;;;;:27;;;;;9547:128;;;;-1:-1:-1;;;;;1663:32:1;;;1645:51;;1633:2;1618:18;9547:128:0;1600:102:1;4738:1358:0;;;;;;;;;;;;;:::i;10043:140::-;;;;;;;;;;-1:-1:-1;10043:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;10146:18:0;10119:7;10146:18;;;:5;:18;;;;;;;;:29;;;10043:140;1164:29;;;;;;;;;;;;;;;;11705:205;;;;;;;;;;-1:-1:-1;11705:205:0;;;;;:::i;:::-;;:::i;8107:415::-;;;;;;;;;;-1:-1:-1;8107:415:0;;;;;:::i;:::-;;:::i;:::-;;;;8039:25:1;;;8095:2;8080:18;;8073:34;;;;8123:18;;;8116:34;8181:2;8166:18;;8159:34;8026:3;8011:19;8107:415:0;7993:206:1;1129:28:0;;;;;;;;;;;;;;;;10191:169;;;;;;;;;;-1:-1:-1;10191:169:0;;;;;:::i;:::-;;:::i;7611:107::-;;;;;;;;;;-1:-1:-1;7689:21:0;7611:107;;965:41;;;;;;;;;;;;1004:2;965:41;;693:55;;;;;;;;;;;;737:11;693:55;;10703:255;;;;;;;;;;-1:-1:-1;10703:255:0;;;;;:::i;:::-;;:::i;1096:26::-;;;;;;;;;;;;;;;;88:20;;;;;;;;;;-1:-1:-1;88:20:0;;;;-1:-1:-1;;;;;88:20:0;;;7944:151;;;;;;;;;;-1:-1:-1;7944:151:0;;;;;:::i;:::-;;:::i;1206:39::-;;;;;;;;;;-1:-1:-1;1206:39:0;;;;-1:-1:-1;;;;;1206:39:0;;;10552:143;;;;;;;;;;-1:-1:-1;10552:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10653:18:0;10626:7;10653:18;;;:5;:18;;;;;:34;;10552:143;7726:210;;;;;;;;;;-1:-1:-1;7726:210:0;;;;;:::i;:::-;;:::i;:::-;;;;7405:25:1;;;7461:2;7446:18;;7439:34;;;;7378:18;7726:210:0;7360:119:1;11116:577:0;;;;;;;;;;-1:-1:-1;11116:577:0;;;;;:::i;:::-;;:::i;:::-;;;;8517:4:1;8505:17;;;8487:36;;8554:2;8539:18;;8532:34;;;;8582:18;;;8575:34;;;;8640:2;8625:18;;8618:34;8683:3;8668:19;;8661:35;8727:3;8712:19;;8705:35;8474:3;8459:19;11116:577:0;8441:305:1;874:49:0;;;;;;;;;;;;921:2;874:49;;9407:132;;;;;;;;;;-1:-1:-1;9407:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;9502:18:0;9475:7;9502:18;;;:5;:18;;;;;:29;;;;9407:132;12260:116;;;;;;;;;;;;;:::i;9905:130::-;;;;;;;;;;-1:-1:-1;9905:130:0;;;;;:::i;:::-;-1:-1:-1;;;;;10003:18:0;9976:7;10003:18;;;:5;:18;;;;;:24;;;;9905:130;350:198;;;;;;;;;;-1:-1:-1;350:198:0;;;;;:::i;:::-;;:::i;6108:1495::-;;;;;;;;;;;;;:::i;10970:134::-;;;;;;;;;;-1:-1:-1;10970:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;11069:18:0;11042:7;11069:18;;;:5;:18;;;;;:27;;;;10970:134;2473:2253;2552:9;675:10;2580:30;;;2572:72;;;;-1:-1:-1;;;2572:72:0;;6144:2:1;2572:72:0;;;6126:21:1;6183:2;6163:18;;;6156:30;6222:32;6202:18;;;6195:60;6272:18;;2572:72:0;;;;;;;;;737:11;2663:9;:30;;2655:72;;;;-1:-1:-1;;;2655:72:0;;5383:2:1;2655:72:0;;;5365:21:1;5422:2;5402:18;;;5395:30;5461:32;5441:18;;;5434:60;5511:18;;2655:72:0;5355:180:1;2655:72:0;2738:10;;2823:57;1079:4;2823:35;:9;921:2;2823:13;:35::i;:::-;:39;;:57::i;:::-;2803:77;;2891:20;2901:9;2891;:20::i;:::-;2924:21;2948:24;:9;2962;2948:13;:24::i;:::-;3011:10;2985:17;3005;;;:5;:17;;;;;3037:13;;;;2924:48;;-1:-1:-1;3005:17:0;-1:-1:-1;;;;;3037:13:0;3033:515;;-1:-1:-1;;;;;3085:15:0;;3119:1;3085:15;;;:5;:15;;;;;:31;:35;;;;:61;;-1:-1:-1;;;;;;3124:22:0;;3136:10;3124:22;;3085:61;3081:126;;;3167:13;;;:24;;-1:-1:-1;;;;;;3167:24:0;-1:-1:-1;;;;;3167:24:0;;;;;3081:126;3252:13;;;;-1:-1:-1;;;;;3252:13:0;3235:14;3280:257;3304:1;3300;:5;3280:257;;;-1:-1:-1;;;;;3335:20:0;;;3331:190;;3406:30;3434:1;3406:5;:13;3412:6;-1:-1:-1;;;;;3406:13:0;-1:-1:-1;;;;;3406:13:0;;;;;;;;;;;;:20;;3427:1;3406:23;;;;;-1:-1:-1;;;3406:23:0;;;;;;;;;;;;:27;:30::i;:::-;-1:-1:-1;;;;;3380:13:0;;;;;;:5;:13;;;;;:20;;;;;3401:1;;3380:23;;;;-1:-1:-1;;;3380:23:0;;;;;;;;;;:56;-1:-1:-1;;;;;3468:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;3331:190;;;3516:5;;3331:190;3307:3;;;;:::i;:::-;;;;3280:257;;;;3033:515;;3564:13;;;;-1:-1:-1;;;;;3564:13:0;:27;3560:612;;3625:13;;;;-1:-1:-1;;;;;3625:13:0;3608:14;3653:508;3677:1;3673;:5;3653:508;;;-1:-1:-1;;;;;3708:20:0;;;3704:441;;3753:14;3770:61;1079:4;3770:39;3788:17;3806:1;3788:20;;;;;;-1:-1:-1;;;3788:20:0;;;;;;;;;;;;;;;;;3770:13;:17;;:39;;;;:::i;:61::-;-1:-1:-1;;;;;3876:13:0;;;;;;:5;:13;;;;;:19;;;3753:78;;-1:-1:-1;3876:31:0;;3753:78;3876:23;:31::i;:::-;-1:-1:-1;;;;;3854:13:0;;;;;;:5;:13;;;;;;;;:19;;;:53;;;;3957:24;;:36;;3986:6;3957:28;:36::i;:::-;-1:-1:-1;;;;;3930:13:0;;;;;;:5;:13;;;;;;;;;:24;;;:63;;;;4021:39;7195:25:1;;;4050:1:0;;4038:10;;3930:13;4021:39;;7168:18:1;4021:39:0;;;;;;;-1:-1:-1;;;;;;4092:13:0;;;;;;;:5;:13;;;;;:22;;;;;;;3704:441;;;4140:5;;3704:441;3680:3;;;;:::i;:::-;;;;3653:508;;;;3560:612;;4188:20;;4184:151;;4248:37;4269:15;4248:20;:37::i;:::-;4230:15;;;:55;4305:18;;4312:10;1645:51:1;;4305:18:0;;1633:2:1;1618:18;4305::0;;;;;;;4184:151;4356:15;4373:14;4391;4409:30;4419:4;4425:13;4409:9;:30::i;:::-;4355:84;;;;;;;4450:4;:13;;4469:92;;;;;;;;4477:4;4469:92;;;;;;4483:7;4469:92;;;;4492:13;4469:92;;;;4507:6;4469:92;;;;4515:37;4536:15;4515:20;:37::i;:::-;4469:92;;;;;;;;;4450:112;;;;;;;;-1:-1:-1;4450:112:0;;;;;;;;;;;;;;;;-1:-1:-1;;4450:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4587:11;:30;;4603:13;4587:15;:30::i;:::-;4573:11;:44;4633:85;;;8517:4:1;8505:17;;8487:36;;8554:2;8539:18;;8532:34;;;8582:18;;;8575:34;;;8640:2;8625:18;;8618:34;;;4694:15:0;8683:3:1;8668:19;;8661:35;8727:3;8712:19;;8705:35;;;4644:10:0;;4633:85;;8474:3:1;8459:19;4633:85:0;;;;;;;;2473:2253;;;;;;;;;:::o;8534:861::-;-1:-1:-1;;;;;8640:18:0;;8602:7;8640:18;;;:5;:18;;;;;;;;8621:37;;;;;;;;;;;;;;;;;;;;;8602:7;;8621:37;;;;8640:18;;8621:37;8602:7;;8621:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8621:37:0;;;-1:-1:-1;8621:37:0;;;;;;;;;;;;-1:-1:-1;;;;;8621:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8621:37:0;;;-1:-1:-1;;8621:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8701:658:0;8725:13;;:20;8721:24;;8701:658;;;8789:13;;:16;;8803:1;;8789:16;;;;-1:-1:-1;;;8789:16:0;;;;;;;;;;;;;;;:23;;;8771:4;:15;;;:41;8767:581;;;8833:13;8849:75;1079:4;8849:53;8877:4;:13;;;8891:1;8877:16;;;;;;-1:-1:-1;;;8877:16:0;;;;;;;;;;;;;;;:24;;;8849:4;:13;;;8863:1;8849:16;;;;;;-1:-1:-1;;;8849:16:0;;;;;;;;;;;;;;;:23;;;:27;;:53;;;;:::i;:75::-;8833:91;;8943:12;8983:4;:15;;;8958:4;:13;;;8972:1;8958:16;;;;;;-1:-1:-1;;;8958:16:0;;;;;;;;;;;;;;;:22;;;:40;:83;;9026:4;:15;;;8958:83;;;9001:13;;:16;;9015:1;;9001:16;;;;-1:-1:-1;;;9001:16:0;;;;;;;;;;;;;;;:22;;;8958:83;8943:98;;9060:10;9099:37;9120:15;9099:20;:37::i;:::-;9073:13;;:16;;9087:1;;9073:16;;;;-1:-1:-1;;;9073:16:0;;;;;;;;;;;;;;;:23;;;:63;:129;;9165:37;9186:15;9165:20;:37::i;:::-;9073:129;;;9139:13;;:16;;9153:1;;9139:16;;;;-1:-1:-1;;;9139:16:0;;;;;;;;;;;;;;;:23;;;9073:129;9060:142;;9232:2;9225:4;:9;9221:112;;;9273:40;9289:23;9299:12;:2;9306:4;9299:6;:12::i;:::-;9289:5;;:9;:23::i;:::-;9273:11;;:15;:40::i;:::-;9259:54;;9221:112;8767:581;;;;8747:3;;;;:::i;:::-;;;;8701:658;;;-1:-1:-1;9376:11:0;-1:-1:-1;;8534:861:0;;;;:::o;10368:170::-;10435:7;10462:68;10500:29;10517:11;10500:16;:29::i;:::-;-1:-1:-1;;;;;10003:18:0;;9976:7;10003:18;;;:5;:18;;;;;:24;;;10462:37;;:68::i;:::-;10455:75;10368:170;-1:-1:-1;;10368:170:0:o;4738:1358::-;4802:10;4776:17;4796;;;:5;:17;;;;;4909:28;;;;4869:37;4890:15;4869:20;:37::i;:::-;:68;4861:114;;;;-1:-1:-1;;;4861:114:0;;2844:2:1;4861:114:0;;;2826:21:1;;;2863:18;;;2856:30;2922:34;2902:18;;;2895:62;2974:18;;4861:114:0;2816:182:1;4861:114:0;4986:19;5008:28;5025:10;5008:16;:28::i;:::-;5051:10;;;;4986:50;;-1:-1:-1;5051:14:0;5047:117;;5112:10;;;;5096:27;;:11;;:15;:27::i;:::-;5151:1;5138:10;;;:14;5082:41;-1:-1:-1;5047:117:0;5196:1;5182:11;:15;5174:49;;;;-1:-1:-1;;;5174:49:0;;2133:2:1;5174:49:0;;;2115:21:1;2172:2;2152:18;;;2145:30;-1:-1:-1;;;2191:18:1;;;2184:51;2252:18;;5174:49:0;2105:171:1;5174:49:0;801:10;5242:11;:34;;5234:85;;;;-1:-1:-1;;;5234:85:0;;6844:2:1;5234:85:0;;;6826:21:1;6883:2;6863:18;;;6856:30;6922:34;6902:18;;;6895:62;-1:-1:-1;;;6973:18:1;;;6966:36;7019:19;;5234:85:0;6816:228:1;5234:85:0;5356:21;5392:29;;;5388:91;;;5452:15;5438:29;;5388:91;801:10;5497:11;:34;;5489:76;;;;-1:-1:-1;;;5489:76:0;;4311:2:1;5489:76:0;;;4293:21:1;4350:2;4330:18;;;4323:30;4389:31;4369:18;;;4362:59;4438:18;;5489:76:0;4283:179:1;5489:76:0;5578:19;5600:59;1079:4;5600:37;:11;921:2;5600:15;:37::i;:59::-;5578:81;;5670:22;5680:11;5670:9;:22::i;:::-;5705;5730:28;:11;5746;5730:15;:28::i;:::-;5705:53;;5797:37;5818:15;5797:20;:37::i;:::-;5779:15;;;:55;5872:13;;;;5871:35;;5891:14;5871:19;:35::i;:::-;5855:13;;;:51;5917:44;;5925:10;;5917:44;;;;;5946:14;;5917:44;;;;5946:14;5925:10;5917:44;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6000:14:0;;:34;;6019:14;6000:18;:34::i;:::-;5982:14;:53;6051:37;;7195:25:1;;;6061:10:0;;6051:37;;7183:2:1;7168:18;6051:37:0;;;;;;;4738:1358;;;;;:::o;11705:205::-;318:5;;-1:-1:-1;;;;;318:5:0;304:10;:19;296:28;;;;;;-1:-1:-1;;;;;11808:34:0;::::1;11800:43;;;::::0;::::1;;11854:16;:48:::0;;-1:-1:-1;;;;;;11854:48:0::1;-1:-1:-1::0;;;;;11854:48:0;;;::::1;::::0;;;::::1;::::0;;11705:205::o;8107:415::-;8177:15;8194:14;8210:15;8227:14;8268:1;8261:4;:8;;;8253:33;;;;-1:-1:-1;;;8253:33:0;;;;;;;:::i;:::-;8307:16;8318:4;8307:10;:16::i;:::-;8297:26;;8343:64;8390:5;8396:4;8390:11;;;;;;;;-1:-1:-1;;;8390:11:0;;;;;;;;;;;;;;;;;;;;;;:16;8343:42;1079:4;8343:20;:7;8355;8343:11;:20::i;:42::-;:46;;:64::i;:::-;8334:73;;8428:37;8449:15;8428:20;:37::i;:::-;8418:47;;8485:29;8497:5;8503:4;8497:11;;;;;;;;-1:-1:-1;;;8497:11:0;;;;;;;;;;;;;;;;;;;;;;:16;8485:7;;:11;:29::i;:::-;8476:38;;8107:415;;;;;;;:::o;10191:169::-;-1:-1:-1;;;;;10327:18:0;;10266:7;10327:18;;;:5;:18;;;;;;;:24;;;;10293:29;;;:59;;:33;:59::i;10703:255::-;10774:14;;10801:150;-1:-1:-1;;;;;10825:18:0;;;;;;:5;:18;;;;;:34;10821:38;;10801:150;;;-1:-1:-1;;;;;10901:18:0;;;;;;:5;:18;;;;;:30;;10890:49;;10901:18;10929:1;;10901:30;;;;-1:-1:-1;;;10901:30:0;;;;;;;;;;;;;;;;;;;:37;;;10890:6;:10;;:49;;;;:::i;:::-;10881:58;-1:-1:-1;10861:3:0;;;;:::i;:::-;;;;10801:150;;;;10703:255;;;:::o;7944:151::-;7997:7;8032:1;8025:4;:8;;;8017:33;;;;-1:-1:-1;;;8017:33:0;;;;;;;:::i;:::-;8068:5;8074:4;8068:11;;;;;;;;-1:-1:-1;;;8068:11:0;;;;;;;;;;;;;;;;;;;:19;;;8061:26;;7944:151;;;:::o;7726:210::-;7779:12;7793:15;7836:1;7829:4;:8;;;7821:33;;;;-1:-1:-1;;;7821:33:0;;;;;;;:::i;:::-;7872:5;7878:4;7872:11;;;;;;;;-1:-1:-1;;;7872:11:0;;;;;;;;;;;;;;;;;;;:16;;;7865:23;;7909:5;7915:4;7909:11;;;;;;;;-1:-1:-1;;;7909:11:0;;;;;;;;;;;;;;;;;;;:19;;;7899:29;;7726:210;;;:::o;11116:577::-;-1:-1:-1;;;;;11322:18:0;;11201:10;11322:18;;;:5;:18;;;;;;;;11303:37;;;;;;;;;;;;;;;;;;;;;11201:10;;;;;;;;;;;;11303:37;;;;11322:18;;11303:37;11201:10;;11303:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11303:37:0;;;-1:-1:-1;11303:37:0;;;;;;;;;;;;-1:-1:-1;;;;;11303:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11367:4;:13;;;:20;11359:5;:28;11351:54;;;;-1:-1:-1;;;11351:54:0;;3969:2:1;11351:54:0;;;3951:21:1;4008:2;3988:18;;;3981:30;-1:-1:-1;;;4027:18:1;;;4020:43;4080:18;;11351:54:0;3941:163:1;11351:54:0;11425:13;;:20;;11439:5;;11425:20;;;;-1:-1:-1;;;11425:20:0;;;;;;;;;;;;;;;:25;;;11418:32;;11471:4;:13;;;11485:5;11471:20;;;;;;-1:-1:-1;;;11471:20:0;;;;;;;;;;;;;;;:28;;;11461:38;;11519:4;:13;;;11533:5;11519:20;;;;;;-1:-1:-1;;;11519:20:0;;;;;;;;;;;;;;;:27;;;11510:36;;11566:4;:13;;;11580:5;11566:20;;;;;;-1:-1:-1;;;11566:20:0;;;;;;;;;;;;;;;:27;;;11557:36;;11612:4;:13;;;11626:5;11612:20;;;;;;-1:-1:-1;;;11612:20:0;;;;;;;;;;;;;;;:26;;;11604:34;;11658:4;:13;;;11672:5;11658:20;;;;;;-1:-1:-1;;;11658:20:0;;;;;;;;;;;;;;;:27;;;11649:36;;11116:577;;;;;;;;;:::o;12260:116::-;318:5;;-1:-1:-1;;;;;318:5:0;304:10;:19;296:28;;;;;;12317:51:::1;::::0;12325:10:::1;::::0;12346:21:::1;12317:51:::0;::::1;;;::::0;::::1;::::0;;;12346:21;12325:10;12317:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12260:116::o:0;350:198::-;318:5;;-1:-1:-1;;;;;318:5:0;304:10;:19;296:28;;;;;;-1:-1:-1;;;;;432:23:0;::::1;424:32;;;::::0;::::1;;495:5;::::0;;472:40:::1;::::0;-1:-1:-1;;;;;472:40:0;;::::1;::::0;495:5;::::1;::::0;472:40:::1;::::0;::::1;523:5;:17:::0;;-1:-1:-1;;;;;;523:17:0::1;-1:-1:-1::0;;;;;523:17:0;;;::::1;::::0;;;::::1;::::0;;350:198::o;6108:1495::-;6172:10;6146:17;6166;;;:5;:17;;;;;6279:28;;;;6239:37;6260:15;6239:20;:37::i;:::-;:68;6231:114;;;;-1:-1:-1;;;6231:114:0;;2483:2:1;6231:114:0;;;2465:21:1;;;2502:18;;;2495:30;2561:34;2541:18;;;2534:62;2613:18;;6231:114:0;2455:182:1;6231:114:0;6356:19;6378:28;6395:10;6378:16;:28::i;:::-;6421:10;;;;6356:50;;-1:-1:-1;6421:14:0;6417:117;;6482:10;;;;6466:27;;:11;;:15;:27::i;:::-;6521:1;6508:10;;;:14;6452:41;-1:-1:-1;6417:117:0;6566:1;6552:11;:15;6544:49;;;;-1:-1:-1;;;6544:49:0;;2133:2:1;6544:49:0;;;2115:21:1;2172:2;2152:18;;;2145:30;-1:-1:-1;;;2191:18:1;;;2184:51;2252:18;;6544:49:0;2105:171:1;6544:49:0;801:10;6612:11;:34;;6604:86;;;;-1:-1:-1;;;6604:86:0;;3561:2:1;6604:86:0;;;3543:21:1;3600:2;3580:18;;;3573:30;3639:34;3619:18;;;3612:62;-1:-1:-1;;;3690:18:1;;;3683:37;3737:19;;6604:86:0;3533:229:1;6604:86:0;6703:10;6755:21;6791:29;;;6787:91;;;6851:15;6837:29;;6787:91;801:10;6896:11;:34;;6888:76;;;;-1:-1:-1;;;6888:76:0;;4311:2:1;6888:76:0;;;4293:21:1;4350:2;4330:18;;;4323:30;4389:31;4369:18;;;4362:59;4438:18;;6888:76:0;4283:179:1;6888:76:0;6995:37;7016:15;6995:20;:37::i;:::-;6977:15;;;:55;7045:19;7067:51;1079:4;7067:29;:11;1004:2;7067:15;:29::i;:51::-;7045:73;;7129:22;7139:11;7129:9;:22::i;:::-;7162;7187:28;:11;7203;7187:15;:28::i;:::-;7162:53;;7229:15;7246:14;7264;7282:31;7292:4;7298:14;7282:9;:31::i;:::-;7228:85;;;;;;;7324:4;:13;;7343:93;;;;;;;;7351:4;7343:93;;;;;;7357:7;7343:93;;;;7366:14;7343:93;;;;7382:6;7343:93;;;;7390:37;7411:15;7390:20;:37::i;:::-;7343:93;;;;;;;;;7324:113;;;;;;;;-1:-1:-1;7324:113:0;;;;;;;;;;;;;;;;-1:-1:-1;;7324:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7462:11;:31;;7478:14;7462:15;:31::i;:::-;7448:11;:45;7509:86;;;8517:4:1;8505:17;;8487:36;;8554:2;8539:18;;8532:34;;;8582:18;;;8575:34;;;8640:2;8625:18;;8618:34;;;7571:15:0;8683:3:1;8668:19;;8661:35;8727:3;8712:19;;8705:35;;;7520:10:0;;7509:86;;8474:3:1;8459:19;7509:86:0;8441:305:1;13125:246:0;13183:7;13207:6;13203:47;;-1:-1:-1;13237:1:0;13230:8;;13203:47;13260:9;13272:5;13276:1;13272;:5;:::i;:::-;13260:17;-1:-1:-1;13305:1:0;13296:5;13300:1;13260:17;13296:5;:::i;:::-;:10;13288:56;;;;-1:-1:-1;;;13288:56:0;;5742:2:1;13288:56:0;;;5724:21:1;5781:2;5761:18;;;5754:30;5820:34;5800:18;;;5793:62;-1:-1:-1;;;5871:18:1;;;5864:31;5912:19;;13288:56:0;5714:223:1;13288:56:0;13362:1;13125:246;-1:-1:-1;;;13125:246:0:o;13377:177::-;13435:7;13467:1;13463;:5;13455:44;;;;-1:-1:-1;;;13455:44:0;;5028:2:1;13455:44:0;;;5010:21:1;5067:2;5047:18;;;5040:30;5106:28;5086:18;;;5079:56;5152:18;;13455:44:0;5000:176:1;13455:44:0;13510:9;13522:5;13526:1;13522;:5;:::i;:::-;13510:17;13377:177;-1:-1:-1;;;;13377:177:0:o;2331:130::-;2382:16;;:30;;-1:-1:-1;;;;;2382:16:0;;;;:30;;;;;2408:3;;2382:16;:30;:16;:30;2408:3;2382:16;:30;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2428:25:0;;7195::1;;;2437:10:0;;2428:25;;7183:2:1;7168:18;2428:25:0;;;;;;;2331:130;:::o;12937:182::-;12995:7;13028:1;13023;:6;;13015:49;;;;-1:-1:-1;;;13015:49:0;;4669:2:1;13015:49:0;;;4651:21:1;4708:2;4688:18;;;4681:30;4747:32;4727:18;;;4720:60;4797:18;;13015:49:0;4641:180:1;13015:49:0;13075:9;13087:5;13091:1;13087;:5;:::i;12752:179::-;12810:7;;12842:5;12846:1;12842;:5;:::i;:::-;12830:17;;12871:1;12866;:6;;12858:46;;;;-1:-1:-1;;;12858:46:0;;3205:2:1;12858:46:0;;;3187:21:1;3244:2;3224:18;;;3217:30;3283:29;3263:18;;;3256:57;3330:18;;12858:46:0;3177:177:1;11918:157:0;11985:7;;12021:22;:4;12030:12;12021:8;:22::i;14:156:1:-;80:20;;140:4;129:16;;119:27;;109:2;;160:1;157;150:12;175:257;;287:2;275:9;266:7;262:23;258:32;255:2;;;308:6;300;293:22;255:2;352:9;339:23;371:31;396:5;371:31;:::i;707:325::-;;;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;1022:2;1007:18;;;;994:32;;-1:-1:-1;;;794:238:1:o;1037:192::-;;1147:2;1135:9;1126:7;1122:23;1118:32;1115:2;;;1168:6;1160;1153:22;1115:2;1196:27;1213:9;1196:27;:::i;1234:260::-;;;1361:2;1349:9;1340:7;1336:23;1332:32;1329:2;;;1382:6;1374;1367:22;1329:2;1410:27;1427:9;1410:27;:::i;6301:336::-;6503:2;6485:21;;;6542:2;6522:18;;;6515:30;-1:-1:-1;;;6576:2:1;6561:18;;6554:42;6628:2;6613:18;;6475:162::o;8751:128::-;;8822:1;8818:6;8815:1;8812:13;8809:2;;;8828:18;;:::i;:::-;-1:-1:-1;8864:9:1;;8799:80::o;8884:217::-;;8950:1;8940:2;;-1:-1:-1;;;8975:31:1;;9029:4;9026:1;9019:15;9057:4;8982:1;9047:15;8940:2;-1:-1:-1;9086:9:1;;8930:171::o;9106:168::-;;9212:1;9208;9204:6;9200:14;9197:1;9194:21;9189:1;9182:9;9175:17;9171:45;9168:2;;;9219:18;;:::i;:::-;-1:-1:-1;9259:9:1;;9158:116::o;9279:125::-;;9347:1;9344;9341:8;9338:2;;;9352:18;;:::i;:::-;-1:-1:-1;9389:9:1;;9328:76::o;9409:135::-;;-1:-1:-1;;9469:17:1;;9466:2;;;9489:18;;:::i;:::-;-1:-1:-1;9536:1:1;9525:13;;9456:88::o;9549:127::-;9610:10;9605:3;9601:20;9598:1;9591:31;9641:4;9638:1;9631:15;9665:4;9662:1;9655:15;9681:131;-1:-1:-1;;;;;9756:31:1;;9746:42;;9736:2;;9802:1;9799;9792:12

Swarm Source

ipfs://083402684cfed61c8fa3cc6f9ddc126b61ea5ddcb286c022b621fd9d9f0a4161
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.