Contract 0x4f5be0cd73afd12ecb3188ac911f498845f9dc71 2

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4c2bef1b70c7919ff8891a43ddd95fa4f5bd50e1e7915868e7b5b77fb3b8f2a0Withdraw112460652021-09-26 8:30:2123 days 3 hrs ago0xa3a1f21331a786cb6db1e3b824773156613c00dc IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000262326
0x6b3ad544899d88526d83a890eac3dd5eca5da4cb876efd011a1c3e6a518f2c9aWithdraw111938192021-09-24 12:43:1624 days 22 hrs ago0x70f423f8374314eb553fe8b3ce470c4d3e811a87 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000252455
0x8c52bc0786bed3f562d260f00b8775c3c91a760c66fc3a908de3e299dd076025Compound111938042021-09-24 12:42:3124 days 22 hrs ago0x70f423f8374314eb553fe8b3ce470c4d3e811a87 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00025443
0xce861d94b87ba229e143923a1a7f64912c6bc66078c7802216f78d8adb0ab75eWithdraw106625272021-09-05 23:04:0343 days 12 hrs ago0xfe8e222d42f684350782eb0587eb723c2331dc02 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000354005
0xf14b31d874ba0e857579b5b946a981013ad5834eff74e66bd30873ef0c4c465aWithdraw106623742021-09-05 22:56:2243 days 12 hrs ago0xfe8e222d42f684350782eb0587eb723c2331dc02 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000354005
0xb6bf8fb69d73df2d0ef0d2ee2e6d63695851f6a84b6e61a00f2e714b62bfe4cfWithdraw106618952021-09-05 22:32:2543 days 13 hrs ago0xfe8e222d42f684350782eb0587eb723c2331dc02 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000354005
0xd5b033a8eb4b18d37d907e343a37e4f1cc645c354a573b9f11f2746bcec6f7cdWithdraw104067542021-08-27 23:40:3852 days 11 hrs ago0x810c7a0b5e85b37dbdacee987714386e07e673f4 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000286305
0xa9fe898e1266afafed08207a19e5159e764cfd3970e2ffb71a185d27c3bd3ab0Withdraw104067222021-08-27 23:39:0252 days 11 hrs ago0x810c7a0b5e85b37dbdacee987714386e07e673f4 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000286305
0xd8124efd7bf430fbd98bb9b3b4a93afb7daa40cb9171408c74e36d61ea77c634Compound102028412021-08-20 20:05:4859 days 15 hrs ago0x70f423f8374314eb553fe8b3ce470c4d3e811a87 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00025443
0x32e5b1004e5251cc432b12f26dcc4ff7ab1e1cf9f90b6fc586fc4763cfb3600eWithdraw101571432021-08-19 5:38:4361 days 5 hrs ago0xf67047ae2ea39423638464fa4fe05a0210c5b835 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000252455
0x253cad5a1f27bb2957bdf497b231e8f60523705f85781e1d5276e5691937354aCompound100629892021-08-15 22:58:0864 days 12 hrs ago0x0b9ed41f23b7708e123d417df8f3c718c0ceaea8 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00022058
0x685d82a216f3693339e5163fd3272e78bacb32e46bdee53f02927bb395c51720Withdraw100158862021-08-14 7:35:2566 days 4 hrs ago0x1ca7cb775085fcf34b7074b65348770b870ced60 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00015
0xcec6361dd4c316e65508d83495e34f6930d290a4318aead2dd29c6075f553304Withdraw97575592021-08-05 2:38:4875 days 8 hrs ago0x63f06788670d8fe1e8994f88029b611b7a63821a IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00038879
0xbdbae04a391273ee41949c438e72b18291aa1a3e9b60b5672517cffcbfd49a43Withdraw96785932021-08-02 5:59:2378 days 5 hrs ago0xf67047ae2ea39423638464fa4fe05a0210c5b835 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000252455
0xe022b5fb051caaa5216df1323a1ef7810227ae890b32be26eb36b2dae7983ac8Compound94551542021-07-25 3:49:1486 days 7 hrs ago0x70f423f8374314eb553fe8b3ce470c4d3e811a87 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00025443
0x5d619b813e6b20cff5140d3a5b485c012d3ee6ace4798a3ffefd3e6c58f08517Withdraw94542592021-07-25 3:04:1486 days 8 hrs ago0xa955384f43f8d599d190749dffe57c1ea2d5c916 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000252455
0xc56b201b320e3dfc67e2a6d8352b5bc146efc36d4deee0c24b0a7e95ff1d7695Withdraw93706182021-07-22 5:01:5289 days 6 hrs ago0x407ad0f23f5ded868c5d10569bd73b06261f5556 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000252455
0x540d345f744bdcd05c21d0b31c97f1a39ced86722fe8c2f9135638e42ff72ad0Compound93283742021-07-20 17:49:0090 days 17 hrs ago0x70f423f8374314eb553fe8b3ce470c4d3e811a87 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00025443
0xc3d0a31150905c5c2f95fcdc05031c75dfd8094542e8118c0176bfed60fc8226Compound93215782021-07-20 12:08:5290 days 23 hrs ago0x4b2c5abc08158c82c591f4dc4aef79ba0022d735 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00022058
0xc5f4ec5fbe1f35be2afda318ab096bdcf2538c00c2f1ebb87830138326762c54Withdraw92100762021-07-16 15:09:4994 days 20 hrs ago0xa2ccec7776d420f90f111fc995e3e6241282cee1 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000306047
0xf038af4fce98c35c8895fdc589113a40f196d228c7fb6508ccc35840f00a08b2Withdraw92100582021-07-16 15:08:5594 days 20 hrs ago0xa2ccec7776d420f90f111fc995e3e6241282cee1 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000218605
0x0c79004bb6dcd6695a064a969586f0382a8f71eef58f20a5bc6fb494c22889a0Withdraw91416632021-07-14 6:07:1297 days 5 hrs ago0xf67047ae2ea39423638464fa4fe05a0210c5b835 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.000252455
0x68e9529f33ad4c8c83747b4d4dbcf2b4439d08cd93db8e18e2650d37ee66ba73Compound90375032021-07-10 15:18:51100 days 20 hrs ago0x70f423f8374314eb553fe8b3ce470c4d3e811a87 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00025443
0x16eb8013624d096fedbfd166fa3a8ef847cf3218db6cd2c6e8022506191eaaf8Compound90053942021-07-09 12:33:03101 days 23 hrs ago0x4b2c5abc08158c82c591f4dc4aef79ba0022d735 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00022058
0x8c444372b6502c0be9600f17d6190373f59378c1687c25f575c8532bdb244b22Withdraw89650272021-07-08 2:53:44103 days 8 hrs ago0xf313166a5f4e6d81b400f67ea008496ee0717801 IN  0x4f5be0cd73afd12ecb3188ac911f498845f9dc710 BNB0.00043721
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CakeFunds

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-14
*/

// SPDX-License-Identifier: MIT 
 
 /*   CakeFunds.app - The innovative way to obtain a long lasting and passive income, through the use of the most popular Token on the binance smart chain.
 *                    Invest your CAKE and earn daily dividends through our long term investment platform.
 *   
 *   | USAGE INSTRUCTIONS |
 *
 *   - Connect your Metamask to the binance smart chain (see help: https://academy.binance.com/en/articles/connecting-metamask-to-binance-smart-chain )
 *   - Head over to our website at cakefunds.app
 *   - Enter the amount of CAKE you would like to invest into our investment pool (1 CAKE minimum) using the "Invest CAKE" button
 *   - Earn a minimum of 1% daily return on your investment, for a minimum of 365% total return.
 *   - Claim your CAKE rewards every 24 hours, using the "Claim" button (There are no restrictions on the minimum amount of CAKE you can claim)
 *   - You can also Compound your CAKE every 24 hours, using the "Compound" button. This will increase your daily and total return.
 *
 *   | INVESTMENT CONDITIONS |
 *
 *   - Basic interest rate: +0.001% every 24 hours - only for new investments or compounds
 *   - Days reduction plan: Plans length reduces -0.2 days every day.
 *   - There is a minimum requirement of 1 CAKE in order to make an investment
 *   - There are no restrictions on the maximum amount of CAKE you can invest
 *   - Total income: This starts at 1% daily and 365% total (excluding the Basic interest rate)
 *   - Earnings are calculated every moment, claim or compound every 24 hours.
 *
 *   | AFFILIATE PROGRAM |
 *
 *   - 3-level referral commission: 5% - 2.5% - 0.5%
 *
 *   | INVESTMENT FUNDS DISTRIBUTION |
 *
 *   - 82% Platform main balance, participants payouts
 *   - 8% Affiliate program bonuses
 *   - 5% Support work, technical functioning, administration fee - this applies to all investments.
 *   - 5% Advertising and promotion expenses - this applies to all investments.
 *
 *   | COMPOUND FUNDS DISTRIBUTION |
 *
 *   - 95% Platform main balance, participants payouts
 *   - 5%% Support work, technical functioning, administration fee - this applies to all compounds.
 *
 *   | CONTACT |
 *
 *   - Visit our telegram to contact us: https://t.me/CakeFundsApp
 */
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;
    }
}
pragma solidity 0.8.3;
contract CakeFunds is Ownable{
    using SafeMath for uint256;
    using SafeBEP20 for IBEP20;

    IBEP20 public token;
    uint256 constant public INVEST_MIN_AMOUNT = 1 ether; // 1 CAKE
    uint256[] internal REFERRAL_PERCENTS = [50e2, 25e2, 5e2];
    uint256 constant public PROJECT_FEE = 20e2;
    uint256 constant public FUND_FEE = 30e2;
    uint256 constant public MARKETING_FEE = 50e2;
    uint256 constant public COMPOUND_FEE = 50e2; // 5% Fee for compounding
    uint256 constant public PERCENT_STEP = 1;
    uint256 constant public PERCENTS_DIVIDER = 1000e2;
    uint256 constant public DECREASE_DAY_STEP = 0.2 days; //0.2 days
    uint256 constant internal REF_STEP = 100; // 100 Refs level 
    uint256 constant internal TIME_STEP = 1 days; //1 days
    
    uint256 public totalStaked;
    uint256 public totalRefBonus;
    uint256 public totalWithdrawn;
    
    uint256 public startUNIX;
    address payable public marketingAddress;
    address payable public compoundAddress;
    address payable public projectAddress;
    address payable public fundAddress;

    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(uint256 => mapping(address => uint256)) internal auds;
    mapping(uint256 => address) internal at;
    mapping(uint256 => address) internal alt;
    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(address payable marketingAddr,address payable compoundAddr,address payable fundAddr,uint256 startDate, IBEP20 tokenAddr) {
        require(!isContract(marketingAddr), "!marketingAddr");
        require(startDate > 0);
        token = tokenAddr;
        marketingAddress = marketingAddr;
        compoundAddress = compoundAddr;
        fundAddress = fundAddr;
        projectAddress = payable(msg.sender);
        startUNIX = startDate;

        plans.push(Plan(365, 10e2));
    }
    
    function FeePayout(uint256 amt) internal{
    uint256 mktFee = amt.mul(MARKETING_FEE).div(PERCENTS_DIVIDER);
    uint256 fundFee = amt.mul(FUND_FEE).div(PERCENTS_DIVIDER);
    uint256 prjFee = amt.mul(PROJECT_FEE).div(PERCENTS_DIVIDER);
    token.safeTransfer(marketingAddress, mktFee);
    token.safeTransfer(fundAddress, fundFee);
    token.safeTransfer(projectAddress, prjFee);
    emit FeePayed(msg.sender, mktFee.add(prjFee));
    }
    
    function CompoundFeePayout(uint256 amt) internal{
    uint256 cmpFee = amt.mul(COMPOUND_FEE).div(PERCENTS_DIVIDER);
    token.safeTransfer(compoundAddress, cmpFee);
    emit FeePayed(msg.sender, cmpFee);
    }
    
    function invest(address referrer, uint8 plan , uint256 depAmount) public {
        require(block.timestamp >= startUNIX ,"CakeFunds has not launched yet!");
        require(depAmount >= INVEST_MIN_AMOUNT);
        require(plan < 1, "Invalid plan");
        
        token.safeTransferFrom(msg.sender, address(this), depAmount);

        FeePayout(depAmount);

        User storage user = users[msg.sender];
        if (user.referrer == address(0)) {
            if (users[referrer].deposits.length > 0 && referrer != msg.sender) {
                user.referrer = referrer;
            }else{
                user.referrer = projectAddress;
            }
            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);
                    if (users[upline].referrer == address(0)){
                    users[upline].referrer = projectAddress;
                    }
                    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 = depAmount.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 = block.timestamp;
            emit Newbie(msg.sender);
        }
        
        (uint256 percent, uint256 profit, , uint256 finish) = getResult(plan, depAmount);
        user.deposits.push(Deposit(plan, percent, depAmount, profit, block.timestamp, finish));
        totalStaked = totalStaked.add(depAmount);
        emit NewDeposit(msg.sender, plan, percent, depAmount, profit, block.timestamp, finish);
    }
    
    function withdraw() public {
        User storage user = users[msg.sender];
        
        //only once a day
        require(block.timestamp > users[msg.sender].checkpoint + TIME_STEP , "You can only withdraw once a day");
        users[msg.sender].checkpoint = block.timestamp;
        
        uint256 totalAmount = getUserDividends(msg.sender);
        uint256 referralBonus = getUserReferralBonus(msg.sender);
        if (referralBonus > 0) {
            user.bonus = 0;
            totalAmount = totalAmount.add(referralBonus);
        }
        require(totalAmount > 0, "User has no dividends");
        uint256 contractBalance = token.balanceOf(address(this));
        if (contractBalance < totalAmount) {
            totalAmount = contractBalance;
        }
        user.checkpoint = block.timestamp;
        
        user.wprofits = (user.wprofits).add(totalAmount);
        token.safeTransfer(payable(msg.sender), totalAmount);
        
        totalWithdrawn = (totalWithdrawn.add(totalAmount));
        emit Withdrawn(msg.sender, totalAmount);
    }
    
    function compound(uint8 plan) public {
        User storage user = users[msg.sender];
        
        //only once a day
        require(block.timestamp > users[msg.sender].checkpoint + TIME_STEP , "You can only compound once a day");
        users[msg.sender].checkpoint = block.timestamp;

        uint256 totalAmount = getUserDividends(msg.sender);
        uint256 referralBonus = getUserReferralBonus(msg.sender);
        if (referralBonus > 0) {
            user.bonus = 0;
            totalAmount = totalAmount.add(referralBonus);
        }
        require(totalAmount > 0, "User has no dividends");
        uint256 contractBalance = token.balanceOf(address(this));
        if (contractBalance < totalAmount) {
            totalAmount = contractBalance;
        }
        user.checkpoint = block.timestamp;

        CompoundFeePayout(totalAmount);

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

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

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

    function getPercent(uint8 plan) public view returns (uint256) {
        uint256 userRefRate = getUserRefRate(msg.sender);
        if (block.timestamp > startUNIX) {
            return plans[plan].percent.add(PERCENT_STEP.mul(block.timestamp.sub(startUNIX)).div(TIME_STEP)).add(userRefRate);
        } else {
            return plans[plan].percent;
        }
    }
    
    function getResult(uint8 plan, uint256 deposit) public view returns ( uint256 percent, uint256 profit, uint256 current, uint256 finish){
        percent = getPercent(plan);
        if (plan < 1) {
            profit = deposit.mul(percent).div(PERCENTS_DIVIDER).mul(plans[plan].time);
        }
        current = block.timestamp;
        finish = current.add(getDecreaseDays(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) {
                if (user.deposits[i].plan < 1) {
                    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 < block.timestamp ? user.deposits[i].finish : block.timestamp;
                    if (from < to) {
                        uint256 planTime = plans[user.deposits[i].plan].time.mul(TIME_STEP);
                        uint256 redress = planTime.div(getDecreaseDays(plans[user.deposits[i].plan].time));
                        totalAmount = totalAmount.add(share.mul(to.sub(from)).mul(redress).div(TIME_STEP));
                    }
                } else if (block.timestamp > user.deposits[i].finish) {
                    totalAmount = totalAmount.add(user.deposits[i].profit);
                }
            }
        }
        return totalAmount;
    }
    
    function getDecreaseDays(uint256 planTime) public view returns (uint256) {
        uint256 None = planTime.mul(TIME_STEP);
        if (block.timestamp > startUNIX){
        uint256 limitDays = TIME_STEP.mul(4);
        uint256 pastDays = block.timestamp.sub(startUNIX).div(TIME_STEP);
        uint256 decreaseDays = pastDays.mul(DECREASE_DAY_STEP);
        if (decreaseDays > limitDays){
        decreaseDays = limitDays;
        }
        uint256 minimumDays = planTime.mul(TIME_STEP).sub(decreaseDays);
        return minimumDays;  
      }
      else{
          return None;
      }
    }
    
    function getUserRefRate(address userAddress) public view returns (uint256) {
        User storage user = users[userAddress];
        uint256 refsbonus = user.levels[0];
        uint256 RMultiplier = (refsbonus.div(REF_STEP)).mul(100);
            return RMultiplier;
    }

    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 setDeveloperAccount(address payable _newDeveloperAccount) public onlyOwner {
        require(_newDeveloperAccount != address(0));
        projectAddress = _newDeveloperAccount;
    }
    
    function setMarketingAccount(address payable _newMarketingAccount) public onlyOwner {
        require(_newMarketingAccount != address(0));
        marketingAddress = _newMarketingAccount;
    }
    
    function setFundAccount(address payable _newFundAccount) public onlyOwner {
        require(_newFundAccount != address(0));
        fundAddress = _newFundAccount;
    }


    function isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
}
interface IBEP20 {
    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);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeBEP20 {
    using SafeMath for uint256;
    using Address for address;
    function safeTransfer(IBEP20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }
    function safeTransferFrom(IBEP20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }
    function callOptionalReturn(IBEP20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeBEP20: call to non-contract");
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeBEP20: low-level call failed");
        if (returndata.length > 0) { // Return data is optional
            require(abi.decode(returndata, (bool)), "SafeBEP20: BEP20 operation did not succeed");
        }
    }
}

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":[{"internalType":"address payable","name":"marketingAddr","type":"address"},{"internalType":"address payable","name":"compoundAddr","type":"address"},{"internalType":"address payable","name":"fundAddr","type":"address"},{"internalType":"uint256","name":"startDate","type":"uint256"},{"internalType":"contract IBEP20","name":"tokenAddr","type":"address"}],"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":"DECREASE_DAY_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FUND_FEE","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":"MARKETING_FEE","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":"PERCENT_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROJECT_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"plan","type":"uint8"}],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compoundAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"planTime","type":"uint256"}],"name":"getDecreaseDays","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":"getUserRefRate","outputs":[{"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"},{"internalType":"uint8","name":"plan","type":"uint8"},{"internalType":"uint256","name":"depAmount","type":"uint256"}],"name":"invest","outputs":[],"stateMutability":"nonpayable","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":[],"name":"projectAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newDeveloperAccount","type":"address"}],"name":"setDeveloperAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newFundAccount","type":"address"}],"name":"setFundAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newMarketingAccount","type":"address"}],"name":"setMarketingAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startUNIX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","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"}]

6080604052604051806060016040528061138861ffff1681526020016109c461ffff1681526020016101f461ffff16815250600290600362000043929190620002dd565b503480156200005157600080fd5b5060405162004f9f38038062004f9f833981810160405281019062000077919062000399565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000c885620002ca60201b60201c565b156200010b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001029062000442565b60405180910390fd5b600082116200011957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600681905550600b604051806040016040528061016d81526020016103e8815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000155602082015181600101555050505050505062000552565b600080823b905060008111915050919050565b82805482825590600052602060002090810192821562000322579160200282015b8281111562000321578251829061ffff16905591602001919060010190620002fe565b5b50905062000331919062000335565b5090565b5b808211156200035057600081600090555060010162000336565b5090565b600081519050620003658162000504565b92915050565b6000815190506200037c816200051e565b92915050565b600081519050620003938162000538565b92915050565b600080600080600060a08688031215620003b257600080fd5b6000620003c28882890162000354565b9550506020620003d58882890162000354565b9450506040620003e88882890162000354565b9350506060620003fb8882890162000382565b92505060806200040e888289016200036b565b9150509295509295909350565b60006200042a600e8362000464565b91506200043782620004db565b602082019050919050565b600060208201905081810360008301526200045d816200041b565b9050919050565b600082825260208201905092915050565b60006200048282620004b1565b9050919050565b60006200049682620004b1565b9050919050565b6000620004aa8262000475565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f216d61726b6574696e6741646472000000000000000000000000000000000000600082015250565b6200050f8162000489565b81146200051b57600080fd5b50565b62000529816200049d565b81146200053557600080fd5b50565b6200054381620004d1565b81146200054f57600080fd5b50565b614a3d80620005626000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80637e3abeea11610151578063ccf5d75f116100c3578063e84cdabc11610087578063e84cdabc146107c3578063e85abe09146107df578063f2fde38b1461080f578063f3e7569f1461082b578063fb4cb32b14610847578063fc0c546a1461087757610269565b8063ccf5d75f14610709578063d7a3a12214610727578063d7ffca9114610757578063e262113e14610787578063e82bef29146107a557610269565b8063a8aeb6c211610115578063a8aeb6c214610619578063aecaa63414610649578063af3e21221461067a578063bfc0071414610698578063c0806b03146106b6578063c2341238146106eb57610269565b80637e3abeea1461055f578063817b1cd21461058f5780638da5cb5b146105ad578063a51b9533146105cb578063a5ece941146105fb57610269565b806348c37203116101ea5780635936cf61116101ae5780635936cf611461048657806369b11dd5146104b95780636b1bfd33146104d75780636bb18556146104f35780636f9fb98a146105235780637c79614a1461054157610269565b806348c37203146103e057806348d44bd1146104105780634b3197131461042e57806350b2a8811461044c57806357fc86b41461046857610269565b8063153ab9df11610231578063153ab9df146103285780633310a17f1461035857806336144c9a146103885780633ccfd60b146103b85780633cf96af1146103c257610269565b806301c234a81461026e57806303a93c0c1461028c578063040a772e146102be578063043c9693146102ee57806304aff6791461030a575b600080fd5b610276610895565b6040516102839190614371565b60405180910390f35b6102a660048036038101906102a19190613d09565b61089c565b6040516102b5939291906143b5565b60405180910390f35b6102d860048036038101906102d39190613d09565b610a25565b6040516102e59190614371565b60405180910390f35b61030860048036038101906103039190613e61565b611152565b005b610312611506565b60405161031f9190614371565b60405180910390f35b610342600480360381019061033d9190613d09565b61150c565b60405161034f9190614371565b60405180910390f35b610372600480360381019061036d9190613d09565b611538565b60405161037f9190614371565b60405180910390f35b6103a2600480360381019061039d9190613d09565b6115f5565b6040516103af9190614120565b60405180910390f35b6103c0611661565b005b6103ca6119a2565b6040516103d7919061413b565b60405180910390f35b6103fa60048036038101906103f59190613d09565b6119c8565b6040516104079190614371565b60405180910390f35b610418611a14565b6040516104259190614371565b60405180910390f35b610436611a1a565b6040516104439190614371565b60405180910390f35b61046660048036038101906104619190613d32565b611a20565b005b610470611af6565b60405161047d9190614371565b60405180910390f35b6104a0600480360381019061049b9190613e8a565b611afb565b6040516104b094939291906143ec565b60405180910390f35b6104c1611c1a565b6040516104ce9190614371565b60405180910390f35b6104f160048036038101906104ec9190613d32565b611c20565b005b61050d60048036038101906105089190613d09565b611cf6565b60405161051a9190614371565b60405180910390f35b61052b611d96565b6040516105389190614371565b60405180910390f35b610549611e48565b6040516105569190614371565b60405180910390f35b61057960048036038101906105749190613d09565b611e4e565b6040516105869190614371565b60405180910390f35b610597611f5c565b6040516105a49190614371565b60405180910390f35b6105b5611f62565b6040516105c29190614120565b60405180910390f35b6105e560048036038101906105e09190613e61565b611f86565b6040516105f29190614371565b60405180910390f35b6106036120ad565b604051610610919061413b565b60405180910390f35b610633600480360381019061062e9190613d09565b6120d3565b6040516106409190614371565b60405180910390f35b610663600480360381019061065e9190613e61565b612122565b60405161067192919061438c565b60405180910390f35b6106826121cc565b60405161068f9190614371565b60405180910390f35b6106a06121d2565b6040516106ad919061413b565b60405180910390f35b6106d060048036038101906106cb9190613d5b565b6121f8565b6040516106e296959493929190614431565b60405180910390f35b6106f36125d4565b6040516107009190614371565b60405180910390f35b6107116125da565b60405161071e9190614371565b60405180910390f35b610741600480360381019061073c9190613e0f565b6125e0565b60405161074e9190614371565b60405180910390f35b610771600480360381019061076c9190613d09565b6126b6565b60405161077e9190614371565b60405180910390f35b61078f612702565b60405161079c9190614371565b60405180910390f35b6107ad61270e565b6040516107ba919061413b565b60405180910390f35b6107dd60048036038101906107d89190613d97565b612734565b005b6107f960048036038101906107f49190613d09565b61321b565b6040516108069190614371565b60405180910390f35b61082960048036038101906108249190613d09565b613267565b005b61084560048036038101906108409190613d32565b6133b6565b005b610861600480360381019061085c9190613d09565b61348c565b60405161086e9190614371565b60405180910390f35b61087f6134d8565b60405161088c91906141b6565b60405180910390f35b620186a081565b6000806000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006003811061091c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600160038110610999577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600260038110610a16577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b01549250925092509193909250565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201805480602002602001604051908101604052809291908181526020016000905b82821015610b1857838290600052602060002090600602016040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505081526020019060010190610a97565b505050508152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201600380602002604051908101604052809291908260038015610bbc576020028201915b815481526020019060010190808311610ba8575b5050505050815260200160068201548152602001600782015481526020016008820154815250509050600080600090505b8260000151518110156111475782600001518181518110610c37577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160a001518360200151101561113457600183600001518281518110610c8d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015160ff161015611084576000610d5c620186a0610d4e86600001518581518110610ceb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516020015187600001518681518110610d34577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151604001516134fe90919063ffffffff16565b61357990919063ffffffff16565b90506000846020015185600001518481518110610da2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516080015111610dbd578460200151610e07565b84600001518381518110610dfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151608001515b905060004286600001518581518110610e49577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160a0015110610e605742610eaa565b85600001518481518110610e9d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160a001515b90508082101561107c576000610f6262015180600b89600001518881518110610efc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015160ff1681548110610f42577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600001546134fe90919063ffffffff16565b90506000611017611008600b8a600001518981518110610fab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015160ff1681548110610ff1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600001546125e0565b8361357990919063ffffffff16565b90506110776110686201518061105a8461104c61103d8a8a6135d790919063ffffffff16565b8b6134fe90919063ffffffff16565b6134fe90919063ffffffff16565b61357990919063ffffffff16565b8861363690919063ffffffff16565b965050505b505050611133565b826000015181815181106110c1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160a001514211156111325761112f83600001518281518110611114577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151606001518361363690919063ffffffff16565b91505b5b5b808061113f9061468c565b915050610bed565b508092505050919050565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905062015180600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546111e691906144b9565b4211611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e906141f1565b60405180910390fd5b42600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600061127933610a25565b905060006112863361321b565b905060008111156112b157600083600601819055506112ae818361363690919063ffffffff16565b91505b600082116112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb906141d1565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016113519190614120565b60206040518083038186803b15801561136957600080fd5b505afa15801561137d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a19190613e38565b9050828110156113af578092505b4284600101819055506113c183613694565b60008060006113d08887611afb565b93505092509250866000016040518060c001604052808a60ff16815260200185815260200188815260200184815260200142815260200183815250908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000160006101000a81548160ff021916908360ff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050155505061149e8660035461363690919063ffffffff16565b6003819055503373ffffffffffffffffffffffffffffffffffffffff167f84e02daa69bdb087c9fe8d3041abca495512cb14e723070f6d1d4efface82e5d8985898642876040516114f496959493929190614431565b60405180910390a25050505050505050565b610bb881565b600061153161151a83610a25565b6115238461321b565b61363690919063ffffffff16565b9050919050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816003016000600381106115bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0154905060006115e860646115da60648561357990919063ffffffff16565b6134fe90919063ffffffff16565b9050809350505050919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905062015180600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546116f591906144b9565b4211611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90614251565b60405180910390fd5b42600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600061178833610a25565b905060006117953361321b565b905060008111156117c057600083600601819055506117bd818361363690919063ffffffff16565b91505b60008211611803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fa906141d1565b60405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118609190614120565b60206040518083038186803b15801561187857600080fd5b505afa15801561188c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b09190613e38565b9050828110156118be578092505b4284600101819055506118de83856008015461363690919063ffffffff16565b84600801819055506119333384600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166137839092919063ffffffff16565b6119488360055461363690919063ffffffff16565b6005819055503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5846040516119949190614371565b60405180910390a250505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701549050919050565b6107d081565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a7857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ab257600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600080600080611b0a86611f86565b935060018660ff161015611ba357611ba0600b8760ff1681548110611b58577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020906002020160000154611b92620186a0611b84888a6134fe90919063ffffffff16565b61357990919063ffffffff16565b6134fe90919063ffffffff16565b92505b429150611c0f611c00600b8860ff1681548110611be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600001546125e0565b8361363690919063ffffffff16565b905092959194509250565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c7857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cb257600080fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611d8f600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701546135d790919063ffffffff16565b9050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611df39190614120565b60206040518083038186803b158015611e0b57600080fd5b505afa158015611e1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e439190613e38565b905090565b61138881565b600080600090505b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015611f5657611f41600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018281548110611f20577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060060201600201548361363690919063ffffffff16565b91508080611f4e9061468c565b915050611e56565b50919050565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611f9233611538565b90506006544211156120555761204d8161203f611fe262015180611fd4611fc4600654426135d790919063ffffffff16565b60016134fe90919063ffffffff16565b61357990919063ffffffff16565b600b8760ff168154811061201f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002090600202016001015461363690919063ffffffff16565b61363690919063ffffffff16565b9150506120a8565b600b8360ff1681548110612092577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600101549150505b919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490509050919050565b600080600b8360ff1681548110612162577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600001549150600b8360ff16815481106121b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060020201600101549050915091565b61138881565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000806000600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201805480602002602001604051908101604052809291908181526020016000905b828210156122f357838290600052602060002090600602016040518060c00160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152505081526020019060010190612272565b505050508152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201600380602002604051908101604052809291908260038015612397576020028201915b815481526020019060010190808311612383575b50505050508152602001600682015481526020016007820154815260200160088201548152505090508060000151518810612407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fe90614291565b60405180910390fd5b80600001518881518110612444577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516000015196508060000151888151811061248f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151602001519550806000015188815181106124da577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160400151945080600001518881518110612525577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160600151935080600001518881518110612570577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151608001519250806000015188815181106125bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015160a001519150509295509295509295565b60065481565b61438081565b6000806125f962015180846134fe90919063ffffffff16565b90506006544211156126ac57600061261e6004620151806134fe90919063ffffffff16565b9050600061264c6201518061263e600654426135d790919063ffffffff16565b61357990919063ffffffff16565b90506000612665614380836134fe90919063ffffffff16565b905082811115612673578290505b600061269d8261268f620151808a6134fe90919063ffffffff16565b6135d790919063ffffffff16565b905080955050505050506126b1565b809150505b919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b670de0b6b3a764000081565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600654421015612779576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277090614211565b60405180910390fd5b670de0b6b3a764000081101561278e57600080fd5b60018260ff16106127d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cb90614331565b60405180910390fd5b612823333083600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16613809909392919063ffffffff16565b61282c81613892565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d33576000600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054905011801561294957503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561299657838160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506129fc565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b6003811015612d3057600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612d1857612af46001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018360038110612ae4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b015461363690919063ffffffff16565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018260038110612b6e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0181905550600073ffffffffffffffffffffffffffffffffffffffff16600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612cae57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150612d1d565b612d30565b8080612d289061468c565b915050612a28565b50505b600073ffffffffffffffffffffffffffffffffffffffff168160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146130865760008160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b600381101561308357600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461306b576000612e62620186a0612e5460028581548110612e3a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154886134fe90919063ffffffff16565b61357990919063ffffffff16565b9050612eb981600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461363690919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550612f5481600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015461363690919063ffffffff16565b600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070181905550813373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fd41f7e766eebcc7ff42b11ac8691bdf864db4afc0c55e71d629d54edce460d9884604051612ff89190614371565b60405180910390a4600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925050613070565b613083565b808061307b9061468c565b915050612db7565b50505b6000816000018054905014156130d7574281600101819055507f9fd565cd14c3c391679eb0cad12a14dcf7534e9d3462bcb9b67a098a9bbbc24a336040516130ce9190614120565b60405180910390a15b60008060006130e68686611afb565b93505092509250836000016040518060c001604052808860ff16815260200185815260200187815260200184815260200142815260200183815250908060018154018082558091505060019003906000526020600020906006020160009091909190915060008201518160000160006101000a81548160ff021916908360ff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015550506131b48560035461363690919063ffffffff16565b6003819055503373ffffffffffffffffffffffffffffffffffffffff167f84e02daa69bdb087c9fe8d3041abca495512cb14e723070f6d1d4efface82e5d87858886428760405161320a96959493929190614431565b60405180910390a250505050505050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146132bf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156132f957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461340e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561344857600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000808314156135115760009050613573565b6000828461351f9190614540565b905082848261352e919061450f565b1461356e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613565906142f1565b60405180910390fd5b809150505b92915050565b60008082116135bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135b4906142d1565b60405180910390fd5b600082846135cb919061450f565b90508091505092915050565b60008282111561361c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613613906142b1565b60405180910390fd5b6000828461362a919061459a565b90508091505092915050565b600080828461364591906144b9565b90508381101561368a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161368190614271565b60405180910390fd5b8091505092915050565b60006136c0620186a06136b2611388856134fe90919063ffffffff16565b61357990919063ffffffff16565b9050613731600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166137839092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f2899dc8c12def1caa9accb64257cf2fd9f960f21bb27a560a757eae3c2ec43c1826040516137779190614371565b60405180910390a25050565b6138048363a9059cbb60e01b84846040516024016137a292919061418d565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613acf565b505050565b61388c846323b872dd60e01b85858560405160240161382a93929190614156565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613acf565b50505050565b60006138be620186a06138b0611388856134fe90919063ffffffff16565b61357990919063ffffffff16565b905060006138ec620186a06138de610bb8866134fe90919063ffffffff16565b61357990919063ffffffff16565b9050600061391a620186a061390c6107d0876134fe90919063ffffffff16565b61357990919063ffffffff16565b905061398b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166137839092919063ffffffff16565b6139fa600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166137839092919063ffffffff16565b613a69600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166137839092919063ffffffff16565b3373ffffffffffffffffffffffffffffffffffffffff167f2899dc8c12def1caa9accb64257cf2fd9f960f21bb27a560a757eae3c2ec43c1613ab4838661363690919063ffffffff16565b604051613ac19190614371565b60405180910390a250505050565b613aee8273ffffffffffffffffffffffffffffffffffffffff16613c40565b613b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b2490614351565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051613b559190614109565b6000604051808303816000865af19150503d8060008114613b92576040519150601f19603f3d011682016040523d82523d6000602084013e613b97565b606091505b509150915081613bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bd390614311565b60405180910390fd5b600081511115613c3a5780806020019051810190613bfa9190613de6565b613c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c3090614231565b60405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015613c825750808214155b92505050919050565b600081359050613c9a81614994565b92915050565b600081359050613caf816149ab565b92915050565b600081519050613cc4816149c2565b92915050565b600081359050613cd9816149d9565b92915050565b600081519050613cee816149d9565b92915050565b600081359050613d03816149f0565b92915050565b600060208284031215613d1b57600080fd5b6000613d2984828501613c8b565b91505092915050565b600060208284031215613d4457600080fd5b6000613d5284828501613ca0565b91505092915050565b60008060408385031215613d6e57600080fd5b6000613d7c85828601613c8b565b9250506020613d8d85828601613cca565b9150509250929050565b600080600060608486031215613dac57600080fd5b6000613dba86828701613c8b565b9350506020613dcb86828701613cf4565b9250506040613ddc86828701613cca565b9150509250925092565b600060208284031215613df857600080fd5b6000613e0684828501613cb5565b91505092915050565b600060208284031215613e2157600080fd5b6000613e2f84828501613cca565b91505092915050565b600060208284031215613e4a57600080fd5b6000613e5884828501613cdf565b91505092915050565b600060208284031215613e7357600080fd5b6000613e8184828501613cf4565b91505092915050565b60008060408385031215613e9d57600080fd5b6000613eab85828601613cf4565b9250506020613ebc85828601613cca565b9150509250929050565b613ecf816145e0565b82525050565b613ede816145ce565b82525050565b6000613eef82614492565b613ef9818561449d565b9350613f09818560208601614659565b80840191505092915050565b613f1e81614635565b82525050565b6000613f316015836144a8565b9150613f3c82614733565b602082019050919050565b6000613f546020836144a8565b9150613f5f8261475c565b602082019050919050565b6000613f77601f836144a8565b9150613f8282614785565b602082019050919050565b6000613f9a602a836144a8565b9150613fa5826147ae565b604082019050919050565b6000613fbd6020836144a8565b9150613fc8826147fd565b602082019050919050565b6000613fe0601b836144a8565b9150613feb82614826565b602082019050919050565b6000614003600d836144a8565b915061400e8261484f565b602082019050919050565b6000614026601e836144a8565b915061403182614878565b602082019050919050565b6000614049601a836144a8565b9150614054826148a1565b602082019050919050565b600061406c6021836144a8565b9150614077826148ca565b604082019050919050565b600061408f6020836144a8565b915061409a82614919565b602082019050919050565b60006140b2600c836144a8565b91506140bd82614942565b602082019050919050565b60006140d5601f836144a8565b91506140e08261496b565b602082019050919050565b6140f48161461e565b82525050565b61410381614628565b82525050565b60006141158284613ee4565b915081905092915050565b60006020820190506141356000830184613ed5565b92915050565b60006020820190506141506000830184613ec6565b92915050565b600060608201905061416b6000830186613ed5565b6141786020830185613ed5565b61418560408301846140eb565b949350505050565b60006040820190506141a26000830185613ed5565b6141af60208301846140eb565b9392505050565b60006020820190506141cb6000830184613f15565b92915050565b600060208201905081810360008301526141ea81613f24565b9050919050565b6000602082019050818103600083015261420a81613f47565b9050919050565b6000602082019050818103600083015261422a81613f6a565b9050919050565b6000602082019050818103600083015261424a81613f8d565b9050919050565b6000602082019050818103600083015261426a81613fb0565b9050919050565b6000602082019050818103600083015261428a81613fd3565b9050919050565b600060208201905081810360008301526142aa81613ff6565b9050919050565b600060208201905081810360008301526142ca81614019565b9050919050565b600060208201905081810360008301526142ea8161403c565b9050919050565b6000602082019050818103600083015261430a8161405f565b9050919050565b6000602082019050818103600083015261432a81614082565b9050919050565b6000602082019050818103600083015261434a816140a5565b9050919050565b6000602082019050818103600083015261436a816140c8565b9050919050565b600060208201905061438660008301846140eb565b92915050565b60006040820190506143a160008301856140eb565b6143ae60208301846140eb565b9392505050565b60006060820190506143ca60008301866140eb565b6143d760208301856140eb565b6143e460408301846140eb565b949350505050565b600060808201905061440160008301876140eb565b61440e60208301866140eb565b61441b60408301856140eb565b61442860608301846140eb565b95945050505050565b600060c08201905061444660008301896140fa565b61445360208301886140eb565b61446060408301876140eb565b61446d60608301866140eb565b61447a60808301856140eb565b61448760a08301846140eb565b979650505050505050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b60006144c48261461e565b91506144cf8361461e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614504576145036146d5565b5b828201905092915050565b600061451a8261461e565b91506145258361461e565b92508261453557614534614704565b5b828204905092915050565b600061454b8261461e565b91506145568361461e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561458f5761458e6146d5565b5b828202905092915050565b60006145a58261461e565b91506145b08361461e565b9250828210156145c3576145c26146d5565b5b828203905092915050565b60006145d9826145fe565b9050919050565b60006145eb826145fe565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061464082614647565b9050919050565b6000614652826145fe565b9050919050565b60005b8381101561467757808201518184015260208101905061465c565b83811115614686576000848401525b50505050565b60006146978261461e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156146ca576146c96146d5565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5573657220686173206e6f206469766964656e64730000000000000000000000600082015250565b7f596f752063616e206f6e6c7920636f6d706f756e64206f6e6365206120646179600082015250565b7f43616b6546756e647320686173206e6f74206c61756e63686564207965742100600082015250565b7f5361666542455032303a204245503230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f596f752063616e206f6e6c79207769746864726177206f6e6365206120646179600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f496e76616c696420696e64657800000000000000000000000000000000000000600082015250565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000600082015250565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f5361666542455032303a206c6f772d6c6576656c2063616c6c206661696c6564600082015250565b7f496e76616c696420706c616e0000000000000000000000000000000000000000600082015250565b7f5361666542455032303a2063616c6c20746f206e6f6e2d636f6e747261637400600082015250565b61499d816145ce565b81146149a857600080fd5b50565b6149b4816145e0565b81146149bf57600080fd5b50565b6149cb816145f2565b81146149d657600080fd5b50565b6149e28161461e565b81146149ed57600080fd5b50565b6149f981614628565b8114614a0457600080fd5b5056fea26469706673582212200a6a2864ad987cf0b19c44c917b1e2226ac9bf89921df8386b9aae720934fbdb64736f6c63430008030033000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b0000000000000000000000000000000000000000000000000000000060a01a300000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82

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

000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b0000000000000000000000000000000000000000000000000000000060a01a300000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82

-----Decoded View---------------
Arg [0] : marketingAddr (address): 0xf834fb95a74ae70b92eb9ba3bc9b1e99da59583b
Arg [1] : compoundAddr (address): 0xf834fb95a74ae70b92eb9ba3bc9b1e99da59583b
Arg [2] : fundAddr (address): 0xf834fb95a74ae70b92eb9ba3bc9b1e99da59583b
Arg [3] : startDate (uint256): 1621105200
Arg [4] : tokenAddr (address): 0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b
Arg [1] : 000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b
Arg [2] : 000000000000000000000000f834fb95a74ae70b92eb9ba3bc9b1e99da59583b
Arg [3] : 0000000000000000000000000000000000000000000000000000000060a01a30
Arg [4] : 0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82


Deployed ByteCode Sourcemap

2820:14403:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3350:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14432:214;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11950:1291;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9618:1226;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3130:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15117:170;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13871:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14296:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8518:1088;;;:::i;:::-;;3840:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14792:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3081:42;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3676:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16666:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3303:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11532:406;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3641:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16874:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14940:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10852:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3227:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15452:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3608:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2331:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11150:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3749:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15301:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10976:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3176:44;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3795:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15865:577;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;3718:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:52;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13253:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14156:132;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2950:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3884:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6248:2258;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14654:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2593:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16460:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15719:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2924:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3350:49;3393:6;3350:49;:::o;14432:214::-;14503:7;14512;14521;14549:5;:18;14555:11;14549:18;;;;;;;;;;;;;;;:25;;14575:1;14549:28;;;;;;;;;;;;;;;;;14579:5;:18;14585:11;14579:18;;;;;;;;;;;;;;;:25;;14605:1;14579:28;;;;;;;;;;;;;;;;;14609:5;:18;14615:11;14609:18;;;;;;;;;;;;;;;:25;;14635:1;14609:28;;;;;;;;;;;;;;;;;14541:97;;;;;;14432:214;;;;;:::o;11950:1291::-;12018:7;12037:16;12056:5;:18;12062:11;12056:18;;;;;;;;;;;;;;;12037:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12087:19;12122:9;12134:1;12122:13;;12117:1088;12141:4;:13;;;:20;12137:1;:24;12117:1088;;;12205:4;:13;;;12219:1;12205:16;;;;;;;;;;;;;;;;;;;;;;:23;;;12187:4;:15;;;:41;12183:1011;;;12277:1;12253:4;:13;;;12267:1;12253:16;;;;;;;;;;;;;;;;;;;;;;:21;;;:25;;;12249:930;;;12303:13;12319:75;3393:6;12319:53;12347:4;:13;;;12361:1;12347:16;;;;;;;;;;;;;;;;;;;;;;:24;;;12319:4;:13;;;12333:1;12319:16;;;;;;;;;;;;;;;;;;;;;;:23;;;:27;;:53;;;;:::i;:::-;:57;;:75;;;;:::i;:::-;12303:91;;12417:12;12457:4;:15;;;12432:4;:13;;;12446:1;12432:16;;;;;;;;;;;;;;;;;;;;;;:22;;;:40;:83;;12500:4;:15;;;12432:83;;;12475:4;:13;;;12489:1;12475:16;;;;;;;;;;;;;;;;;;;;;;:22;;;12432:83;12417:98;;12538:10;12577:15;12551:4;:13;;;12565:1;12551:16;;;;;;;;;;;;;;;;;;;;;;:23;;;:41;:85;;12621:15;12551:85;;;12595:4;:13;;;12609:1;12595:16;;;;;;;;;;;;;;;;;;;;;;:23;;;12551:85;12538:98;;12670:2;12663:4;:9;12659:351;;;12701:16;12720:48;3580:6;12720:5;12726:4;:13;;;12740:1;12726:16;;;;;;;;;;;;;;;;;;;;;;:21;;;12720:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;:37;;:48;;;;:::i;:::-;12701:67;;12795:15;12813:64;12826:50;12842:5;12848:4;:13;;;12862:1;12848:16;;;;;;;;;;;;;;;;;;;;;;:21;;;12842:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;12826:15;:50::i;:::-;12813:8;:12;;:64;;;;:::i;:::-;12795:82;;12918:68;12934:51;3580:6;12934:36;12962:7;12934:23;12944:12;12951:4;12944:2;:6;;:12;;;;:::i;:::-;12934:5;:9;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;:40;;:51;;;;:::i;:::-;12918:11;:15;;:68;;;;:::i;:::-;12904:82;;12659:351;;;12249:930;;;;;;13057:4;:13;;;13071:1;13057:16;;;;;;;;;;;;;;;;;;;;;;:23;;;13039:15;:41;13035:144;;;13119:40;13135:4;:13;;;13149:1;13135:16;;;;;;;;;;;;;;;;;;;;;;:23;;;13119:11;:15;;:40;;;;:::i;:::-;13105:54;;13035:144;12249:930;12183:1011;12163:3;;;;;:::i;:::-;;;;12117:1088;;;;13222:11;13215:18;;;;11950:1291;;;:::o;9618:1226::-;9666:17;9686:5;:17;9692:10;9686:17;;;;;;;;;;;;;;;9666:37;;3580:6;9777:5;:17;9783:10;9777:17;;;;;;;;;;;;;;;:28;;;:40;;;;:::i;:::-;9759:15;:58;9751:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;9897:15;9866:5;:17;9872:10;9866:17;;;;;;;;;;;;;;;:28;;:46;;;;9925:19;9947:28;9964:10;9947:16;:28::i;:::-;9925:50;;9986:21;10010:32;10031:10;10010:20;:32::i;:::-;9986:56;;10073:1;10057:13;:17;10053:123;;;10104:1;10091:4;:10;;:14;;;;10134:30;10150:13;10134:11;:15;;:30;;;;:::i;:::-;10120:44;;10053:123;10208:1;10194:11;:15;10186:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10246:23;10272:5;;;;;;;;;;;:15;;;10296:4;10272:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10246:56;;10335:11;10317:15;:29;10313:91;;;10377:15;10363:29;;10313:91;10432:15;10414:4;:15;;:33;;;;10460:30;10478:11;10460:17;:30::i;:::-;10504:15;10521:14;10539;10557:28;10567:4;10573:11;10557:9;:28::i;:::-;10503:82;;;;;;;10596:4;:13;;10615:68;;;;;;;;10623:4;10615:68;;;;;;10629:7;10615:68;;;;10638:11;10615:68;;;;10651:6;10615:68;;;;10659:15;10615:68;;;;10676:6;10615:68;;;10596:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10709:28;10725:11;10709;;:15;;:28;;;;:::i;:::-;10695:11;:42;;;;10764:10;10753:83;;;10776:4;10782:7;10791:11;10804:6;10812:15;10829:6;10753:83;;;;;;;;;;;:::i;:::-;;;;;;;;9618:1226;;;;;;;;:::o;3130:39::-;3165:4;3130:39;:::o;15117:170::-;15184:7;15211:68;15249:29;15266:11;15249:16;:29::i;:::-;15211:33;15232:11;15211:20;:33::i;:::-;:37;;:68;;;;:::i;:::-;15204:75;;15117:170;;;:::o;13871:277::-;13937:7;13957:17;13977:5;:18;13983:11;13977:18;;;;;;;;;;;;;;;13957:38;;14006:17;14026:4;:11;;14038:1;14026:14;;;;;;;;;;;;;;;;;14006:34;;14051:19;14073:34;14103:3;14074:23;3513:3;14074:9;:13;;:23;;;;:::i;:::-;14073:29;;:34;;;;:::i;:::-;14051:56;;14129:11;14122:18;;;;;13871:277;;;:::o;14296:128::-;14362:7;14389:5;:18;14395:11;14389:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;14382:34;;14296:128;;;:::o;8518:1088::-;8556:17;8576:5;:17;8582:10;8576:17;;;;;;;;;;;;;;;8556:37;;3580:6;8667:5;:17;8673:10;8667:17;;;;;;;;;;;;;;;:28;;;:40;;;;:::i;:::-;8649:15;:58;8641:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;8787:15;8756:5;:17;8762:10;8756:17;;;;;;;;;;;;;;;:28;;:46;;;;8823:19;8845:28;8862:10;8845:16;:28::i;:::-;8823:50;;8884:21;8908:32;8929:10;8908:20;:32::i;:::-;8884:56;;8971:1;8955:13;:17;8951:123;;;9002:1;8989:4;:10;;:14;;;;9032:30;9048:13;9032:11;:15;;:30;;;;:::i;:::-;9018:44;;8951:123;9106:1;9092:11;:15;9084:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9144:23;9170:5;;;;;;;;;;;:15;;;9194:4;9170:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9144:56;;9233:11;9215:15;:29;9211:91;;;9275:15;9261:29;;9211:91;9330:15;9312:4;:15;;:33;;;;9382:32;9402:11;9383:4;:13;;;9382:19;;:32;;;;:::i;:::-;9366:4;:13;;:48;;;;9425:52;9452:10;9465:11;9425:5;;;;;;;;;;;:18;;;;:52;;;;;:::i;:::-;9516:31;9535:11;9516:14;;:18;;:31;;;;:::i;:::-;9498:14;:50;;;;9574:10;9564:34;;;9586:11;9564:34;;;;;;:::i;:::-;;;;;;;;8518:1088;;;;:::o;3840:37::-;;;;;;;;;;;;;:::o;14792:140::-;14868:7;14895:5;:18;14901:11;14895:18;;;;;;;;;;;;;;;:29;;;14888:36;;14792:140;;;:::o;3081:42::-;3119:4;3081:42;:::o;3676:29::-;;;;:::o;16666:196::-;2561:5;;;;;;;;;;2547:19;;:10;:19;;;2539:28;;;;;;16801:1:::1;16769:34;;:20;:34;;;;16761:43;;;::::0;::::1;;16834:20;16815:16;;:39;;;;;;;;;;;;;;;;;;16666:196:::0;:::o;3303:40::-;3342:1;3303:40;:::o;11532:406::-;11602:15;11619:14;11635:15;11652:14;11688:16;11699:4;11688:10;:16::i;:::-;11678:26;;11726:1;11719:4;:8;;;11715:114;;;11753:64;11800:5;11806:4;11800:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;11753:42;3393:6;11753:20;11765:7;11753;:11;;:20;;;;:::i;:::-;:24;;:42;;;;:::i;:::-;:46;;:64;;;;:::i;:::-;11744:73;;11715:114;11849:15;11839:25;;11884:46;11896:33;11912:5;11918:4;11912:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;11896:15;:33::i;:::-;11884:7;:11;;:46;;;;:::i;:::-;11875:55;;11532:406;;;;;;;:::o;3641:28::-;;;;:::o;16874:171::-;2561:5;;;;;;;;;;2547:19;;:10;:19;;;2539:28;;;;;;16994:1:::1;16967:29;;:15;:29;;;;16959:38;;;::::0;::::1;;17022:15;17008:11;;:29;;;;;;;;;;;;;;;;;;16874:171:::0;:::o;14940:169::-;15015:7;15042:59;15076:5;:18;15082:11;15076:18;;;;;;;;;;;;;;;:24;;;15042:5;:18;15048:11;15042:18;;;;;;;;;;;;;;;:29;;;:33;;:59;;;;:::i;:::-;15035:66;;14940:169;;;:::o;10852:116::-;10903:7;10930:5;;;;;;;;;;;:15;;;10954:4;10930:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10923:37;;10852:116;:::o;3227:43::-;3266:4;3227:43;:::o;15452:255::-;15523:14;15555:9;15567:1;15555:13;;15550:150;15574:5;:18;15580:11;15574:18;;;;;;;;;;;;;;;:27;;:34;;;;15570:1;:38;15550:150;;;15639:49;15650:5;:18;15656:11;15650:18;;;;;;;;;;;;;;;:27;;15678:1;15650:30;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;15639:6;:10;;:49;;;;:::i;:::-;15630:58;;15610:3;;;;;:::i;:::-;;;;15550:150;;;;15452:255;;;:::o;3608:26::-;;;;:::o;2331:20::-;;;;;;;;;;;;:::o;11150:370::-;11203:7;11223:19;11245:26;11260:10;11245:14;:26::i;:::-;11223:48;;11304:9;;11286:15;:27;11282:231;;;11337:105;11430:11;11337:88;11361:63;3580:6;11361:48;11378:30;11398:9;;11378:15;:19;;:30;;;;:::i;:::-;3342:1;11361:16;;:48;;;;:::i;:::-;:52;;:63;;;;:::i;:::-;11337:5;11343:4;11337:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;:23;;:88;;;;:::i;:::-;:92;;:105;;;;:::i;:::-;11330:112;;;;;11282:231;11482:5;11488:4;11482:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;11475:26;;;11150:370;;;;:::o;3749:39::-;;;;;;;;;;;;;:::o;15301:143::-;15375:7;15402:5;:18;15408:11;15402:18;;;;;;;;;;;;;;;:27;;:34;;;;15395:41;;15301:143;;;:::o;10976:166::-;11029:12;11043:15;11078:5;11084:4;11078:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;;;11071:23;;11115:5;11121:4;11115:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;11105:29;;10976:166;;;:::o;3176:44::-;3216:4;3176:44;:::o;3795:38::-;;;;;;;;;;;;;:::o;15865:577::-;15950:10;15962:15;15979:14;15995;16011:13;16026:14;16052:16;16071:5;:18;16077:11;16071:18;;;;;;;;;;;;;;;16052:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16116:4;:13;;;:20;16108:5;:28;16100:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;16174:4;:13;;;16188:5;16174:20;;;;;;;;;;;;;;;;;;;;;;:25;;;16167:32;;16220:4;:13;;;16234:5;16220:20;;;;;;;;;;;;;;;;;;;;;;:28;;;16210:38;;16268:4;:13;;;16282:5;16268:20;;;;;;;;;;;;;;;;;;;;;;:27;;;16259:36;;16315:4;:13;;;16329:5;16315:20;;;;;;;;;;;;;;;;;;;;;;:27;;;16306:36;;16361:4;:13;;;16375:5;16361:20;;;;;;;;;;;;;;;;;;;;;;:26;;;16353:34;;16407:4;:13;;;16421:5;16407:20;;;;;;;;;;;;;;;;;;;;;;:27;;;16398:36;;15865:577;;;;;;;;;:::o;3718:24::-;;;;:::o;3406:52::-;3450:8;3406:52;:::o;13253:606::-;13317:7;13337:12;13352:23;3580:6;13352:8;:12;;:23;;;;:::i;:::-;13337:38;;13408:9;;13390:15;:27;13386:466;;;13429:17;13449:16;13463:1;3580:6;13449:13;;:16;;;;:::i;:::-;13429:36;;13476:16;13495:45;3580:6;13495:30;13515:9;;13495:15;:19;;:30;;;;:::i;:::-;:34;;:45;;;;:::i;:::-;13476:64;;13551:20;13574:31;3450:8;13574;:12;;:31;;;;:::i;:::-;13551:54;;13635:9;13620:12;:24;13616:76;;;13671:9;13656:24;;13616:76;13702:19;13724:41;13752:12;13724:23;3580:6;13724:8;:12;;:23;;;;:::i;:::-;:27;;:41;;;;:::i;:::-;13702:63;;13783:11;13776:18;;;;;;;;;13386:466;13838:4;13831:11;;;13253:606;;;;:::o;14156:132::-;14224:7;14251:5;:18;14257:11;14251:18;;;;;;;;;;;;;;;:29;;;14244:36;;14156:132;;;:::o;2950:51::-;2994:7;2950:51;:::o;3884:34::-;;;;;;;;;;;;;:::o;6248:2258::-;6359:9;;6340:15;:28;;6332:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;2994:7;6423:9;:30;;6415:39;;;;;;6480:1;6473:4;:8;;;6465:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;6519:60;6542:10;6562:4;6569:9;6519:5;;;;;;;;;;;:22;;;;:60;;;;;;:::i;:::-;6592:20;6602:9;6592;:20::i;:::-;6625:17;6645:5;:17;6651:10;6645:17;;;;;;;;;;;;;;;6625:37;;6702:1;6677:27;;:4;:13;;;;;;;;;;;;:27;;;6673:719;;;6759:1;6725:5;:15;6731:8;6725:15;;;;;;;;;;;;;;;:24;;:31;;;;:35;:61;;;;;6776:10;6764:22;;:8;:22;;;;6725:61;6721:195;;;6823:8;6807:4;:13;;;:24;;;;;;;;;;;;;;;;;;6721:195;;;6886:14;;;;;;;;;;;6870:4;:13;;;:30;;;;;;;;;;;;;;;;;;6721:195;6930:14;6947:4;:13;;;;;;;;;;;;6930:30;;6980:9;6975:406;6999:1;6995;:5;6975:406;;;7048:1;7030:20;;:6;:20;;;7026:339;;7101:30;7129:1;7101:5;:13;7107:6;7101:13;;;;;;;;;;;;;;;:20;;7122:1;7101:23;;;;;;;;;;;;;;;;;:27;;:30;;;;:::i;:::-;7075:5;:13;7081:6;7075:13;;;;;;;;;;;;;;;:20;;7096:1;7075:23;;;;;;;;;;;;;;;;:56;;;;7192:1;7158:36;;:5;:13;7164:6;7158:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;:36;;;7154:127;;;7243:14;;;;;;;;;;;7218:5;:13;7224:6;7218:13;;;;;;;;;;;;;;;:22;;;:39;;;;;;;;;;;;;;;;;;7154:127;7312:5;:13;7318:6;7312:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;7303:31;;7026:339;;;7360:5;;7026:339;7002:3;;;;;:::i;:::-;;;;6975:406;;;;6673:719;;7433:1;7408:27;;:4;:13;;;;;;;;;;;;:27;;;7404:608;;7452:14;7469:4;:13;;;;;;;;;;;;7452:30;;7502:9;7497:504;7521:1;7517;:5;7497:504;;;7570:1;7552:20;;:6;:20;;;7548:437;;7597:14;7614:57;3393:6;7614:35;7628:17;7646:1;7628:20;;;;;;;;;;;;;;;;;;;;;;;;7614:9;:13;;:35;;;;:::i;:::-;:39;;:57;;;;:::i;:::-;7597:74;;7716:31;7740:6;7716:5;:13;7722:6;7716:13;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;7694:5;:13;7700:6;7694:13;;;;;;;;;;;;;;;:19;;:53;;;;7797:36;7826:6;7797:5;:13;7803:6;7797:13;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;7770:5;:13;7776:6;7770:13;;;;;;;;;;;;;;;:24;;:63;;;;7890:1;7878:10;7861:39;;7870:6;7861:39;;;7893:6;7861:39;;;;;;:::i;:::-;;;;;;;;7932:5;:13;7938:6;7932:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;7923:31;;7548:437;;;;7980:5;;7548:437;7524:3;;;;;:::i;:::-;;;;7497:504;;;;7404:608;;8052:1;8028:4;:13;;:20;;;;:25;8024:129;;;8088:15;8070:4;:15;;:33;;;;8123:18;8130:10;8123:18;;;;;;:::i;:::-;;;;;;;;8024:129;8174:15;8191:14;8209;8227:26;8237:4;8243:9;8227;:26::i;:::-;8173:80;;;;;;;8264:4;:13;;8283:66;;;;;;;;8291:4;8283:66;;;;;;8297:7;8283:66;;;;8306:9;8283:66;;;;8317:6;8283:66;;;;8325:15;8283:66;;;;8342:6;8283:66;;;8264:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8375:26;8391:9;8375:11;;:15;;:26;;;;:::i;:::-;8361:11;:40;;;;8428:10;8417:81;;;8440:4;8446:7;8455:9;8466:6;8474:15;8491:6;8417:81;;;;;;;;;;;:::i;:::-;;;;;;;;6248:2258;;;;;;;:::o;14654:130::-;14725:7;14752:5;:18;14758:11;14752:18;;;;;;;;;;;;;;;:24;;;14745:31;;14654:130;;;:::o;2593:198::-;2561:5;;;;;;;;;;2547:19;;:10;:19;;;2539:28;;;;;;2696:1:::1;2675:23;;:9;:23;;;;2667:32;;;::::0;::::1;;2745:9;2715:40;;2738:5;::::0;::::1;;;;;;;;2715:40;;;;;;;;;;;;2774:9;2766:5;::::0;:17:::1;;;;;;;;;;;;;;;;;;2593:198:::0;:::o;16460:194::-;2561:5;;;;;;;;;;2547:19;;:10;:19;;;2539:28;;;;;;16595:1:::1;16563:34;;:20;:34;;;;16555:43;;;::::0;::::1;;16626:20;16609:14;;:37;;;;;;;;;;;;;;;;;;16460:194:::0;:::o;15719:134::-;15791:7;15818:5;:18;15824:11;15818:18;;;;;;;;;;;;;;;:27;;;15811:34;;15719:134;;;:::o;2924:19::-;;;;;;;;;;;;;:::o;19611:246::-;19669:7;19698:1;19693;:6;19689:47;;;19723:1;19716:8;;;;19689:47;19746:9;19762:1;19758;:5;;;;:::i;:::-;19746:17;;19791:1;19786;19782;:5;;;;:::i;:::-;:10;19774:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;19848:1;19841:8;;;19611:246;;;;;:::o;19863:177::-;19921:7;19953:1;19949;:5;19941:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19996:9;20012:1;20008;:5;;;;:::i;:::-;19996:17;;20031:1;20024:8;;;19863:177;;;;:::o;19423:182::-;19481:7;19514:1;19509;:6;;19501:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19561:9;19577:1;19573;:5;;;;:::i;:::-;19561:17;;19596:1;19589:8;;;19423:182;;;;:::o;19238:179::-;19296:7;19316:9;19332:1;19328;:5;;;;:::i;:::-;19316:17;;19357:1;19352;:6;;19344:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;19408:1;19401:8;;;19238:179;;;;:::o;6023:213::-;6078:14;6095:43;3393:6;6095:21;3266:4;6095:3;:7;;:21;;;;:::i;:::-;:25;;:43;;;;:::i;:::-;6078:60;;6145:43;6164:15;;;;;;;;;;;6181:6;6145:5;;;;;;;;;;;:18;;;;:43;;;;;:::i;:::-;6209:10;6200:28;;;6221:6;6200:28;;;;;;:::i;:::-;;;;;;;;6023:213;;:::o;17994:176::-;18077:85;18096:5;18126:23;;;18151:2;18155:5;18103:58;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18077:18;:85::i;:::-;17994:176;;;:::o;18176:204::-;18277:95;18296:5;18326:27;;;18355:4;18361:2;18365:5;18303:68;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18277:18;:95::i;:::-;18176:204;;;;:::o;5566:445::-;5613:14;5630:44;3393:6;5630:22;3216:4;5630:3;:7;;:22;;;;:::i;:::-;:26;;:44;;;;:::i;:::-;5613:61;;5681:15;5699:39;3393:6;5699:17;3165:4;5699:3;:7;;:17;;;;:::i;:::-;:21;;:39;;;;:::i;:::-;5681:57;;5745:14;5762:42;3393:6;5762:20;3119:4;5762:3;:7;;:20;;;;:::i;:::-;:24;;:42;;;;:::i;:::-;5745:59;;5811:44;5830:16;;;;;;;;;;;5848:6;5811:5;;;;;;;;;;;:18;;;;:44;;;;;:::i;:::-;5862:40;5881:11;;;;;;;;;;;5894:7;5862:5;;;;;;;;;;;:18;;;;:40;;;;;:::i;:::-;5909:42;5928:14;;;;;;;;;;;5944:6;5909:5;;;;;;;;;;;:18;;;;:42;;;;;:::i;:::-;5972:10;5963:40;;;5984:18;5995:6;5984;:10;;:18;;;;:::i;:::-;5963:40;;;;;;:::i;:::-;;;;;;;;5566:445;;;;:::o;18386:476::-;18474:27;18482:5;18474:25;;;:27::i;:::-;18466:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18549:12;18563:23;18598:5;18590:19;;18610:4;18590:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18548:67;;;;18634:7;18626:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;18713:1;18693:10;:17;:21;18689:166;;;18777:10;18766:30;;;;;;;;;;;;:::i;:::-;18758:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18689:166;18386:476;;;;:::o;18892:317::-;18952:4;18969:16;18996:19;19018:66;18996:88;;;;19130:7;19118:20;19106:32;;19170:3;19158:15;;:8;:15;;:42;;;;;19189:11;19177:8;:23;;19158:42;19150:51;;;;18892:317;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:155::-;;244:6;231:20;222:29;;260:41;295:5;260:41;:::i;:::-;212:95;;;;:::o;313:137::-;;398:6;392:13;383:22;;414:30;438:5;414:30;:::i;:::-;373:77;;;;:::o;456:139::-;;540:6;527:20;518:29;;556:33;583:5;556:33;:::i;:::-;508:87;;;;:::o;601:143::-;;689:6;683:13;674:22;;705:33;732:5;705:33;:::i;:::-;664:80;;;;:::o;750:135::-;;832:6;819:20;810:29;;848:31;873:5;848:31;:::i;:::-;800:85;;;;:::o;891:262::-;;999:2;987:9;978:7;974:23;970:32;967:2;;;1015:1;1012;1005:12;967:2;1058:1;1083:53;1128:7;1119:6;1108:9;1104:22;1083:53;:::i;:::-;1073:63;;1029:117;957:196;;;;:::o;1159:278::-;;1275:2;1263:9;1254:7;1250:23;1246:32;1243:2;;;1291:1;1288;1281:12;1243:2;1334:1;1359:61;1412:7;1403:6;1392:9;1388:22;1359:61;:::i;:::-;1349:71;;1305:125;1233:204;;;;:::o;1443:407::-;;;1568:2;1556:9;1547:7;1543:23;1539:32;1536:2;;;1584:1;1581;1574:12;1536:2;1627:1;1652:53;1697:7;1688:6;1677:9;1673:22;1652:53;:::i;:::-;1642:63;;1598:117;1754:2;1780:53;1825:7;1816:6;1805:9;1801:22;1780:53;:::i;:::-;1770:63;;1725:118;1526:324;;;;;:::o;1856:548::-;;;;1996:2;1984:9;1975:7;1971:23;1967:32;1964:2;;;2012:1;2009;2002:12;1964:2;2055:1;2080:53;2125:7;2116:6;2105:9;2101:22;2080:53;:::i;:::-;2070:63;;2026:117;2182:2;2208:51;2251:7;2242:6;2231:9;2227:22;2208:51;:::i;:::-;2198:61;;2153:116;2308:2;2334:53;2379:7;2370:6;2359:9;2355:22;2334:53;:::i;:::-;2324:63;;2279:118;1954:450;;;;;:::o;2410:278::-;;2526:2;2514:9;2505:7;2501:23;2497:32;2494:2;;;2542:1;2539;2532:12;2494:2;2585:1;2610:61;2663:7;2654:6;2643:9;2639:22;2610:61;:::i;:::-;2600:71;;2556:125;2484:204;;;;:::o;2694:262::-;;2802:2;2790:9;2781:7;2777:23;2773:32;2770:2;;;2818:1;2815;2808:12;2770:2;2861:1;2886:53;2931:7;2922:6;2911:9;2907:22;2886:53;:::i;:::-;2876:63;;2832:117;2760:196;;;;:::o;2962:284::-;;3081:2;3069:9;3060:7;3056:23;3052:32;3049:2;;;3097:1;3094;3087:12;3049:2;3140:1;3165:64;3221:7;3212:6;3201:9;3197:22;3165:64;:::i;:::-;3155:74;;3111:128;3039:207;;;;:::o;3252:258::-;;3358:2;3346:9;3337:7;3333:23;3329:32;3326:2;;;3374:1;3371;3364:12;3326:2;3417:1;3442:51;3485:7;3476:6;3465:9;3461:22;3442:51;:::i;:::-;3432:61;;3388:115;3316:194;;;;:::o;3516:403::-;;;3639:2;3627:9;3618:7;3614:23;3610:32;3607:2;;;3655:1;3652;3645:12;3607:2;3698:1;3723:51;3766:7;3757:6;3746:9;3742:22;3723:51;:::i;:::-;3713:61;;3669:115;3823:2;3849:53;3894:7;3885:6;3874:9;3870:22;3849:53;:::i;:::-;3839:63;;3794:118;3597:322;;;;;:::o;3925:142::-;4028:32;4054:5;4028:32;:::i;:::-;4023:3;4016:45;4006:61;;:::o;4073:118::-;4160:24;4178:5;4160:24;:::i;:::-;4155:3;4148:37;4138:53;;:::o;4197:373::-;;4329:38;4361:5;4329:38;:::i;:::-;4383:88;4464:6;4459:3;4383:88;:::i;:::-;4376:95;;4480:52;4525:6;4520:3;4513:4;4506:5;4502:16;4480:52;:::i;:::-;4557:6;4552:3;4548:16;4541:23;;4305:265;;;;;:::o;4576:161::-;4678:52;4724:5;4678:52;:::i;:::-;4673:3;4666:65;4656:81;;:::o;4743:366::-;;4906:67;4970:2;4965:3;4906:67;:::i;:::-;4899:74;;4982:93;5071:3;4982:93;:::i;:::-;5100:2;5095:3;5091:12;5084:19;;4889:220;;;:::o;5115:366::-;;5278:67;5342:2;5337:3;5278:67;:::i;:::-;5271:74;;5354:93;5443:3;5354:93;:::i;:::-;5472:2;5467:3;5463:12;5456:19;;5261:220;;;:::o;5487:366::-;;5650:67;5714:2;5709:3;5650:67;:::i;:::-;5643:74;;5726:93;5815:3;5726:93;:::i;:::-;5844:2;5839:3;5835:12;5828:19;;5633:220;;;:::o;5859:366::-;;6022:67;6086:2;6081:3;6022:67;:::i;:::-;6015:74;;6098:93;6187:3;6098:93;:::i;:::-;6216:2;6211:3;6207:12;6200:19;;6005:220;;;:::o;6231:366::-;;6394:67;6458:2;6453:3;6394:67;:::i;:::-;6387:74;;6470:93;6559:3;6470:93;:::i;:::-;6588:2;6583:3;6579:12;6572:19;;6377:220;;;:::o;6603:366::-;;6766:67;6830:2;6825:3;6766:67;:::i;:::-;6759:74;;6842:93;6931:3;6842:93;:::i;:::-;6960:2;6955:3;6951:12;6944:19;;6749:220;;;:::o;6975:366::-;;7138:67;7202:2;7197:3;7138:67;:::i;:::-;7131:74;;7214:93;7303:3;7214:93;:::i;:::-;7332:2;7327:3;7323:12;7316:19;;7121:220;;;:::o;7347:366::-;;7510:67;7574:2;7569:3;7510:67;:::i;:::-;7503:74;;7586:93;7675:3;7586:93;:::i;:::-;7704:2;7699:3;7695:12;7688:19;;7493:220;;;:::o;7719:366::-;;7882:67;7946:2;7941:3;7882:67;:::i;:::-;7875:74;;7958:93;8047:3;7958:93;:::i;:::-;8076:2;8071:3;8067:12;8060:19;;7865:220;;;:::o;8091:366::-;;8254:67;8318:2;8313:3;8254:67;:::i;:::-;8247:74;;8330:93;8419:3;8330:93;:::i;:::-;8448:2;8443:3;8439:12;8432:19;;8237:220;;;:::o;8463:366::-;;8626:67;8690:2;8685:3;8626:67;:::i;:::-;8619:74;;8702:93;8791:3;8702:93;:::i;:::-;8820:2;8815:3;8811:12;8804:19;;8609:220;;;:::o;8835:366::-;;8998:67;9062:2;9057:3;8998:67;:::i;:::-;8991:74;;9074:93;9163:3;9074:93;:::i;:::-;9192:2;9187:3;9183:12;9176:19;;8981:220;;;:::o;9207:366::-;;9370:67;9434:2;9429:3;9370:67;:::i;:::-;9363:74;;9446:93;9535:3;9446:93;:::i;:::-;9564:2;9559:3;9555:12;9548:19;;9353:220;;;:::o;9579:118::-;9666:24;9684:5;9666:24;:::i;:::-;9661:3;9654:37;9644:53;;:::o;9703:112::-;9786:22;9802:5;9786:22;:::i;:::-;9781:3;9774:35;9764:51;;:::o;9821:271::-;;9973:93;10062:3;10053:6;9973:93;:::i;:::-;9966:100;;10083:3;10076:10;;9955:137;;;;:::o;10098:222::-;;10229:2;10218:9;10214:18;10206:26;;10242:71;10310:1;10299:9;10295:17;10286:6;10242:71;:::i;:::-;10196:124;;;;:::o;10326:254::-;;10473:2;10462:9;10458:18;10450:26;;10486:87;10570:1;10559:9;10555:17;10546:6;10486:87;:::i;:::-;10440:140;;;;:::o;10586:442::-;;10773:2;10762:9;10758:18;10750:26;;10786:71;10854:1;10843:9;10839:17;10830:6;10786:71;:::i;:::-;10867:72;10935:2;10924:9;10920:18;10911:6;10867:72;:::i;:::-;10949;11017:2;11006:9;11002:18;10993:6;10949:72;:::i;:::-;10740:288;;;;;;:::o;11034:332::-;;11193:2;11182:9;11178:18;11170:26;;11206:71;11274:1;11263:9;11259:17;11250:6;11206:71;:::i;:::-;11287:72;11355:2;11344:9;11340:18;11331:6;11287:72;:::i;:::-;11160:206;;;;;:::o;11372:252::-;;11518:2;11507:9;11503:18;11495:26;;11531:86;11614:1;11603:9;11599:17;11590:6;11531:86;:::i;:::-;11485:139;;;;:::o;11630:419::-;;11834:2;11823:9;11819:18;11811:26;;11883:9;11877:4;11873:20;11869:1;11858:9;11854:17;11847:47;11911:131;12037:4;11911:131;:::i;:::-;11903:139;;11801:248;;;:::o;12055:419::-;;12259:2;12248:9;12244:18;12236:26;;12308:9;12302:4;12298:20;12294:1;12283:9;12279:17;12272:47;12336:131;12462:4;12336:131;:::i;:::-;12328:139;;12226:248;;;:::o;12480:419::-;;12684:2;12673:9;12669:18;12661:26;;12733:9;12727:4;12723:20;12719:1;12708:9;12704:17;12697:47;12761:131;12887:4;12761:131;:::i;:::-;12753:139;;12651:248;;;:::o;12905:419::-;;13109:2;13098:9;13094:18;13086:26;;13158:9;13152:4;13148:20;13144:1;13133:9;13129:17;13122:47;13186:131;13312:4;13186:131;:::i;:::-;13178:139;;13076:248;;;:::o;13330:419::-;;13534:2;13523:9;13519:18;13511:26;;13583:9;13577:4;13573:20;13569:1;13558:9;13554:17;13547:47;13611:131;13737:4;13611:131;:::i;:::-;13603:139;;13501:248;;;:::o;13755:419::-;;13959:2;13948:9;13944:18;13936:26;;14008:9;14002:4;13998:20;13994:1;13983:9;13979:17;13972:47;14036:131;14162:4;14036:131;:::i;:::-;14028:139;;13926:248;;;:::o;14180:419::-;;14384:2;14373:9;14369:18;14361:26;;14433:9;14427:4;14423:20;14419:1;14408:9;14404:17;14397:47;14461:131;14587:4;14461:131;:::i;:::-;14453:139;;14351:248;;;:::o;14605:419::-;;14809:2;14798:9;14794:18;14786:26;;14858:9;14852:4;14848:20;14844:1;14833:9;14829:17;14822:47;14886:131;15012:4;14886:131;:::i;:::-;14878:139;;14776:248;;;:::o;15030:419::-;;15234:2;15223:9;15219:18;15211:26;;15283:9;15277:4;15273:20;15269:1;15258:9;15254:17;15247:47;15311:131;15437:4;15311:131;:::i;:::-;15303:139;;15201:248;;;:::o;15455:419::-;;15659:2;15648:9;15644:18;15636:26;;15708:9;15702:4;15698:20;15694:1;15683:9;15679:17;15672:47;15736:131;15862:4;15736:131;:::i;:::-;15728:139;;15626:248;;;:::o;15880:419::-;;16084:2;16073:9;16069:18;16061:26;;16133:9;16127:4;16123:20;16119:1;16108:9;16104:17;16097:47;16161:131;16287:4;16161:131;:::i;:::-;16153:139;;16051:248;;;:::o;16305:419::-;;16509:2;16498:9;16494:18;16486:26;;16558:9;16552:4;16548:20;16544:1;16533:9;16529:17;16522:47;16586:131;16712:4;16586:131;:::i;:::-;16578:139;;16476:248;;;:::o;16730:419::-;;16934:2;16923:9;16919:18;16911:26;;16983:9;16977:4;16973:20;16969:1;16958:9;16954:17;16947:47;17011:131;17137:4;17011:131;:::i;:::-;17003:139;;16901:248;;;:::o;17155:222::-;;17286:2;17275:9;17271:18;17263:26;;17299:71;17367:1;17356:9;17352:17;17343:6;17299:71;:::i;:::-;17253:124;;;;:::o;17383:332::-;;17542:2;17531:9;17527:18;17519:26;;17555:71;17623:1;17612:9;17608:17;17599:6;17555:71;:::i;:::-;17636:72;17704:2;17693:9;17689:18;17680:6;17636:72;:::i;:::-;17509:206;;;;;:::o;17721:442::-;;17908:2;17897:9;17893:18;17885:26;;17921:71;17989:1;17978:9;17974:17;17965:6;17921:71;:::i;:::-;18002:72;18070:2;18059:9;18055:18;18046:6;18002:72;:::i;:::-;18084;18152:2;18141:9;18137:18;18128:6;18084:72;:::i;:::-;17875:288;;;;;;:::o;18169:553::-;;18384:3;18373:9;18369:19;18361:27;;18398:71;18466:1;18455:9;18451:17;18442:6;18398:71;:::i;:::-;18479:72;18547:2;18536:9;18532:18;18523:6;18479:72;:::i;:::-;18561;18629:2;18618:9;18614:18;18605:6;18561:72;:::i;:::-;18643;18711:2;18700:9;18696:18;18687:6;18643:72;:::i;:::-;18351:371;;;;;;;:::o;18728:767::-;;18995:3;18984:9;18980:19;18972:27;;19009:67;19073:1;19062:9;19058:17;19049:6;19009:67;:::i;:::-;19086:72;19154:2;19143:9;19139:18;19130:6;19086:72;:::i;:::-;19168;19236:2;19225:9;19221:18;19212:6;19168:72;:::i;:::-;19250;19318:2;19307:9;19303:18;19294:6;19250:72;:::i;:::-;19332:73;19400:3;19389:9;19385:19;19376:6;19332:73;:::i;:::-;19415;19483:3;19472:9;19468:19;19459:6;19415:73;:::i;:::-;18962:533;;;;;;;;;:::o;19501:98::-;;19586:5;19580:12;19570:22;;19559:40;;;:::o;19605:147::-;;19743:3;19728:18;;19718:34;;;;:::o;19758:169::-;;19876:6;19871:3;19864:19;19916:4;19911:3;19907:14;19892:29;;19854:73;;;;:::o;19933:305::-;;19992:20;20010:1;19992:20;:::i;:::-;19987:25;;20026:20;20044:1;20026:20;:::i;:::-;20021:25;;20180:1;20112:66;20108:74;20105:1;20102:81;20099:2;;;20186:18;;:::i;:::-;20099:2;20230:1;20227;20223:9;20216:16;;19977:261;;;;:::o;20244:185::-;;20301:20;20319:1;20301:20;:::i;:::-;20296:25;;20335:20;20353:1;20335:20;:::i;:::-;20330:25;;20374:1;20364:2;;20379:18;;:::i;:::-;20364:2;20421:1;20418;20414:9;20409:14;;20286:143;;;;:::o;20435:348::-;;20498:20;20516:1;20498:20;:::i;:::-;20493:25;;20532:20;20550:1;20532:20;:::i;:::-;20527:25;;20720:1;20652:66;20648:74;20645:1;20642:81;20637:1;20630:9;20623:17;20619:105;20616:2;;;20727:18;;:::i;:::-;20616:2;20775:1;20772;20768:9;20757:20;;20483:300;;;;:::o;20789:191::-;;20849:20;20867:1;20849:20;:::i;:::-;20844:25;;20883:20;20901:1;20883:20;:::i;:::-;20878:25;;20922:1;20919;20916:8;20913:2;;;20927:18;;:::i;:::-;20913:2;20972:1;20969;20965:9;20957:17;;20834:146;;;;:::o;20986:96::-;;21052:24;21070:5;21052:24;:::i;:::-;21041:35;;21031:51;;;:::o;21088:104::-;;21162:24;21180:5;21162:24;:::i;:::-;21151:35;;21141:51;;;:::o;21198:90::-;;21275:5;21268:13;21261:21;21250:32;;21240:48;;;:::o;21294:126::-;;21371:42;21364:5;21360:54;21349:65;;21339:81;;;:::o;21426:77::-;;21492:5;21481:16;;21471:32;;;:::o;21509:86::-;;21584:4;21577:5;21573:16;21562:27;;21552:43;;;:::o;21601:156::-;;21699:52;21745:5;21699:52;:::i;:::-;21686:65;;21676:81;;;:::o;21763:128::-;;21861:24;21879:5;21861:24;:::i;:::-;21848:37;;21838:53;;;:::o;21897:307::-;21965:1;21975:113;21989:6;21986:1;21983:13;21975:113;;;22074:1;22069:3;22065:11;22059:18;22055:1;22050:3;22046:11;22039:39;22011:2;22008:1;22004:10;21999:15;;21975:113;;;22106:6;22103:1;22100:13;22097:2;;;22186:1;22177:6;22172:3;22168:16;22161:27;22097:2;21946:258;;;;:::o;22210:233::-;;22272:24;22290:5;22272:24;:::i;:::-;22263:33;;22318:66;22311:5;22308:77;22305:2;;;22388:18;;:::i;:::-;22305:2;22435:1;22428:5;22424:13;22417:20;;22253:190;;;:::o;22449:180::-;22497:77;22494:1;22487:88;22594:4;22591:1;22584:15;22618:4;22615:1;22608:15;22635:180;22683:77;22680:1;22673:88;22780:4;22777:1;22770:15;22804:4;22801:1;22794:15;22821:171;22961:23;22957:1;22949:6;22945:14;22938:47;22927:65;:::o;22998:182::-;23138:34;23134:1;23126:6;23122:14;23115:58;23104:76;:::o;23186:181::-;23326:33;23322:1;23314:6;23310:14;23303:57;23292:75;:::o;23373:229::-;23513:34;23509:1;23501:6;23497:14;23490:58;23582:12;23577:2;23569:6;23565:15;23558:37;23479:123;:::o;23608:182::-;23748:34;23744:1;23736:6;23732:14;23725:58;23714:76;:::o;23796:177::-;23936:29;23932:1;23924:6;23920:14;23913:53;23902:71;:::o;23979:163::-;24119:15;24115:1;24107:6;24103:14;24096:39;24085:57;:::o;24148:180::-;24288:32;24284:1;24276:6;24272:14;24265:56;24254:74;:::o;24334:176::-;24474:28;24470:1;24462:6;24458:14;24451:52;24440:70;:::o;24516:220::-;24656:34;24652:1;24644:6;24640:14;24633:58;24725:3;24720:2;24712:6;24708:15;24701:28;24622:114;:::o;24742:182::-;24882:34;24878:1;24870:6;24866:14;24859:58;24848:76;:::o;24930:162::-;25070:14;25066:1;25058:6;25054:14;25047:38;25036:56;:::o;25098:181::-;25238:33;25234:1;25226:6;25222:14;25215:57;25204:75;:::o;25285:122::-;25358:24;25376:5;25358:24;:::i;:::-;25351:5;25348:35;25338:2;;25397:1;25394;25387:12;25338:2;25328:79;:::o;25413:138::-;25494:32;25520:5;25494:32;:::i;:::-;25487:5;25484:43;25474:2;;25541:1;25538;25531:12;25474:2;25464:87;:::o;25557:116::-;25627:21;25642:5;25627:21;:::i;:::-;25620:5;25617:32;25607:2;;25663:1;25660;25653:12;25607:2;25597:76;:::o;25679:122::-;25752:24;25770:5;25752:24;:::i;:::-;25745:5;25742:35;25732:2;;25791:1;25788;25781:12;25732:2;25722:79;:::o;25807:118::-;25878:22;25894:5;25878:22;:::i;:::-;25871:5;25868:33;25858:2;;25915:1;25912;25905:12;25858:2;25848:77;:::o

Swarm Source

ipfs://0a6a2864ad987cf0b19c44c917b1e2226ac9bf89921df8386b9aae720934fbdb
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.