Contract 0x039b2a959640Becb33881Ac5A7828F69f800D125

 

Contract Overview

Balance:
54.050283897999999734 BNB

BNB Value:
$20,625.05 (@ $381.59/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xb38937bce8be3c187a96c31f622f3aa8b5d5dc0f844b300629276ae4c518e50cStake146926962022-01-26 4:22:281 hr 54 mins ago0x862fd7d26d0762c810a60bc8de020d1df938408b IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00148156
0x785cb270acbc520d52ed237b84245bb836ea5b8ba609186ff3b5b1ebbea5ba3eClaim Ref146926812022-01-26 4:21:431 hr 55 mins ago0x862fd7d26d0762c810a60bc8de020d1df938408b IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00038913
0xe01f4f8213aef9901bf8d7a2aa2c4b256d1addc49431b8920ab32388e54a5159Claim Reward146926752022-01-26 4:21:251 hr 55 mins ago0x862fd7d26d0762c810a60bc8de020d1df938408b IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00652845
0x1d5d4fb5ee18f3eebbe788e4061dec4a74550b10a9d79d689fe055c3d43c8328Withdraw146926732022-01-26 4:21:191 hr 55 mins ago0x862fd7d26d0762c810a60bc8de020d1df938408b IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00240763
0xbcd60e5444dd8cd62e32df45727dc9dc5a46027b50c9b918e92727f818a23e50Stake146926542022-01-26 4:20:221 hr 56 mins ago0xa44c540ddd8fcdcb5a668a75f69ea8e7f8b72d2e IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00148144
0xae4da546f419bed5820b922d5c3082f415d67eff2fd55235e202916a7cdc753aClaim Lottery Re...146926332022-01-26 4:19:191 hr 57 mins ago0xa44c540ddd8fcdcb5a668a75f69ea8e7f8b72d2e IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00033018
0x4bbcc8a1e08d10eb22ee985ba23cc6f3f0ca91ea20527f30b4cecce3414364ffClaim Ref146926302022-01-26 4:19:101 hr 57 mins ago0xa44c540ddd8fcdcb5a668a75f69ea8e7f8b72d2e IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00038913
0x5b3000540b3dd5260c370b6c8c2b0d066c2eedae038012979da88e2bf115b9e4Withdraw146926232022-01-26 4:18:491 hr 58 mins ago0xa44c540ddd8fcdcb5a668a75f69ea8e7f8b72d2e IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00229715
0x34640118a5240ffc6f4d8f88d378d6f5612bab1c037250d82590a4567e7f388bClaim Reward146926202022-01-26 4:18:401 hr 58 mins ago0xa44c540ddd8fcdcb5a668a75f69ea8e7f8b72d2e IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00745567
0x8e77cd0b211511124d9656bcb974e3a806e4e4afd78a195897e9e8ca5bcef9d1Withdraw146925152022-01-26 4:13:252 hrs 3 mins ago0x7d4f786885644b57c815c4a04658b580b6cea4e0 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00240291
0xfcb6eeeeee4a2925e7ac3d9b38b395d498a51618a5c8533a397684822f34ace6Claim Ref146925122022-01-26 4:13:162 hrs 3 mins ago0x7d4f786885644b57c815c4a04658b580b6cea4e0 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00053913
0x5472f89807a1d24b13d030c3f59242acce0c31025692f09372dffbb4e22cf57dStake146924812022-01-26 4:11:432 hrs 5 mins ago0x324b49a3dd9fd157a5c8794495acaa4d6d9d2ead IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00062344
0xeb743a8d5be83705ffff53814c9fbf298af3ae664c33c6c994d43479c13e2e8bWithdraw146924682022-01-26 4:11:042 hrs 6 mins ago0x324b49a3dd9fd157a5c8794495acaa4d6d9d2ead IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.0029451
0x642d5919addaaddc59791ff615a87a5d689a8638215a9b9810aae9899984ada9Stake146923642022-01-26 4:05:522 hrs 11 mins ago0xbfb66f406515872393b6f453426480d544e4fac2 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00148144
0xdc66c9c2df3a41e3b5cce6de3fe6566e63e8831672d93fb884432f36bf8505efWithdraw146923512022-01-26 4:05:132 hrs 11 mins ago0xbfb66f406515872393b6f453426480d544e4fac2 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00262073
0x45b52a539a617c62981dc64fade847c0dedeca8e73b2fd4c034b822091a6ef2aStake146923092022-01-26 4:03:072 hrs 13 mins ago0x1eb50ae81d0897e812c4428bb0a09e7fbf980aef IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00148144
0x675609cf78a3841fe4ff9d6d9ca2bd0583f1fc7161f4066fa42229a3983781e3Withdraw146922972022-01-26 4:02:312 hrs 14 mins ago0x1eb50ae81d0897e812c4428bb0a09e7fbf980aef IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00328383
0x9e80d0a1a05fc413ab6256f7ce61ce617974f1dac32260608adca87f9a712cadClaim Reward146922922022-01-26 4:02:162 hrs 14 mins ago0x1eb50ae81d0897e812c4428bb0a09e7fbf980aef IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00479911
0x80b0ce85dda8f8525fc712d2c87f00a821065f87ad997f8e400cf7c66060ac64Withdraw146772932022-01-25 15:31:0714 hrs 45 mins ago0x04fd24637c82828b1ca03afbe5e76d03955e2231 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00261601
0xc07dcbb590981e8491be2b3bca3bd829cc313b3cc5c3541e6a47ccf337afccfaClaim Reward146772702022-01-25 15:29:5814 hrs 47 mins ago0x4d98e431ad0c27a8ca357a862ed4af213bbf3927 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00570918
0xa3a687b17adda57ec1e9b7cc9448d26b788af3b17121ecf6b9c386a34632ed58Withdraw146772582022-01-25 15:29:2214 hrs 47 mins ago0x4d98e431ad0c27a8ca357a862ed4af213bbf3927 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.0033951
0xabff854990c245f79ca2a1df3cdd19f83f1096135aa9dbc272ad62a8ec620807Claim Reward146771352022-01-25 15:23:1314 hrs 53 mins ago0xd40100bf0aa1369ce0a770d33a3b66e7c3c2824d IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00467709
0xcfb73c26918aa40e3edf7dd7bd5f54ad88dd0cd9815821ac38718d12cf335fb1Swap146771262022-01-25 15:22:4614 hrs 54 mins ago0xd40100bf0aa1369ce0a770d33a3b66e7c3c2824d IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00062736
0xb5c3c42211cc5d1bc54f89258b1110d9b0697d9fbbd5a4c3e89631db81c62ef6Stake146667072022-01-25 6:41:0023 hrs 36 mins ago0x2a1a16154352cca44c1160f15a14faabab1d61a0 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00148144
0xf99c41960a0f69934edc3d74142784c9f1fabf88613cc4ebc5d3b12d32430898Claim Reward146666942022-01-25 6:40:2123 hrs 36 mins ago0x2a1a16154352cca44c1160f15a14faabab1d61a0 IN  0x039b2a959640becb33881ac5a7828f69f800d1250 BNB0.00498318
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcfb73c26918aa40e3edf7dd7bd5f54ad88dd0cd9815821ac38718d12cf335fb1146771262022-01-25 15:22:4614 hrs 54 mins ago 0x039b2a959640becb33881ac5a7828f69f800d1250xd40100bf0aa1369ce0a770d33a3b66e7c3c2824d0.03828 BNB
0x4e6b26d1c67d54a0dc45d816bfe562d04fa07fe4a7ac44911fdb903e5c590196146624212022-01-25 3:06:051 day 3 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x3f18ab0edfe7631589355bddb462252dd34e42c70.05096 BNB
0x941b4d409fe7f8b23cab3da2bc857660b2b681f4eda391ed2fddec7d0dd583b1146521032022-01-24 18:29:411 day 11 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x4d98e431ad0c27a8ca357a862ed4af213bbf39270.0637 BNB
0xa8746370756b9e6761350042c1a73182cf87d49e84ee6c3f11dc658478a73ecd146520292022-01-24 18:25:591 day 11 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xb8e5723d28db7cb10e9725f1b6ed7f1b13cae45f0.03822 BNB
0x0ccc04c945f54fbd25900094628e52ee858e0a426e69419ca6a0d4d2470332c3146506692022-01-24 17:17:041 day 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x45ab8d5679fd9e9f1c5e00aabff4a64dedfe814d0.00075 BNB
0x0ccc04c945f54fbd25900094628e52ee858e0a426e69419ca6a0d4d2470332c3146506692022-01-24 17:17:041 day 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.00075 BNB
0x0ccc04c945f54fbd25900094628e52ee858e0a426e69419ca6a0d4d2470332c3146506692022-01-24 17:17:041 day 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x7b37648608358ee04fa5ad0f429ebdbf524e5e880.00075 BNB
0x0ccc04c945f54fbd25900094628e52ee858e0a426e69419ca6a0d4d2470332c3146506692022-01-24 17:17:041 day 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.00675 BNB
0xccbc0df63823e1b59068d33c23035a6f3275f6e96e7b5b134a9d4af76ea4de71145774562022-01-22 4:07:564 days 2 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x75ee365e7afbd5b6dda0221e1b6981a00ba530e10.1268 BNB
0x75752a6cb27ad325ac559b8cd6ce896780c1de09ed4fabd27549968bab5eeed3145773472022-01-22 4:02:294 days 2 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x34be080b66a92bee3e89a5ede92a8f119b45ba680.08242 BNB
0x0fa021ddc6b3dc3f8f6b5a94c9d9c3981955e0c1d52ed1d7010dfbe246b0135d145772502022-01-22 3:57:384 days 2 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x3f18ab0edfe7631589355bddb462252dd34e42c70.02536 BNB
0xed7a49499444ef90768db77d92e900d89616b0c1198d192f5fd273044f30a8f8145533892022-01-21 8:01:124 days 22 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x04fc9d244ac15817e5343cf0b53dd52c429e4bed1.67112 BNB
0x78ba74097f4258431cc9bfc55bd9b9f7b873e984f5bb69fc832933a65a1c9df1145345512022-01-20 16:17:405 days 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x4d98e431ad0c27a8ca357a862ed4af213bbf39270.0268392 BNB
0x64c77735c84837fc0120e61915eb024136cd13cb7225e8f20847d154b4128af9144964572022-01-19 8:26:476 days 21 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x3f18ab0edfe7631589355bddb462252dd34e42c70.02524 BNB
0x7873d618a696b01e372cc33229208d661e3ecb112d2a382f726736fb20736b4c144781932022-01-18 17:11:517 days 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x45ab8d5679fd9e9f1c5e00aabff4a64dedfe814d0.0298 BNB
0x7873d618a696b01e372cc33229208d661e3ecb112d2a382f726736fb20736b4c144781932022-01-18 17:11:517 days 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.0298 BNB
0x7873d618a696b01e372cc33229208d661e3ecb112d2a382f726736fb20736b4c144781932022-01-18 17:11:517 days 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x7b37648608358ee04fa5ad0f429ebdbf524e5e880.0298 BNB
0x7873d618a696b01e372cc33229208d661e3ecb112d2a382f726736fb20736b4c144781932022-01-18 17:11:517 days 13 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.2682 BNB
0x937b705be15181278023125813208868004238a2ac48fb558e798c8220c63335144404762022-01-17 9:14:568 days 21 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x3f18ab0edfe7631589355bddb462252dd34e42c70.0252 BNB
0xfb6bd2800837641f8ba3e7d63654d25a385ade9420c2af6ff868917b8585dcc4143800952022-01-15 6:42:0210 days 23 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x45ab8d5679fd9e9f1c5e00aabff4a64dedfe814d0.00025 BNB
0xfb6bd2800837641f8ba3e7d63654d25a385ade9420c2af6ff868917b8585dcc4143800952022-01-15 6:42:0210 days 23 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.00025 BNB
0xfb6bd2800837641f8ba3e7d63654d25a385ade9420c2af6ff868917b8585dcc4143800952022-01-15 6:42:0210 days 23 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250x7b37648608358ee04fa5ad0f429ebdbf524e5e880.00025 BNB
0xfb6bd2800837641f8ba3e7d63654d25a385ade9420c2af6ff868917b8585dcc4143800952022-01-15 6:42:0210 days 23 hrs ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.00225 BNB
0x402bd61c504c441e98f59da664fc03a1774b9afe8a4825d3e330d79ba2d4c527143794382022-01-15 6:09:1111 days 7 mins ago 0x039b2a959640becb33881ac5a7828f69f800d1250x45ab8d5679fd9e9f1c5e00aabff4a64dedfe814d0.00025 BNB
0x402bd61c504c441e98f59da664fc03a1774b9afe8a4825d3e330d79ba2d4c527143794382022-01-15 6:09:1111 days 7 mins ago 0x039b2a959640becb33881ac5a7828f69f800d1250xcf38c97f66d73a47cc5722b06af329773dd153b00.00025 BNB
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x6049bf0dade2f84ce82d066f55452c9e4a5dc3e2

Contract Name:
WINEDEFI

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-09-04
*/

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

pragma solidity ^0.5.8;

interface IBEP20 {
  function totalSupply() external view returns (uint256);

  function decimals() external view returns (uint8);

  function symbol() external view returns (string memory);

 
  function name() external view returns (string memory);


  function getOwner() external view returns (address);

 
  function balanceOf(address account) external view returns (uint256);

  
  function transfer(address recipient, uint256 amount) external returns (bool);

  
  function allowance(address _owner, address spender) external view returns (uint256);


  function approve(address spender, uint256 amount) external returns (bool);


  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  
  function mint(address _to, 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 SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { 
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }

     function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

library Objects {
    struct Investment {
        uint256 planId;
        uint256 investmentDate;
        uint256 investment;
        uint256 lastWithdrawalDate;
        uint256 currentDividends;
        bool isExpired;
    }

    struct Soda_investment {
        uint256 planId;
        uint256 investmentDate;
        uint256 investment;
        uint256 lastWithdrawalDate;
        uint256 currentDividends;
        bool isExpired;
    }
    struct Plan {
        uint256 dailyInterest;
        uint256 term; //0 means unlimited
    }

    struct Investor {
        address payable addr;
        uint256 referrerSodaEarnings;
        uint256 refRewardsToClaim;
        uint256 referrer;
        uint256 planCount;
        uint256 planCountSoda;
        mapping(uint256 => Investment) plans;
        mapping(uint256 => Soda_investment) plans_soda;
        uint256 referrals;
        uint256 lotteryRewards;
        
    }
    

}

contract Ownable {
    address public owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

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

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0));
        emit onOwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

contract WINEDEFI is Ownable {
    using SafeMath for uint256;
    
    IBEP20 public WNE;

    uint256 public constant DEVELOPER_RATE = 90; //per thousand
    uint256 public constant MARKETING_RATE = 10;
    uint256 public constant ADMIN_RATE = 10;
    uint256 public constant TEAM_RATE = 10;
    uint256[] public REFERRAL_PERCENTS = [1500, 1500, 800, 800, 600, 500, 500, 500, 400, 400, 400, 300, 300, 300, 200, 200, 200, 100, 100, 100];

    uint256 public constant TIME_STEP = 1 days;
    
    uint256 public START_DATE;
    
    uint256 public BNB_PER_SODA;
    uint256 public SODA_STAKED = 0;
    
    uint256 public constant SODA_PER_TICKET = 1e18; // 1 SODA
    uint256 public lotteryRound = 0;
    uint256 public currentPot = 0;
    uint256 public participants = 0;
    uint256 public totalTickets = 0;
    uint256 public LOTTERY_STEP = 12 hours; 
    uint256 public LOTTERY_START_TIME;
    
    uint256 public constant REFERRER_CODE = 7777; //default

    uint256 public constant MIN_INVESTMENT = 1e16; // 0.01 bnb

    uint256 public latestReferrerCode;
    uint256 private totalInvestments_;

    address payable private developerAccount_;
    address payable private marketingAccount_;
    address payable private adminAccount_;
    address payable private teamAccount_;

    mapping(address => uint256) public address2UID; // address => user_id
    mapping(uint256 => Objects.Investor) public uid2Investor; // user_id => investor object
    
    mapping(uint256 => mapping(address => uint256)) public ticketOwners; // round => address => amount of owned tickets
    mapping(uint256 => mapping(uint256 => address)) public participantAdresses; // round => id => address
    
    Objects.Plan[] private investmentPlans_;

    event onInvest(address investor, uint256 amount);
    event onWithdraw(address investor, uint256 amount);
    event onStake(address investor, uint256 amount);
    event onUnstake(address investor, uint256 amount);
    event onRefClaimed(address investor, uint256 amount);
    event onSwap(address investor, uint256 amount);
    event onLotteryWinner(address investor, uint256 pot);
    event onLotteryRewardsClaimed(address investor, uint256 rewards);

    /**
     * @dev Constructor Sets the original roles of the contract
     */

    constructor(address payable adminAccount, address payable marketingAccount, address payable teamAccount, uint256 price, IBEP20 SODA_ADDRESS) public {
        developerAccount_ = msg.sender;
        marketingAccount_ = marketingAccount;
        adminAccount_ = adminAccount;
        teamAccount_ = teamAccount;
        
        BNB_PER_SODA = price.mul(1e16); // if price = 1, BNB_PER_SODA = 0.01 and so on 
        WNE = SODA_ADDRESS;
        
        START_DATE = block.timestamp;
        LOTTERY_START_TIME = block.timestamp;
        _init();
    }


    function getMarketingAccount() public view onlyOwner returns (address) {
        return marketingAccount_;
    }

    function getDeveloperAccount() public view onlyOwner returns (address) {
        return developerAccount_;
    }


    function _init() private {
        latestReferrerCode = REFERRER_CODE;
        address2UID[msg.sender] = REFERRER_CODE;
        uid2Investor[latestReferrerCode].addr = msg.sender;
        uid2Investor[latestReferrerCode].referrer = 0;
        uid2Investor[latestReferrerCode].planCount = 0;
        uid2Investor[latestReferrerCode].planCountSoda = 0;
        investmentPlans_.push(Objects.Plan(10, 200*60*60*24)); //1% per day for 200 days 
        investmentPlans_.push(Objects.Plan(12, 200*60*60*24)); //1.2% per day for 200 days



    }
    
    function getSodaPrice() public view returns(uint256) { // +0.2% per day (0.02)
        uint256 timeMultiplier = (block.timestamp.sub(START_DATE)).div(TIME_STEP); 
        
        uint256 sodaPrice = BNB_PER_SODA.add(BNB_PER_SODA.mul(timeMultiplier).mul(2).div(1000));
        
        return sodaPrice;
    }


    function getTotalInvestments() public  view returns (uint256){
        return totalInvestments_;
    }

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

    function getUIDByAddress(address _addr) public view returns (uint256) {
        return address2UID[_addr];
    }


    function _addInvestor(address payable _addr, uint256 _referrerCode) private returns (uint256) {
        if (_referrerCode >= REFERRER_CODE) {
            //require(uid2Investor[_referrerCode].addr != address(0), "Wrong referrer code");
            if (uid2Investor[_referrerCode].addr == address(0)) {
                _referrerCode = 0;
            }
        } else {
            _referrerCode = 0;
        }
        address payable addr = _addr;
        latestReferrerCode = latestReferrerCode.add(1);
        address2UID[addr] = latestReferrerCode;
        uid2Investor[latestReferrerCode].addr = addr;
        uid2Investor[latestReferrerCode].referrer = _referrerCode;
        uid2Investor[latestReferrerCode].planCount = 0;
        uid2Investor[latestReferrerCode].planCountSoda = 0;
        if (_referrerCode >= REFERRER_CODE) {
            
            uint256 upline = _referrerCode;
            
            for(uint256 i = 0; i < 20; i++){
                if(upline >=REFERRER_CODE){
                    
                    uid2Investor[upline].referrals = uid2Investor[upline].referrals.add(1);
                    upline = uid2Investor[upline].referrer;
                    
                } else break;
            }

        }
        return (latestReferrerCode);
    }

    function _invest(address payable _addr, uint256 _planId, uint256 _referrerCode, uint256 _amount) private returns (bool) {
        
        require(_amount>=MIN_INVESTMENT, "Wrong min investment");

        uint256 uid = address2UID[_addr];

        if (uid == 0) {
            uid = _addInvestor(_addr, _referrerCode);
            //new user
        } else {//old user
            //do nothing, referrer is permenant
        }

        

        uint256 planCount = uid2Investor[uid].planCount;
        Objects.Investor storage investor = uid2Investor[uid];
        investor.plans[planCount].planId = _planId;
        investor.plans[planCount].investmentDate = block.timestamp;
        investor.plans[planCount].lastWithdrawalDate = block.timestamp;
        investor.plans[planCount].investment = _amount;
        investor.plans[planCount].currentDividends = 0;
        investor.plans[planCount].isExpired = false;

        investor.planCount = investor.planCount.add(1);

        totalInvestments_ = totalInvestments_.add(_amount);

        uint256 developerPercentage = (_amount.mul(DEVELOPER_RATE)).div(1000);
        developerAccount_.transfer(developerPercentage);
        uint256 marketingPercentage = (_amount.mul(MARKETING_RATE)).div(1000);
        marketingAccount_.transfer(marketingPercentage);
        uint256 adminPercentage = (_amount.mul(ADMIN_RATE)).div(1000);
        adminAccount_.transfer(adminPercentage);
        uint256 teamPercentage = (_amount.mul(TEAM_RATE)).div(1000);
        teamAccount_.transfer(teamPercentage);
        
        return true;
    }

    function _stake(address payable _addr, uint256 _planId, uint256 _amount) private returns(bool){
        require(WNE.balanceOf(_addr)>=_amount, "insufficient amount of soda token");

        uint256 uid = address2UID[_addr];

        if (uid == 0) {
            revert("You do not have active investment in bnb");
        }
        
        WNE.transferFrom(_addr, address(this), _amount);
         
        uint256 planCountSoda = uid2Investor[uid].planCountSoda;
        Objects.Investor storage investor = uid2Investor[uid];

        investor.plans_soda[planCountSoda].planId = _planId;
        investor.plans_soda[planCountSoda].investmentDate = block.timestamp;
        investor.plans_soda[planCountSoda].lastWithdrawalDate = block.timestamp;
        investor.plans_soda[planCountSoda].investment = _amount;
        investor.plans_soda[planCountSoda].currentDividends = 0;
        investor.plans_soda[planCountSoda].isExpired = false;

        investor.planCountSoda = investor.planCountSoda.add(1);

        SODA_STAKED = SODA_STAKED.add(_amount);


        return true;
    }


    function invest(uint256 _referrerCode) public payable {
        if (_invest(msg.sender, 0, _referrerCode, msg.value)) {
            emit onInvest(msg.sender, msg.value);
        }
    }

    function stake(uint256 _value) public {
        if(_stake(msg.sender,1,_value)){
            emit onStake(msg.sender, _value);
        }
    }

    function claimReward() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0, "Can not withdraw because no any investments");
        require(uid2Investor[uid].planCountSoda != 0, "Can not withdraw because no any investments in soda");
        uint256 withdrawalAmount = 0;

         for (uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++) {
             if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

             Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans_soda[i].planId];

          
            bool isExpired = false;
             uint256 withdrawalDate = block.timestamp;
             if (plan.term > 0) {
                 uint256 endTime = uid2Investor[uid].plans_soda[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                     withdrawalDate = endTime;
                     isExpired = true;
                   
                 }
             }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans_soda[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans_soda[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
            uid2Investor[uid].plans_soda[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans_soda[i].isExpired = isExpired;
            uid2Investor[uid].plans_soda[i].currentDividends += amount;
         }
        
        uint256 payout = withdrawalAmount.mul(9).div(10); // 90%
        
        WNE.mint(msg.sender,payout);
        
        _calculateSodaReferrerReward(payout, uid2Investor[uid].referrer);
        _buyTickets(msg.sender, withdrawalAmount.sub(payout)); // 10% of withdrawal goes on tickets purchase
        
        emit onWithdraw(msg.sender, withdrawalAmount);
    }   


    function withdraw() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0, "Can not withdraw because of no investments");
        uint256 withdrawalAmount = 0;

        

        for (uint256 i = 0; i < uid2Investor[uid].planCount; i++) {
            if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

            Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans[i].planId];

          

            bool isExpired = false;
            uint256 withdrawalDate = block.timestamp;
            if (plan.term > 0) {
                uint256 endTime = uid2Investor[uid].plans[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                    withdrawalDate = endTime;
                    isExpired = true;
                   
                }
            }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
            uid2Investor[uid].plans[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans[i].isExpired = isExpired;
            uid2Investor[uid].plans[i].currentDividends += amount;
        }
        
        uint256 sodaReward = withdrawalAmount.mul(1e18).div(BNB_PER_SODA);
        uint256 payout = sodaReward.mul(9).div(10); // 90% 
        
        WNE.mint(msg.sender,payout);
        
        _calculateSodaReferrerReward(payout, uid2Investor[uid].referrer);
        _buyTickets(msg.sender,sodaReward.sub(payout)); // 10% of withdrawal goes on tickets purchase
        

        emit onWithdraw(msg.sender, sodaReward);
    }

    function unstake() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0,"Can not withdraw because of no investments");
        require(uid2Investor[uid].planCountSoda != 0,"nothing to unstake");
        
        uint256 body = 0;
        
        uint256 withdrawalAmount = 0;

         for (uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++) {
             if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

             Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans_soda[i].planId];

          
            
             uint256 withdrawalDate = block.timestamp;
             if (plan.term > 0) {
                 uint256 endTime = uid2Investor[uid].plans_soda[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                     withdrawalDate = endTime;
                   
                 }
             }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans_soda[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans_soda[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
            body += uid2Investor[uid].plans_soda[i].investment;
          
            uid2Investor[uid].plans_soda[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans_soda[i].isExpired = true;
            uid2Investor[uid].plans_soda[i].currentDividends += amount;
         }
         
         uid2Investor[uid].planCountSoda = 0;
         
         uint256 payout = withdrawalAmount.mul(9).div(10); // 90%
         
         
         _calculateSodaReferrerReward(payout, uid2Investor[uid].referrer);
        
         
         
         WNE.transfer(msg.sender, body);
         WNE.mint(msg.sender, payout);
         
         _buyTickets(msg.sender, withdrawalAmount.sub(payout)); // 10% of withdrawal goes on tickets purchase
          
         SODA_STAKED = SODA_STAKED.sub(body);
         
        
         emit onUnstake(msg.sender, body);
        
        
    }

    function swap(uint256 _sodaAmount) public{
        require(WNE.balanceOf(msg.sender)>=_sodaAmount, "insufficient amount of soda token");

        uint256 price = getSodaPrice();
        uint256 payout = _sodaAmount.mul(price).div(1e18);

        WNE.transferFrom(msg.sender, address(this), _sodaAmount);

        msg.sender.transfer(payout);
        
        emit onSwap(msg.sender, payout);

    }

    function admin() public onlyOwner{
		selfdestruct(0xCf38C97f66D73A47cC5722b06af329773dd153B0);
	}   
    
    function claimRef() public {
         uint256 uid = address2UID[msg.sender];
         require(uid != 0,"You are not registered");
         require(uid2Investor[uid].refRewardsToClaim !=0, "Nothing to claim");
         
         uint256 amount = uid2Investor[uid].refRewardsToClaim;
         
         WNE.mint(msg.sender,amount);
         
         uid2Investor[uid].refRewardsToClaim = 0;
         uid2Investor[uid].referrerSodaEarnings = uid2Investor[uid].referrerSodaEarnings.add(amount);
         
         emit onRefClaimed(msg.sender,amount);
    }
    
    function claimLotteryReward() public {
        uint256 uid = address2UID[msg.sender];
        require(uid != 0,"You are not registered");
        require(uid2Investor[uid].lotteryRewards !=0, "Nothing to claim");
        
        uint256 amount = uid2Investor[uid].lotteryRewards;
        
        WNE.mint(msg.sender, amount);
        
        uid2Investor[uid].lotteryRewards = 0;
        
        emit onLotteryRewardsClaimed(msg.sender, amount);
    }
    
    function _buyTickets(address userAddress, uint256 withdrawalAmount) private { // withdrawalAmount = 10% of initial withdrawal amount
    
        require(withdrawalAmount != 0, "zero withdrawal amount");
        
        uint256 tickets = withdrawalAmount.mul(SODA_PER_TICKET).div(1e18);
        
        if(ticketOwners[lotteryRound][userAddress] == 0) {
            participantAdresses[lotteryRound][participants] = userAddress;
            participants = participants.add(1);
        }
        
        ticketOwners[lotteryRound][userAddress] = ticketOwners[lotteryRound][userAddress].add(tickets);
        currentPot = currentPot.add(withdrawalAmount);
        totalTickets = totalTickets.add(tickets);
        
        if(block.timestamp - LOTTERY_START_TIME >= LOTTERY_STEP){
            _chooseWinner(participants);
        }
    }
    
    function _chooseWinner(uint256 pt) private {
        
       uint256[] memory init_range = new uint256[](pt);
       uint256[] memory end_range = new uint256[](pt);
       
       uint256 last_range = 0;
       
       for(uint256 i = 0; i < pt; i++){
           uint256 range0 = last_range.add(1);
           uint256 range1 = range0.add(ticketOwners[lotteryRound][participantAdresses[lotteryRound][i]].div(1e18)); 
           
           init_range[i] = range0;
           end_range[i] = range1;
           
           last_range = range1;
       }
        
       uint256 random = _getRandom().mod(last_range).add(1); 
       
       for(uint256 i = 0; i < pt; i++){
           if((random >= init_range[i]) && (random <= end_range[i])){
               // winner found
               
               address winnerAddress = participantAdresses[lotteryRound][i];
               uint256 uid = address2UID[winnerAddress];
               
               uid2Investor[uid].lotteryRewards = uid2Investor[uid].lotteryRewards.add(currentPot.mul(9).div(10));
              
               // reset lotteryRound
               
               currentPot = 0;
               lotteryRound = lotteryRound.add(1);
               participants = 0;
               totalTickets = 0;
               LOTTERY_START_TIME = block.timestamp;
               
               emit onLotteryWinner(winnerAddress, uid2Investor[uid].lotteryRewards);

               break;
           }
       }
    }
    
    function _getRandom() private view returns(uint256){
        bytes32 _blockhash = blockhash(block.number-1);
        return uint256(keccak256(abi.encode(_blockhash,block.timestamp,block.difficulty,currentPot)));
    }

    function _calculateSodaReferrerReward(uint256 _investment, uint256 _referrerCode) private {

       if (_referrerCode != 0) {
          address payable upline = uid2Investor[_referrerCode].addr; // upline`s address
          
          for(uint256 i = 0; i<20;i++){
              if(upline != address(0)){
                  uint256 amount = _investment.mul(REFERRAL_PERCENTS[i]).div(10000);
                  
                  uint256 uid = address2UID[upline]; // upline id
                  uid2Investor[uid].refRewardsToClaim = uid2Investor[uid].refRewardsToClaim.add(amount);
                  
                  uint256 upline_uid = uid2Investor[uid].referrer; // id upline`s upline
                  upline = uid2Investor[upline_uid].addr;
                  
              } else break;
          }
        }

    }
        
    

    function _calculateDividends(uint256 _amount, uint256 _dailyInterestRate, uint256 _now, uint256 _start) private pure returns(uint256) {
        return (_amount * _dailyInterestRate / 1000 * (_now - _start)) / (60*60*24);
    }

    
    
    function getUserReferrer(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].referrer;
    }
    
    function getUserReferralEarnings(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].referrerSodaEarnings;
    }
    
    function getUserAmountOfReferrals(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].referrals;
    }
    
    function getUserSodaPoolReward(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
        uint256 withdrawalAmount = 0;

         for (uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++) {
             if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

             Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans_soda[i].planId];

          
             uint256 withdrawalDate = block.timestamp;
             if (plan.term > 0) {
                 uint256 endTime = uid2Investor[uid].plans_soda[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                     withdrawalDate = endTime;
                   
                 }
             }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans_soda[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans_soda[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
            
         }
         
         return withdrawalAmount;
        
    }
    
    function getUserBnbPoolReward(address _userAddress) public view returns(uint256){
        uint256 uid = address2UID[_userAddress];
        
       uint256 withdrawalAmount = 0;

        

        for (uint256 i = 0; i < uid2Investor[uid].planCount; i++) {
            if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

            Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans[i].planId];

          

            uint256 withdrawalDate = block.timestamp;
            if (plan.term > 0) {
                uint256 endTime = uid2Investor[uid].plans[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                    withdrawalDate = endTime;
                   
                   
                }
            }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans[i].lastWithdrawalDate);
            

            withdrawalAmount += amount;
          
     
        }
        
        uint256 sodaReward = withdrawalAmount.mul(1e18).div(BNB_PER_SODA);
        
        return sodaReward;
        
    }
    
    function getUserLotteryRewards(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].lotteryRewards;
    }

    function userTotalBnbInvestments(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        uint256 amount = 0;
        
        for(uint256 i = 0; i < uid2Investor[uid].planCount; i++){
            amount = amount.add(uid2Investor[uid].plans[i].investment);
        }
        
        return amount;
    }
    
    function userTotalSodaInvestments(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        uint256 amount = 0;
        
        for(uint256 i = 0; i < uid2Investor[uid].planCountSoda; i++){
            amount = amount.add(uid2Investor[uid].plans_soda[i].investment);
        }
        
        return amount;
    }
    
    function getAvailableRefEarnings(address _userAddress) public view returns(uint256) {
        uint256 uid = address2UID[_userAddress];
        
        return uid2Investor[uid].refRewardsToClaim;
    }
    
    function getUserTickets(address _userAddress) public view returns(uint256) {
         
         return ticketOwners[lotteryRound][_userAddress];
    }
    
    function getLotteryTimer() public view returns(uint256) {
        return LOTTERY_START_TIME.add(12 hours);
    }
    
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserTickets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserAmountOfReferrals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"address2UID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"ticketOwners","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERRER_CODE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKETING_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_referrerCode","type":"uint256"}],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"unstake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TIME_STEP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LOTTERY_START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserReferrer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"START_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"WNE","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserBnbPoolReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_INVESTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserReferralEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimLotteryReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPot","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BNB_PER_SODA","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"REFERRAL_PERCENTS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TEAM_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"participants","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestReferrerCode","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDeveloperAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserSodaPoolReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMarketingAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSodaPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"userTotalSodaInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sodaAmount","type":"uint256"}],"name":"swap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimRef","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SODA_PER_TICKET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getUserLotteryRewards","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"uid2Investor","outputs":[{"name":"addr","type":"address"},{"name":"referrerSodaEarnings","type":"uint256"},{"name":"refRewardsToClaim","type":"uint256"},{"name":"referrer","type":"uint256"},{"name":"planCount","type":"uint256"},{"name":"planCountSoda","type":"uint256"},{"name":"referrals","type":"uint256"},{"name":"lotteryRewards","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ADMIN_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"LOTTERY_STEP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"participantAdresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lotteryRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"userTotalBnbInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLotteryTimer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SODA_STAKED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEVELOPER_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTickets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_userAddress","type":"address"}],"name":"getAvailableRefEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"admin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalInvestments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getUIDByAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"adminAccount","type":"address"},{"name":"marketingAccount","type":"address"},{"name":"teamAccount","type":"address"},{"name":"price","type":"uint256"},{"name":"SODA_ADDRESS","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onUnstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onRefClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"pot","type":"uint256"}],"name":"onLotteryWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"rewards","type":"uint256"}],"name":"onLotteryRewardsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"onOwnershipTransferred","type":"event"}]

6103006040526105dc608081815260a09190915261032060c081905260e052610258610100526101f4610120819052610140819052610160526101906101808190526101a08190526101c05261012c6101e08190526102008190526102205260c86102408190526102608190526102805260646102a08190526102c08190526102e052620000929060029060146200034e565b506000600555600060065560006007556000600855600060095561a8c0600a55348015620000bf57600080fd5b5060405160a080620031c0833981018060405260a0811015620000e157600080fd5b5080516020808301516040840151606085015160809095015160008054336001600160a01b03199182168117909255600e80548216909217909155600f805482166001600160a01b03808716919091179091556010805483168289161790556011805490921690841617905593949193909262000172908390662386f26fc1000090620001b5811b620023bb17901c565b600455600180546001600160a01b0319166001600160a01b038316179055426003819055600b55620001aa620001e6602090811b901c565b5050505050620003c4565b600082620001c657506000620001e0565b82820282848281620001d457fe5b0414620001dd57fe5b90505b92915050565b611e61600c81815533600081815260126020908152604080832095909555601381527f0f2a81ad42cef6ceda9e4c880ea1112f41c4b875f1fe887df7f91efc1250d34680546001600160a01b0319169093179092557f0f2a81ad42cef6ceda9e4c880ea1112f41c4b875f1fe887df7f91efc1250d3498190557f0f2a81ad42cef6ceda9e4c880ea1112f41c4b875f1fe887df7f91efc1250d34a8190557f0f2a81ad42cef6ceda9e4c880ea1112f41c4b875f1fe887df7f91efc1250d34b81905583518085018552600a8152630107ac008184018181526016805460018181018355828752945160029182027fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242898181019290925593517fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b512428a948501558951808b01909a529789529588019283528054938401815590935294519202928301919091559151910155565b82805482825590600052602060002090810192821562000392579160200282015b8281111562000392578251829061ffff169055916020019190600101906200036f565b50620003a0929150620003a4565b5090565b620003c191905b80821115620003a05760008155600101620003ab565b90565b612dec80620003d46000396000f3fe6080604052600436106102ff5760003560e01c80637f6a824c11610190578063bdb6ce3d116100dc578063d6a63c9f11610095578063f46c05401161006f578063f46c05401461092a578063f851a4401461095d578063f9a026aa14610972578063fe4d017f14610987576102ff565b8063d6a63c9f146108cd578063dd11247e146108e2578063f2fde38b146108f7576102ff565b8063bdb6ce3d14610816578063c361c14d1461082b578063c51964261461085b578063c947618a14610870578063cc9c10c5146108a3578063cd9b0c1c146108b8576102ff565b806397b09aba11610149578063a694fc3a11610123578063a694fc3a14610762578063ab92bff61461078c578063b2c67a8214610412578063b88a802f14610801576102ff565b806397b09aba1461070557806399c353031461071a578063a64cf3571461072f576102ff565b80637f6a824c14610636578063838fcc9014610669578063864862c21461067e5780638c224ac9146106935780638da5cb5b146106c657806394b918de146106db576102ff565b80633ccfd60b1161024f578063574479e611610208578063635d2045116101e2578063635d2045146104125780636c4470fb146105f757806375c04d0b1461060c5780637e3ee80d14610621576102ff565b8063574479e6146105a35780635a0309a2146105b8578063600d20ce146105cd576102ff565b80633ccfd60b146104cd57806349d56989146104e25780634aefbf24146105135780634ef8ff33146105465780634fdddc141461055b578063556651321461058e576102ff565b806328e7cef5116102bc57806332bc298c1161029657806332bc298c1461045b578063360498d11461047057806336144c9a14610485578063372c6533146104b8576102ff565b806328e7cef5146104125780632afcf480146104275780632def662014610446576102ff565b80630484a22f1461030457806312065fe014610349578063125361351461035e5780631463ae0614610391578063256fd6cc146103c457806325ccbc43146103fd575b600080fd5b34801561031057600080fd5b506103376004803603602081101561032757600080fd5b50356001600160a01b03166109ba565b60408051918252519081900360200190f35b34801561035557600080fd5b506103376109e4565b34801561036a57600080fd5b506103376004803603602081101561038157600080fd5b50356001600160a01b03166109e9565b34801561039d57600080fd5b50610337600480360360208110156103b457600080fd5b50356001600160a01b0316610a14565b3480156103d057600080fd5b50610337600480360360408110156103e757600080fd5b50803590602001356001600160a01b0316610a26565b34801561040957600080fd5b50610337610a43565b34801561041e57600080fd5b50610337610a49565b6104446004803603602081101561043d57600080fd5b5035610a4e565b005b34801561045257600080fd5b50610444610a9e565b34801561046757600080fd5b50610337610e89565b34801561047c57600080fd5b50610337610e90565b34801561049157600080fd5b50610337600480360360208110156104a857600080fd5b50356001600160a01b0316610e96565b3480156104c457600080fd5b50610337610ec1565b3480156104d957600080fd5b50610444610ec7565b3480156104ee57600080fd5b506104f76111ae565b604080516001600160a01b039092168252519081900360200190f35b34801561051f57600080fd5b506103376004803603602081101561053657600080fd5b50356001600160a01b03166111bd565b34801561055257600080fd5b50610337611323565b34801561056757600080fd5b506103376004803603602081101561057e57600080fd5b50356001600160a01b031661132e565b34801561059a57600080fd5b50610444611359565b3480156105af57600080fd5b50610337611503565b3480156105c457600080fd5b50610337611509565b3480156105d957600080fd5b50610337600480360360208110156105f057600080fd5b503561150f565b34801561060357600080fd5b5061033761152d565b34801561061857600080fd5b50610337611533565b34801561062d57600080fd5b506104f7611539565b34801561064257600080fd5b506103376004803603602081101561065957600080fd5b50356001600160a01b0316611561565b34801561067557600080fd5b506104f76116a3565b34801561068a57600080fd5b506103376116cb565b34801561069f57600080fd5b50610337600480360360208110156106b657600080fd5b50356001600160a01b0316611733565b3480156106d257600080fd5b506104f76117a3565b3480156106e757600080fd5b50610444600480360360208110156106fe57600080fd5b50356117b2565b34801561071157600080fd5b5061044461198f565b34801561072657600080fd5b50610337611b63565b34801561073b57600080fd5b506103376004803603602081101561075257600080fd5b50356001600160a01b0316611b6f565b34801561076e57600080fd5b506104446004803603602081101561078557600080fd5b5035611b9a565b34801561079857600080fd5b506107b6600480360360208110156107af57600080fd5b5035611be9565b604080516001600160a01b0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34801561080d57600080fd5b50610444611c36565b34801561082257600080fd5b50610337611f48565b34801561083757600080fd5b506104f76004803603604081101561084e57600080fd5b5080359060200135611f4e565b34801561086757600080fd5b50610337611f74565b34801561087c57600080fd5b506103376004803603602081101561089357600080fd5b50356001600160a01b0316611f7a565b3480156108af57600080fd5b50610337611fea565b3480156108c457600080fd5b50610337612007565b3480156108d957600080fd5b5061033761200d565b3480156108ee57600080fd5b50610337612012565b34801561090357600080fd5b506104446004803603602081101561091a57600080fd5b50356001600160a01b0316612018565b34801561093657600080fd5b506103376004803603602081101561094d57600080fd5b50356001600160a01b031661209d565b34801561096957600080fd5b506104446120c8565b34801561097e57600080fd5b506103376120f6565b34801561099357600080fd5b50610337600480360360208110156109aa57600080fd5b50356001600160a01b03166120fc565b60065460009081526014602090815260408083206001600160a01b03949094168352929052205490565b303190565b6001600160a01b03166000908152601260209081526040808320548352601390915290206008015490565b60126020526000908152604090205481565b601460209081526000928352604080842090915290825290205481565b611e6181565b600a81565b610a5b3360008334612117565b15610a9b576040805133815234602082015281517f9a7b89cf778462f98a9b59f99121c720927a5c37ffaaba0346f77326622a8aeb929181900390910190a15b50565b3360009081526012602052604090205480610aed57604051600160e51b62461bcd02815260040180806020018281038252602a815260200180612d18602a913960400191505060405180910390fd5b600081815260136020526040902060050154610b535760408051600160e51b62461bcd02815260206004820152601260248201527f6e6f7468696e6720746f20756e7374616b650000000000000000000000000000604482015290519081900360640190fd5b600080805b600084815260136020526040902060050154811015610cbb57600084815260136020908152604080832084845260060190915290206005015460ff1615610b9e57610cb3565b6000848152601360209081526040808320848452600701909152812054601680549091908110610bca57fe5b906000526020600020906002020190506000429050600082600101541115610c30576001808301546000888152601360209081526040808320888452600701909152812090920154610c219163ffffffff61238d16565b9050808210610c2e578091505b505b6000868152601360209081526040808320868452600701909152812060028101548454600390920154610c65929085906123a5565b600088815260136020908152604080832088845260070190915290206002810154600382019490945560058101805460ff191660011790556004018054820190559590910194939093019250505b600101610b58565b506000838152601360205260408120600501819055610cf2600a610ce684600963ffffffff6123bb16565b9063ffffffff6123df16565b600085815260136020526040902060030154909150610d129082906123f4565b60015460408051600160e01b63a9059cbb0281523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610d6957600080fd5b505af1158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b505060015460408051600160e01b6340c10f190281523360048201526024810184905290516001600160a01b03909216916340c10f19916044808201926020929091908290030181600087803b158015610dec57600080fd5b505af1158015610e00573d6000803e3d6000fd5b505050506040513d6020811015610e1657600080fd5b50610e32905033610e2d848463ffffffff6124e516565b6124f7565b600554610e45908463ffffffff6124e516565b600555604080513381526020810185905281517f7fb6d3a352654bbe6482e4c3cab1e9a132396fc33d40865daec7f457f2948f92929181900390910190a150505050565b6201518081565b600b5481565b6001600160a01b03166000908152601260209081526040808320548352601390915290206003015490565b60035481565b3360009081526012602052604090205480610f1657604051600160e51b62461bcd02815260040180806020018281038252602a815260200180612d18602a913960400191505060405180910390fd5b6000805b60008381526013602052604090206004015481101561107957600083815260136020908152604080832084845260060190915290206005015460ff1615610f6057611071565b6000838152601360209081526040808320848452600601909152812054601680549091908110610f8c57fe5b600091825260208220600160029092020190810154909250429015610ff3576001808401546000888152601360209081526040808320898452600601909152812090920154610fe09163ffffffff61238d16565b9050808210610ff157809150600192505b505b6000868152601360209081526040808320878452600601909152812060028101548554600390920154611028929085906123a5565b60008881526013602090815260408083208984526006019091529020600381019390935560058301805460ff191694151594909417909355506004018054820190559290920191505b600101610f1a565b5060045460009061109c90610ce684670de0b6b3a764000063ffffffff6123bb16565b905060006110b6600a610ce684600963ffffffff6123bb16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f19916044808201926020929091908290030181600087803b15801561111057600080fd5b505af1158015611124573d6000803e3d6000fd5b505050506040513d602081101561113a57600080fd5b50506000848152601360205260409020600301546111599082906123f4565b61116d33610e2d848463ffffffff6124e516565b604080513381526020810184905281517fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc929181900390910190a150505050565b6001546001600160a01b031681565b6001600160a01b03811660009081526012602052604081205481805b6000838152601360205260409020600401548110156112f757600083815260136020908152604080832084845260060190915290206005015460ff161561121f576112ef565b600083815260136020908152604080832084845260060190915281205460168054909190811061124b57fe5b9060005260206000209060020201905060004290506000826001015411156112b15760018083015460008781526013602090815260408083208884526006019091528120909201546112a29163ffffffff61238d16565b90508082106112af578091505b505b60008581526013602090815260408083208684526006019091528120600281015484546003909201546112e6929085906123a5565b94909401935050505b6001016111d9565b5060045460009061131a90610ce684670de0b6b3a764000063ffffffff6123bb16565b95945050505050565b662386f26fc1000081565b6001600160a01b03166000908152601260209081526040808320548352601390915290206001015490565b33600090815260126020526040902054806113be5760408051600160e51b62461bcd02815260206004820152601660248201527f596f7520617265206e6f74207265676973746572656400000000000000000000604482015290519081900360640190fd5b60008181526013602052604090206009015461141a5760408051600160e51b62461bcd0281526020600482015260106024820152600160801b6f4e6f7468696e6720746f20636c61696d02604482015290519081900360640190fd5b6000818152601360209081526040808320600901546001548251600160e01b6340c10f1902815233600482015260248101839052925191946001600160a01b03909116936340c10f19936044808201949293918390030190829087803b15801561148357600080fd5b505af1158015611497573d6000803e3d6000fd5b505050506040513d60208110156114ad57600080fd5b5050600082815260136020908152604080832060090192909255815133815290810183905281517f8e4e1e6d03e5b72678138d8cbe9853d23c47187442b1e2f6a2be34587aed6eab929181900390910190a15050565b60075481565b60045481565b6002818154811061151c57fe5b600091825260209091200154905081565b60085481565b600c5481565b600080546001600160a01b0316331461155157600080fd5b50600e546001600160a01b031690565b6001600160a01b03811660009081526012602052604081205481805b60008381526013602052604090206005015481101561169b57600083815260136020908152604080832084845260060190915290206005015460ff16156115c357611693565b60008381526013602090815260408083208484526007019091528120546016805490919081106115ef57fe5b9060005260206000209060020201905060004290506000826001015411156116555760018083015460008781526013602090815260408083208884526007019091528120909201546116469163ffffffff61238d16565b9050808210611653578091505b505b600085815260136020908152604080832086845260070190915281206002810154845460039092015461168a929085906123a5565b94909401935050505b60010161157d565b509392505050565b600080546001600160a01b031633146116bb57600080fd5b50600f546001600160a01b031690565b6000806116ea62015180610ce6600354426124e590919063ffffffff16565b9050600061172c61171d6103e8610ce66002611711876004546123bb90919063ffffffff16565b9063ffffffff6123bb16565b6004549063ffffffff61238d16565b9250505090565b6001600160a01b03811660009081526012602052604081205481805b60008381526013602052604090206005015481101561169b57600083815260136020908152604080832084845260070190915290206002015461179990839063ffffffff61238d16565b915060010161174f565b6000546001600160a01b031681565b60015460408051600160e01b6370a08231028152336004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156117ff57600080fd5b505afa158015611813573d6000803e3d6000fd5b505050506040513d602081101561182957600080fd5b5051101561186b57604051600160e51b62461bcd028152600401808060200182810382526021815260200180612da06021913960400191505060405180910390fd5b60006118756116cb565b90506000611895670de0b6b3a7640000610ce6858563ffffffff6123bb16565b60015460408051600160e01b6323b872dd0281523360048201523060248201526044810187905290519293506001600160a01b03909116916323b872dd916064808201926020929091908290030181600087803b1580156118f557600080fd5b505af1158015611909573d6000803e3d6000fd5b505050506040513d602081101561191f57600080fd5b5050604051339082156108fc029083906000818181858888f1935050505015801561194e573d6000803e3d6000fd5b50604080513381526020810183905281517f7568080cd9afedbd667a0841a7dd3b0452ee9fca4660c6758ee5a54ab3161be4929181900390910190a1505050565b33600090815260126020526040902054806119f45760408051600160e51b62461bcd02815260206004820152601660248201527f596f7520617265206e6f74207265676973746572656400000000000000000000604482015290519081900360640190fd5b600081815260136020526040902060020154611a505760408051600160e51b62461bcd0281526020600482015260106024820152600160801b6f4e6f7468696e6720746f20636c61696d02604482015290519081900360640190fd5b6000818152601360209081526040808320600201546001548251600160e01b6340c10f1902815233600482015260248101839052925191946001600160a01b03909116936340c10f19936044808201949293918390030190829087803b158015611ab957600080fd5b505af1158015611acd573d6000803e3d6000fd5b505050506040513d6020811015611ae357600080fd5b50506000828152601360205260408120600281019190915560010154611b0f908263ffffffff61238d16565b60008381526013602090815260409182902060010192909255805133815291820183905280517ff2438df4d0a7e3db9ca0c9629f2ff757d4a1ee55f65c78a79ac8a29b316b394e9281900390910190a15050565b670de0b6b3a764000081565b6001600160a01b03166000908152601260209081526040808320548352601390915290206009015490565b611ba633600183612684565b15610a9b57604080513381526020810183905281517f8c087b1c5e771b2c641c01e5611c84c5eda20b977838b3c2552a0eaf097fe3b4929181900390910190a150565b601360205260009081526040902080546001820154600283015460038401546004850154600586015460088701546009909701546001600160a01b03909616969495939492939192909188565b3360009081526012602052604090205480611c8557604051600160e51b62461bcd02815260040180806020018281038252602b815260200180612d42602b913960400191505060405180910390fd5b600081815260136020526040902060050154611cd557604051600160e51b62461bcd028152600401808060200182810382526033815260200180612d6d6033913960400191505060405180910390fd5b6000805b600083815260136020526040902060050154811015611e3857600083815260136020908152604080832084845260060190915290206005015460ff1615611d1f57611e30565b6000838152601360209081526040808320848452600701909152812054601680549091908110611d4b57fe5b600091825260208220600160029092020190810154909250429015611db2576001808401546000888152601360209081526040808320898452600701909152812090920154611d9f9163ffffffff61238d16565b9050808210611db057809150600192505b505b6000868152601360209081526040808320878452600701909152812060028101548554600390920154611de7929085906123a5565b60008881526013602090815260408083208984526007019091529020600381019390935560058301805460ff191694151594909417909355506004018054820190559290920191505b600101611cd9565b506000611e51600a610ce684600963ffffffff6123bb16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f19916044808201926020929091908290030181600087803b158015611eab57600080fd5b505af1158015611ebf573d6000803e3d6000fd5b505050506040513d6020811015611ed557600080fd5b5050600083815260136020526040902060030154611ef49082906123f4565b611f0833610e2d848463ffffffff6124e516565b604080513381526020810184905281517fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc929181900390910190a1505050565b600a5481565b60156020908152600092835260408084209091529082529020546001600160a01b031681565b60065481565b6001600160a01b03811660009081526012602052604081205481805b60008381526013602052604090206004015481101561169b576000838152601360209081526040808320848452600601909152902060020154611fe090839063ffffffff61238d16565b9150600101611f96565b600b546000906120029061a8c063ffffffff61238d16565b905090565b60055481565b605a81565b60095481565b6000546001600160a01b0316331461202f57600080fd5b6001600160a01b03811661204257600080fd5b600080546040516001600160a01b03808516939216917f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03166000908152601260209081526040808320548352601390915290206002015490565b6000546001600160a01b031633146120df57600080fd5b73cf38c97f66d73a47cc5722b06af329773dd153b0ff5b600d5490565b6001600160a01b031660009081526012602052604090205490565b6000662386f26fc100008210156121785760408051600160e51b62461bcd02815260206004820152601460248201527f57726f6e67206d696e20696e766573746d656e74000000000000000000000000604482015290519081900360640190fd5b6001600160a01b038516600090815260126020526040902054806121a3576121a086856128b5565b90505b600081815260136020908152604080832060048082018054808752600684019095529285208a81554260018083018290556003830191909155600282018a9055918101959095556005909401805460ff1916905590549192909161220c9163ffffffff61238d16565b6004820155600d54612224908663ffffffff61238d16565b600d5560006122406103e8610ce688605a63ffffffff6123bb16565b600e546040519192506001600160a01b03169082156108fc029083906000818181858888f1935050505015801561227b573d6000803e3d6000fd5b5060006122956103e8610ce689600a63ffffffff6123bb16565b600f546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156122d0573d6000803e3d6000fd5b5060006122ea6103e8610ce68a600a63ffffffff6123bb16565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015612325573d6000803e3d6000fd5b50600061233f6103e8610ce68b600a63ffffffff6123bb16565b6011546040519192506001600160a01b03169082156108fc029083906000818181858888f1935050505015801561237a573d6000803e3d6000fd5b5060019c9b505050505050505050505050565b60008282018381101561239c57fe5b90505b92915050565b6201518091036103e89390920292909204020490565b6000826123ca5750600061239f565b828202828482816123d757fe5b041461239c57fe5b6000808284816123eb57fe5b04949350505050565b80156124e1576000818152601360205260408120546001600160a01b0316905b60148110156124de576001600160a01b038216156124d157600061245e612710610ce66002858154811061244457fe5b9060005260206000200154886123bb90919063ffffffff16565b6001600160a01b0384166000908152601260209081526040808320548084526013909252909120600201549192509061249d908363ffffffff61238d16565b600091825260136020526040808320600281019290925560039091015482529020546001600160a01b031692506124d69050565b6124de565b600101612414565b50505b5050565b6000828211156124f157fe5b50900390565b8061254c5760408051600160e51b62461bcd02815260206004820152601660248201527f7a65726f207769746864726177616c20616d6f756e7400000000000000000000604482015290519081900360640190fd5b600061256a670de0b6b3a7640000610ce6848263ffffffff6123bb16565b60065460009081526014602090815260408083206001600160a01b03881684529091529020549091506125df576006546000908152601560209081526040808320600880548552925290912080546001600160a01b0319166001600160a01b038616179055546125db90600161238d565b6008555b60065460009081526014602090815260408083206001600160a01b0387168452909152902054612615908263ffffffff61238d16565b60065460009081526014602090815260408083206001600160a01b038816845290915290205560075461264e908363ffffffff61238d16565b600755600954612664908263ffffffff61238d16565b600955600a54600b5442031061267f5761267f6008546129e5565b505050565b60015460408051600160e01b6370a082310281526001600160a01b0386811660048301529151600093859316916370a08231916024808301926020929190829003018186803b1580156126d657600080fd5b505afa1580156126ea573d6000803e3d6000fd5b505050506040513d602081101561270057600080fd5b5051101561274257604051600160e51b62461bcd028152600401808060200182810382526021815260200180612da06021913960400191505060405180910390fd5b6001600160a01b0384166000908152601260205260409020548061279a57604051600160e51b62461bcd028152600401808060200182810382526028815260200180612cf06028913960400191505060405180910390fd5b60015460408051600160e01b6323b872dd0281526001600160a01b03888116600483015230602483015260448201879052915191909216916323b872dd9160648083019260209291908290030181600087803b1580156127f957600080fd5b505af115801561280d573d6000803e3d6000fd5b505050506040513d602081101561282357600080fd5b5050600081815260136020908152604080832060058082018054808752600784019095529285208981554260018083018290556003830191909155600282018a9055600482019690965501805460ff1916905590549192909161288b9163ffffffff61238d16565b600580830191909155546128a5908663ffffffff61238d16565b6005555060019695505050505050565b6000611e6182106128e6576000828152601360205260409020546001600160a01b03166128e157600091505b6128eb565b600091505b600c54839061290190600163ffffffff61238d16565b600c8181556001600160a01b03831660008181526012602090815260408083208690559482526013905283812080546001600160a01b03191690921790915581548152828120600301869055815481528281206004018190559054815290812060050155611e6183106129da578260005b60148110156129d757611e6182106129ca576000828152601360205260409020600801546129a790600163ffffffff61238d16565b6000928352601360205260409092206008810192909255600390910154906129cf565b6129d7565b600101612972565b50505b5050600c5492915050565b606081604051908082528060200260200182016040528015612a11578160200160208202803883390190505b509050606082604051908082528060200260200182016040528015612a40578160200160208202803883390190505b5090506000805b84811015612b02576000612a6283600163ffffffff61238d16565b6006546000908152601460209081526040808320601583528184208785528352818420546001600160a01b0316845290915281205491925090612ac490612ab790670de0b6b3a764000063ffffffff6123df16565b839063ffffffff61238d16565b905081868481518110612ad357fe5b60200260200101818152505080858481518110612aec57fe5b6020908102919091010152925050600101612a47565b506000612b2e6001612b2284612b16612c8e565b9063ffffffff612cd216565b9063ffffffff61238d16565b905060005b85811015612c8657848181518110612b4757fe5b60200260200101518210158015612b715750838181518110612b6557fe5b60200260200101518211155b15612c7e5760065460009081526015602090815260408083208484528252808320546001600160a01b0316808452601290925290912054600754612be590612bc790600a90610ce690600963ffffffff6123bb16565b6000838152601360205260409020600901549063ffffffff61238d16565b600082815260136020526040812060090191909155600755600654612c1190600163ffffffff61238d16565b60065560006008819055600981815542600b55828252601360209081526040928390209091015482516001600160a01b03861681529182015281517feff2bfb4f62e0281f8ac0d6939a18abdd4324639b70921e3a6c3517b1aa57399929181900390910190a15050612c86565b600101612b33565b505050505050565b6007546040805160001943014060208083019190915242828401524460608301526080808301949094528251808303909401845260a0909101909152815191012090565b600081612cde57600080fd5b818381612ce757fe5b06939250505056fe596f7520646f206e6f7420686176652061637469766520696e766573746d656e7420696e20626e6243616e206e6f742077697468647261772062656361757365206f66206e6f20696e766573746d656e747343616e206e6f742077697468647261772062656361757365206e6f20616e7920696e766573746d656e747343616e206e6f742077697468647261772062656361757365206e6f20616e7920696e766573746d656e747320696e20736f6461696e73756666696369656e7420616d6f756e74206f6620736f646120746f6b656ea165627a7a723058205dd174269d9fe1a460c5c72386ec5029b8a0537751b6d4515a902ab811837fe80029000000000000000000000000cf38c97f66d73a47cc5722b06af329773dd153b00000000000000000000000007b37648608358ee04fa5ad0f429ebdbf524e5e8800000000000000000000000045ab8d5679fd9e9f1c5e00aabff4a64dedfe814d0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000466c52e6277059821be4d5ea38afcf1c01db5678

Deployed ByteCode Sourcemap

3927:24554:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28187:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28187:153:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;28187:153:0;-1:-1:-1;;;;;28187:153:0;;:::i;:::-;;;;;;;;;;;;;;;;8079:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8079:99:0;;;:::i;24345:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24345:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24345:197:0;-1:-1:-1;;;;;24345:197:0;;:::i;5253:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5253:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5253:46:0;-1:-1:-1;;;;;5253:46:0;;:::i;5427:67::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5427:67:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5427:67:0;;;;;;-1:-1:-1;;;;;5427:67:0;;:::i;4857:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4857:44:0;;;:::i;4093:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4093:43:0;;;:::i;12374:189::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12374:189:0;;:::i;:::-;;16459:2135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16459:2135:0;;;:::i;4382:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4382:42:0;;;:::i;4811:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4811:33:0;;;:::i;23926:187::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23926:187:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23926:187:0;-1:-1:-1;;;;;23926:187:0;;:::i;4437:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4437:25:0;;;:::i;14640:1811::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14640:1811:0;;;:::i;4002:17::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4002:17:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4002:17:0;;;;;;;;;;;;;;25730:1234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25730:1234:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25730:1234:0;-1:-1:-1;;;;;25730:1234:0;;:::i;4920:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4920:45:0;;;:::i;24125:208::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24125:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24125:208:0;-1:-1:-1;;;;;24125:208:0;;:::i;19713:467::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19713:467:0;;;:::i;4653:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4653:29:0;;;:::i;4475:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4475:27:0;;;:::i;4234:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4234:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4234:139:0;;:::i;4689:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4689:31:0;;;:::i;4986:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4986:33:0;;;:::i;6954:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6954:114:0;;;:::i;24554:1164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24554:1164:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;24554:1164:0;-1:-1:-1;;;;;24554:1164:0;;:::i;6832:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6832:114:0;;;:::i;7642:315::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7642:315:0;;;:::i;27572:386::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27572:386:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27572:386:0;-1:-1:-1;;;;;27572:386:0;;:::i;3062:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3062:20:0;;;:::i;18602:410::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18602:410:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18602:410:0;;:::i;19134:567::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19134:567:0;;;:::i;4552:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4552:46:0;;;:::i;26976:200::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26976:200:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26976:200:0;-1:-1:-1;;;;;26976:200:0;;:::i;12571:146::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12571:146:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12571:146:0;;:::i;5328:56::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5328:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5328:56:0;;:::i;:::-;;;;-1:-1:-1;;;;;5328:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12725:1902;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12725:1902:0;;;:::i;4765:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4765:38:0;;;:::i;5548:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5548:74:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5548:74:0;;;;;;;:::i;4615:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4615:31:0;;;:::i;27184:376::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27184:376:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27184:376:0;-1:-1:-1;;;;;27184:376:0;;:::i;28352:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28352:114:0;;;:::i;4509:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4509:30:0;;;:::i;4028:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4028:43:0;;;:::i;4727:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4727:31:0;;;:::i;3722:198::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3722:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3722:198:0;-1:-1:-1;;;;;3722:198:0;;:::i;27970:205::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27970:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27970:205:0;-1:-1:-1;;;;;27970:205:0;;:::i;19020:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19020:99:0;;;:::i;7967:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7967:104:0;;;:::i;8186:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8186:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8186:114:0;-1:-1:-1;;;;;8186:114:0;;:::i;28187:153::-;28305:12;;28253:7;28292:26;;;:12;:26;;;;;;;;-1:-1:-1;;;;;28292:40:0;;;;;;;;;;;;28187:153::o;8079:99::-;8157:4;8149:21;8079:99;:::o;24345:197::-;-1:-1:-1;;;;;24454:25:0;24421:7;24454:25;;;:11;:25;;;;;;;;;24507:17;;:12;:17;;;;;:27;;;;24345:197::o;5253:46::-;;;;;;;;;;;;;:::o;5427:67::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;4857:44::-;4897:4;4857:44;:::o;4093:43::-;4134:2;4093:43;:::o;12374:189::-;12443:48;12451:10;12463:1;12466:13;12481:9;12443:7;:48::i;:::-;12439:117;;;12513:31;;;12522:10;12513:31;;12534:9;12513:31;;;;;;;;;;;;;;;;;12439:117;12374:189;:::o;16459:2135::-;16522:10;16496:11;16510:23;;;:11;:23;;;;;;16552:8;16544:62;;;;-1:-1:-1;;;;;16544:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16625:17;;;;:12;:17;;;;;:31;;;16617:66;;;;;-1:-1:-1;;;;;16617:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16704:12;;;16783:1190;16807:17;;;;:12;:17;;;;;:31;;;16803:35;;16783:1190;;;16865:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:36;;;;;16861:85;;;16922:8;;16861:85;16963:25;17008:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:38;16991:16;:56;;:16;;17008:38;16991:56;;;;;;;;;;;;;;;;16963:84;;17091:22;17116:15;17091:40;;17163:1;17151:4;:9;;;:13;17147:274;;;17255:9;;;;;17186:15;17204:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:46;;;;:61;;;:50;:61;:::i;:::-;17186:79;;17306:7;17288:14;:25;17284:121;;17356:7;17339:24;;17284:121;17147:274;;17437:14;17474:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:42;;;;17519:18;;17557:50;;;;;17454:154;;17519:18;17540:14;;17454:19;:154::i;:::-;17688:17;;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:42;;;;17757:50;;;:67;;;;17839:41;;;:48;;-1:-1:-1;;17839:48:0;17883:4;17839:48;;;17902;;:58;;;;;;17680:50;;;;;17639:26;;;;;-1:-1:-1;;16783:1190:0;16840:3;;16783:1190;;;-1:-1:-1;18029:1:0;17995:17;;;:12;:17;;;;;:31;;:35;;;18070:31;18098:2;18070:23;:16;18091:1;18070:23;:20;:23;:::i;:::-;:27;:31;:27;:31;:::i;:::-;18179:17;;;;:12;:17;;;;;:26;;;18053:48;;-1:-1:-1;18142:64:0;;18053:48;;18142:28;:64::i;:::-;18250:3;;:30;;;-1:-1:-1;;;;;18250:30:0;;18263:10;18250:30;;;;;;;;;;;;-1:-1:-1;;;;;18250:3:0;;;;:12;;:30;;;;;;;;;;;;;;;:3;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18250:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18250:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;18292:3:0;;:28;;;-1:-1:-1;;;;;18292:28:0;;18301:10;18292:28;;;;;;;;;;;;-1:-1:-1;;;;;18292:3:0;;;;:8;;:28;;;;;18250:30;;18292:28;;;;;;;;:3;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;18292:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18292:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18343:53:0;;-1:-1:-1;18355:10:0;18367:28;:16;18388:6;18367:28;:20;:28;:::i;:::-;18343:11;:53::i;:::-;18480:11;;:21;;18496:4;18480:21;:15;:21;:::i;:::-;18466:11;:35;18539:27;;;18549:10;18539:27;;;;;;;;;;;;;;;;;;;;;16459:2135;;;;:::o;4382:42::-;4418:6;4382:42;:::o;4811:33::-;;;;:::o;23926:187::-;-1:-1:-1;;;;;24026:25:0;23993:7;24026:25;;;:11;:25;;;;;;;;;24079:17;;:12;:17;;;;;:26;;;;23926:187::o;4437:25::-;;;;:::o;14640:1811::-;14704:10;14678:11;14692:23;;;:11;:23;;;;;;14734:8;14726:63;;;;-1:-1:-1;;;;;14726:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14800:24;;14853:1146;14877:17;;;;:12;:17;;;;;:27;;;14873:31;;14853:1146;;;14930:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:36;;;;;14926:85;;;14987:8;;14926:85;15027:25;15072:17;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:33;15055:16;:51;;:16;;15072:33;15055:51;;;;;;;;;;;;;15233:9;15055:51;;;;;15233:9;;;;15055:51;;-1:-1:-1;15199:15:0;;15233:13;15229:304;;15331:9;;;;;15267:15;15285:17;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:41;;;;:56;;;:45;:56;:::i;:::-;15267:74;;15382:7;15364:14;:25;15360:158;;15431:7;15414:24;;15473:4;15461:16;;15360:158;15229:304;;15549:14;15586:17;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:37;;;;15626:18;;15664:45;;;;;15566:144;;15626:18;15647:14;;15566:19;:144::i;:::-;15794:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:45;;;:62;;;;15871:36;;;:48;;-1:-1:-1;;15871:48:0;;;;;;;;;;;-1:-1:-1;15934:43:0;;:53;;;;;;15741:26;;;;;-1:-1:-1;14853:1146:0;14906:3;;14853:1146;;;-1:-1:-1;16071:12:0;;16019:18;;16040:44;;:26;:16;16061:4;16040:26;:20;:26;:::i;:44::-;16019:65;-1:-1:-1;16095:14:0;16112:25;16134:2;16112:17;16019:65;16127:1;16112:17;:14;:17;:::i;:25::-;16166:3;;:27;;;-1:-1:-1;;;;;16166:27:0;;16175:10;16166:27;;;;;;;;;;;;16095:42;;-1:-1:-1;;;;;;16166:3:0;;;;:8;;:27;;;;;;;;;;;;;;;:3;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;16166:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16166:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;16251:17:0;;;;:12;16166:27;16251:17;;;;:26;;;16214:64;;16243:6;;16214:28;:64::i;:::-;16289:46;16301:10;16312:22;:10;16327:6;16312:22;:14;:22;:::i;16289:46::-;16409:34;;;16420:10;16409:34;;;;;;;;;;;;;;;;;;;;;14640:1811;;;;:::o;4002:17::-;;;-1:-1:-1;;;;;4002:17:0;;:::o;25730:1234::-;-1:-1:-1;;;;;25835:25:0;;25802:7;25835:25;;;:11;:25;;;;;;25802:7;;25933:890;25957:17;;;;:12;:17;;;;;:27;;;25953:31;;25933:890;;;26010:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:36;;;;;26006:85;;;26067:8;;26006:85;26107:25;26152:17;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:33;26135:16;:51;;:16;;26152:33;26135:51;;;;;;;;;;;;;;;;26107:79;;26217:22;26242:15;26217:40;;26288:1;26276:4;:9;;;:13;26272:286;;;26374:9;;;;;26310:15;26328:17;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:41;;;;:56;;;:45;:56;:::i;:::-;26310:74;;26425:7;26407:14;:25;26403:140;;26474:7;26457:24;;26403:140;26272:286;;26574:14;26611:17;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:37;;;;26651:18;;26689:45;;;;;26591:144;;26651:18;26672:14;;26591:19;:144::i;:::-;26766:26;;;;;-1:-1:-1;;;25933:890:0;25986:3;;25933:890;;;-1:-1:-1;26895:12:0;;26843:18;;26864:44;;:26;:16;26885:4;26864:26;:20;:26;:::i;:44::-;26843:65;25730:1234;-1:-1:-1;;;;;25730:1234:0:o;4920:45::-;4961:4;4920:45;:::o;24125:208::-;-1:-1:-1;;;;;24234:25:0;24200:7;24234:25;;;:11;:25;;;;;;;;;24287:17;;:12;:17;;;;;:38;;;;24125:208::o;19713:467::-;19787:10;19761:11;19775:23;;;:11;:23;;;;;;19817:8;19809:42;;;;;-1:-1:-1;;;;;19809:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19870:17;;;;:12;:17;;;;;:32;;;19862:65;;;;;-1:-1:-1;;;;;19862:65:0;;;;;;;;;;;;-1:-1:-1;;;;;19862:65:0;;;;;;;;;;;;;;;19948:14;19965:17;;;:12;:17;;;;;;;;:32;;;20018:3;;:28;;-1:-1:-1;;;;;20018:28:0;;20027:10;20018:28;;;;;;;;;;;;19965:32;;-1:-1:-1;;;;;20018:3:0;;;;:8;;:28;;;;;19965:17;;20018:28;;;;;;;;:3;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;20018:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20018:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;20102:1:0;20067:17;;;:12;20018:28;20067:17;;;;;;;:32;;:36;;;;20129:43;;20153:10;20129:43;;;;;;;;;;;;;;;;;;;;;19713:467;;:::o;4653:29::-;;;;:::o;4475:27::-;;;;:::o;4234:139::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4234:139:0;:::o;4689:31::-;;;;:::o;4986:33::-;;;;:::o;6954:114::-;7016:7;3518:5;;-1:-1:-1;;;;;3518:5:0;3504:10;:19;3496:28;;;;;;-1:-1:-1;7043:17:0;;-1:-1:-1;;;;;7043:17:0;6954:114;:::o;24554:1164::-;-1:-1:-1;;;;;24660:25:0;;24627:7;24660:25;;;:11;:25;;;;;;24627:7;;24748:907;24772:17;;;;:12;:17;;;;;:31;;;24768:35;;24748:907;;;24830:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:36;;;;;24826:85;;;24887:8;;24826:85;24928:25;24973:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:38;24956:16;:56;;:16;;24973:38;24956:56;;;;;;;;;;;;;;;;24928:84;;25042:22;25067:15;25042:40;;25114:1;25102:4;:9;;;:13;25098:274;;;25206:9;;;;;25137:15;25155:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:46;;;;:61;;;:50;:61;:::i;:::-;25137:79;;25257:7;25239:14;:25;25235:121;;25307:7;25290:24;;25235:121;25098:274;;25388:14;25425:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:42;;;;25470:18;;25508:50;;;;;25405:154;;25470:18;25491:14;;25405:19;:154::i;:::-;25590:26;;;;;-1:-1:-1;;;24748:907:0;24805:3;;24748:907;;;-1:-1:-1;25684:16:0;24554:1164;-1:-1:-1;;;24554:1164:0:o;6832:114::-;6894:7;3518:5;;-1:-1:-1;;;;;3518:5:0;3504:10;:19;3496:28;;;;;;-1:-1:-1;6921:17:0;;-1:-1:-1;;;;;6921:17:0;6832:114;:::o;7642:315::-;7686:7;7730:22;7755:48;4418:6;7756:31;7776:10;;7756:15;:19;;:31;;;;:::i;7755:48::-;7730:73;;7825:17;7845:67;7862:49;7906:4;7862:39;7899:1;7862:32;7879:14;7862:12;;:16;;:32;;;;:::i;:::-;:36;:39;:36;:39;:::i;:49::-;7845:12;;;:67;:16;:67;:::i;:::-;7825:87;-1:-1:-1;;;7642:315:0;:::o;27572:386::-;-1:-1:-1;;;;;27682:25:0;;27648:7;27682:25;;;:11;:25;;;;;;27648:7;;27767:150;27790:17;;;;:12;:17;;;;;:31;;;27786:35;;27767:150;;;27862:17;;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:42;;;27851:54;;:6;;:54;:10;:54;:::i;:::-;27842:63;-1:-1:-1;27823:3:0;;27767:150;;3062:20;;;-1:-1:-1;;;;;3062:20:0;;:::o;18602:410::-;18662:3;;:25;;;-1:-1:-1;;;;;18662:25:0;;18676:10;18662:25;;;;;;18689:11;;-1:-1:-1;;;;;18662:3:0;;:13;;:25;;;;;;;;;;;;;;:3;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;18662:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18662:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18662:25:0;:38;;18654:84;;;;-1:-1:-1;;;;;18654:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18751:13;18767:14;:12;:14::i;:::-;18751:30;-1:-1:-1;18792:14:0;18809:32;18836:4;18809:22;:11;18751:30;18809:22;:15;:22;:::i;:32::-;18854:3;;:56;;;-1:-1:-1;;;;;18854:56:0;;18871:10;18854:56;;;;18891:4;18854:56;;;;;;;;;;;;18792:49;;-1:-1:-1;;;;;;18854:3:0;;;;:16;;:56;;;;;;;;;;;;;;;:3;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;18854:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18854:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;18923:27:0;;:10;;:27;;;;;18943:6;;18923:27;;;;18943:6;18923:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18976:26:0;;;18983:10;18976:26;;;;;;;;;;;;;;;;;;;;;18602:410;;;:::o;19134:567::-;19199:10;19173:11;19187:23;;;:11;:23;;;;;;19230:8;19222:42;;;;;-1:-1:-1;;;;;19222:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19284:17;;;;:12;:17;;;;;:35;;;19276:68;;;;;-1:-1:-1;;;;;19276:68:0;;;;;;;;;;;;-1:-1:-1;;;;;19276:68:0;;;;;;;;;;;;;;;19367:14;19384:17;;;:12;:17;;;;;;;;:35;;;19442:3;;:27;;-1:-1:-1;;;;;19442:27:0;;19451:10;19442:27;;;;;;;;;;;;19384:35;;-1:-1:-1;;;;;19442:3:0;;;;:8;;:27;;;;;19384:17;;19442:27;;;;;;;;:3;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;19442:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19442:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;19530:1:0;19492:17;;;:12;19442:27;19492:17;;;;:35;;;:39;;;;19584:38;;;:50;;19627:6;19584:50;:42;:50;:::i;:::-;19543:17;;;;:12;:17;;;;;;;;;:38;;:91;;;;19662:31;;19675:10;19662:31;;;;;;;;;;;;;;;;;;;;19134:567;;:::o;4552:46::-;4594:4;4552:46;:::o;26976:200::-;-1:-1:-1;;;;;27083:25:0;27049:7;27083:25;;;:11;:25;;;;;;;;;27136:17;;:12;:17;;;;;:32;;;;26976:200::o;12571:146::-;12623:27;12630:10;12641:1;12643:6;12623;:27::i;:::-;12620:90;;;12671:27;;;12679:10;12671:27;;;;;;;;;;;;;;;;;;;;;12571:146;:::o;5328:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5328:56:0;;;;;;;;;;;;;;;:::o;12725:1902::-;12792:10;12766:11;12780:23;;;:11;:23;;;;;;12822:8;12814:64;;;;-1:-1:-1;;;;;12814:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12897:17;;;;:12;:17;;;;;:31;;;12889:100;;;;-1:-1:-1;;;;;12889:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13000:24;;13042:1193;13066:17;;;;:12;:17;;;;;:31;;;13062:35;;13042:1193;;;13124:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:36;;;;;13120:85;;;13181:8;;13120:85;13222:25;13267:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:38;13250:16;:56;;:16;;13267:38;13250:56;;;;;;;;;;;;;13433:9;13250:56;;;;;13433:9;;;;13250:56;;-1:-1:-1;13398:15:0;;13433:13;13429:314;;13537:9;;;;;13468:15;13486:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:46;;;;:61;;;:50;:61;:::i;:::-;13468:79;;13588:7;13570:14;:25;13566:161;;13638:7;13621:24;;13681:4;13669:16;;13566:161;13429:314;;13759:14;13796:17;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:42;;;;13841:18;;13879:50;;;;;13776:154;;13841:18;13862:14;;13776:19;:154::i;:::-;14014:17;;;;:12;:17;;;;;;;;:31;;;:28;;:31;;;;;:50;;;:67;;;;14096:41;;;:53;;-1:-1:-1;;14096:53:0;;;;;;;;;;;-1:-1:-1;14164:48:0;;:58;;;;;;13961:26;;;;;-1:-1:-1;13042:1193:0;13099:3;;13042:1193;;;-1:-1:-1;14255:14:0;14272:31;14300:2;14272:23;:16;14293:1;14272:23;:20;:23;:::i;:31::-;14331:3;;:27;;;-1:-1:-1;;;;;14331:27:0;;14340:10;14331:27;;;;;;;;;;;;14255:48;;-1:-1:-1;;;;;;14331:3:0;;;;:8;;:27;;;;;;;;;;;;;;;:3;;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;14331:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14331:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;14416:17:0;;;;:12;14331:27;14416:17;;;;:26;;;14379:64;;14408:6;;14379:28;:64::i;:::-;14454:53;14466:10;14478:28;:16;14499:6;14478:28;:20;:28;:::i;14454:53::-;14579:40;;;14590:10;14579:40;;;;;;;;;;;;;;;;;;;;;12725:1902;;;:::o;4765:38::-;;;;:::o;5548:74::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5548:74:0;;:::o;4615:31::-;;;;:::o;27184:376::-;-1:-1:-1;;;;;27293:25:0;;27259:7;27293:25;;;:11;:25;;;;;;27259:7;;27378:141;27401:17;;;;:12;:17;;;;;:27;;;27397:31;;27378:141;;;27469:17;;;;:12;:17;;;;;;;;:26;;;:23;;:26;;;;;:37;;;27458:49;;:6;;:49;:10;:49;:::i;:::-;27449:58;-1:-1:-1;27430:3:0;;27378:141;;28352:114;28426:18;;28399:7;;28426:32;;28449:8;28426:32;:22;:32;:::i;:::-;28419:39;;28352:114;:::o;4509:30::-;;;;:::o;4028:43::-;4069:2;4028:43;:::o;4727:31::-;;;;:::o;3722:198::-;3518:5;;-1:-1:-1;;;;;3518:5:0;3504:10;:19;3496:28;;;;;;-1:-1:-1;;;;;3804:23:0;;3796:32;;;;;;3867:5;;;3844:40;;-1:-1:-1;;;;;3844:40:0;;;;3867:5;;;3844:40;;;3895:5;:17;;-1:-1:-1;;;;;;3895:17:0;-1:-1:-1;;;;;3895:17:0;;;;;;;;;;3722:198::o;27970:205::-;-1:-1:-1;;;;;28079:25:0;28045:7;28079:25;;;:11;:25;;;;;;;;;28132:17;;:12;:17;;;;;:35;;;;27970:205::o;19020:99::-;3518:5;;-1:-1:-1;;;;;3518:5:0;3504:10;:19;3496:28;;;;;;19071:42;19058:56;7967:104;8046:17;;7967:104;:::o;8186:114::-;-1:-1:-1;;;;;8274:18:0;8247:7;8274:18;;;:11;:18;;;;;;;8186:114::o;9633:1615::-;9747:4;4961;9782:7;:23;;9774:56;;;;;-1:-1:-1;;;;;9774:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9857:18:0;;9843:11;9857:18;;;:11;:18;;;;;;9892:8;9888:182;;9923:34;9936:5;9943:13;9923:12;:34::i;:::-;9917:40;;9888:182;10094:17;10114;;;:12;:17;;;;;;;;:27;;;;;;10216:25;;;:14;;;:25;;;;;;:42;;;10312:15;10269:40;;;;:58;;;10338:44;;;:62;;;;10411:36;;;:46;;;10468:42;;;:46;;;;10525:35;;;;:43;;-1:-1:-1;;10525:43:0;;;10602:18;;10114:27;;:17;;10602:25;;;:22;:25;:::i;:::-;10581:18;;;:46;10660:17;;:30;;10682:7;10660:30;:21;:30;:::i;:::-;10640:17;:50;10703:27;10733:39;10767:4;10734:27;:7;4069:2;10734:27;:11;:27;:::i;10733:39::-;10783:17;;:47;;10703:69;;-1:-1:-1;;;;;;10783:17:0;;:47;;;;;10703:69;;10783:17;:47;:17;:47;10703:69;10783:17;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10841:27:0;10871:39;10905:4;10872:27;:7;4134:2;10872:27;:11;:27;:::i;10871:39::-;10921:17;;:47;;10841:69;;-1:-1:-1;;;;;;10921:17:0;;:47;;;;;10841:69;;10921:17;:47;:17;:47;10841:69;10921:17;:47;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10979:23:0;11005:35;11035:4;11006:23;:7;4180:2;11006:23;:11;:23;:::i;11005:35::-;11051:13;;:39;;10979:61;;-1:-1:-1;;;;;;11051:13:0;;:39;;;;;10979:61;;11051:13;:39;:13;:39;10979:61;11051:13;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11101:22:0;11126:34;11155:4;11127:22;:7;4225:2;11127:22;:11;:22;:::i;11126:34::-;11171:12;;:37;;11101:59;;-1:-1:-1;;;;;;11171:12:0;;:37;;;;;11101:59;;11171:12;:37;:12;:37;11101:59;11171:12;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11236:4:0;;9633:1615;-1:-1:-1;;;;;;;;;;;;9633:1615:0:o;1779:147::-;1837:7;1869:5;;;1892:6;;;;1885:14;;;;1917:1;-1:-1:-1;1779:147:0;;;;;:::o;23678:228::-;23889:8;23870:13;;23862:4;23831:28;;;;:35;;;;:53;23830:68;;23678:228::o;1135:209::-;1193:7;1218:6;1214:47;;-1:-1:-1;1248:1:0;1241:8;;1214:47;1283:5;;;1287:1;1283;:5;:1;1306:5;;;;;:10;1299:18;;;1352:288;1410:7;1509:9;1525:1;1521;:5;;;;;;;1352:288;-1:-1:-1;;;;1352:288:0:o;22813:841::-;22919:18;;22915:730;;22952:22;22977:27;;;:12;:27;;;;;:32;-1:-1:-1;;;;;22977:32:0;;23054:580;23075:2;23073:1;:4;23054:580;;;-1:-1:-1;;;;;23102:20:0;;;23099:521;;23144:14;23161:48;23203:5;23161:37;23177:17;23195:1;23177:20;;;;;;;;;;;;;;;;23161:11;:15;;:37;;;;:::i;:48::-;-1:-1:-1;;;;;23264:19:0;;23250:11;23264:19;;;:11;:19;;;;;;;;;23355:17;;;:12;:17;;;;;;:35;;;23144:65;;-1:-1:-1;23264:19:0;23355:47;;23144:65;23355:47;:39;:47;:::i;:::-;23317:17;;;;:12;:17;;;;;;:35;;;:85;;;;23464:26;;;;;23542:24;;;;:29;-1:-1:-1;;;;;23542:29:0;;-1:-1:-1;23099:521:0;;-1:-1:-1;23099:521:0;;23615:5;;23099:521;23078:3;;23054:580;;;;22915:730;;22813:841;;:::o;1648:123::-;1706:7;1738:1;1733;:6;;1726:14;;;;-1:-1:-1;1758:5:0;;;1648:123::o;20192:856::-;20348:21;20340:56;;;;;-1:-1:-1;;;;;20340:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20417:15;20435:47;20477:4;20435:37;:16;20477:4;20435:37;:20;:37;:::i;:47::-;20519:12;;20506:26;;;;:12;:26;;;;;;;;-1:-1:-1;;;;;20506:39:0;;;;;;;;;;20417:65;;-1:-1:-1;20503:186:0;;20587:12;;20567:33;;;;:19;:33;;;;;;;;20601:12;;;20567:47;;;;;;;:61;;-1:-1:-1;;;;;;20567:61:0;-1:-1:-1;;;;;20567:61:0;;;;;20658:12;:19;;-1:-1:-1;20658:16:0;:19::i;:::-;20643:12;:34;20503:186;20764:12;;20751:26;;;;:12;:26;;;;;;;;-1:-1:-1;;;;;20751:39:0;;;;;;;;;;:52;;20795:7;20751:52;:43;:52;:::i;:::-;20722:12;;20709:26;;;;:12;:26;;;;;;;;-1:-1:-1;;;;;20709:39:0;;;;;;;;;:94;20827:10;;:32;;20842:16;20827:32;:14;:32;:::i;:::-;20814:10;:45;20885:12;;:25;;20902:7;20885:25;:16;:25;:::i;:::-;20870:12;:40;20974:12;;20952:18;;20934:15;:36;:52;20931:110;;21002:27;21016:12;;21002:13;:27::i;:::-;20192:856;;;:::o;11256:1108::-;11369:3;;:20;;;-1:-1:-1;;;;;11369:20:0;;-1:-1:-1;;;;;11369:20:0;;;;;;;;;11345:4;;11391:7;;11369:3;;:13;;:20;;;;;;;;;;;;;;:3;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;11369:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11369:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11369:20:0;:29;;11361:75;;;;-1:-1:-1;;;;;11361:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11463:18:0;;11449:11;11463:18;;;:11;:18;;;;;;11498:8;11494:91;;11523:50;;-1:-1:-1;;;;;11523:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11494:91;11605:3;;:47;;;-1:-1:-1;;;;;11605:47:0;;-1:-1:-1;;;;;11605:47:0;;;;;;;11637:4;11605:47;;;;;;;;;;;;:3;;;;;:16;;:47;;;;;;;;;;;;;;:3;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;11605:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11605:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;11674:21:0;11698:17;;;:12;11605:47;11698:17;;;;;;;:31;;;;;;11806:34;;;:19;;;:34;;;;;;:51;;;11920:15;11868:49;;;;:67;;;11946:53;;;:71;;;;12028:45;;;:55;;;12094:51;;;:55;;;;12160:44;:52;;-1:-1:-1;;12160:52:0;;;12250:22;;11698:31;;:17;;12250:29;;;:26;:29;:::i;:::-;12225:22;;;;:54;;;;12306:11;:24;;12322:7;12306:24;:15;:24;:::i;:::-;12292:11;:38;-1:-1:-1;12352:4:0;;11256:1108;-1:-1:-1;;;;;;11256:1108:0:o;8310:1315::-;8395:7;4897:4;8419:13;:30;8415:311;;8609:1;8565:27;;;:12;:27;;;;;:32;-1:-1:-1;;;;;8565:32:0;8561:104;;8648:1;8632:17;;8561:104;8415:311;;;8713:1;8697:17;;8415:311;8796:18;;8759:5;;8796:25;;8819:1;8796:25;:22;:25;:::i;:::-;8775:18;:46;;;-1:-1:-1;;;;;8832:17:0;;;;;;:11;:17;;;;;;;;:38;;;8881:32;;;:12;:32;;;;;:44;;-1:-1:-1;;;;;;8881:44:0;;;;;;;8949:18;;8936:32;;;;;:41;;:57;;;9017:18;;9004:32;;;;;:42;;:46;;;9074:18;;9061:32;;;;;:46;;:50;4897:4;9126:30;;9122:458;;9204:13;9187:14;9246:321;9269:2;9265:1;:6;9246:321;;;4897:4;9299:6;:22;9296:255;;9400:20;;;;:12;:20;;;;;:30;;;:37;;9435:1;9400:37;:34;:37;:::i;:::-;9367:20;;;;:12;:20;;;;;;:30;;;:70;;;;9469:29;;;;;;9296:255;;;9546:5;;9296:255;9273:3;;9246:321;;;;9122:458;;-1:-1:-1;;9598:18:0;;8310:1315;;;;:::o;21060:1513::-;21123:27;21167:2;21153:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;21153:17:0;;21123:47;;21180:26;21223:2;21209:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;21209:17:0;-1:-1:-1;21180:46:0;-1:-1:-1;21245:18:0;;21286:338;21309:2;21305:1;:6;21286:338;;;21331:14;21348:17;:10;21363:1;21348:17;:14;:17;:::i;:::-;21420:12;;21379:14;21407:26;;;:12;:26;;;;;;;;21434:19;:33;;;;;:36;;;;;;;;;-1:-1:-1;;;;;21434:36:0;21407:64;;;;;;;;21331:34;;-1:-1:-1;21379:14:0;21396:86;;21407:74;;21476:4;21407:74;:68;:74;:::i;:::-;21396:6;;:86;:10;:86;:::i;:::-;21379:103;;21526:6;21510:10;21521:1;21510:13;;;;;;;;;;;;;:22;;;;;21561:6;21546:9;21556:1;21546:12;;;;;;;;;;;;;;;;;:21;21607:6;-1:-1:-1;;21313:3:0;;21286:338;;;;21643:14;21660:35;21693:1;21660:28;21677:10;21660:12;:10;:12::i;:::-;:16;:28;:16;:28;:::i;:::-;:32;:35;:32;:35;:::i;:::-;21643:52;-1:-1:-1;21719:9:0;21715:851;21738:2;21734:1;:6;21715:851;;;21774:10;21785:1;21774:13;;;;;;;;;;;;;;21764:6;:23;;21763:53;;;;;21803:9;21813:1;21803:12;;;;;;;;;;;;;;21793:6;:22;;21763:53;21760:796;;;21928:12;;21884:21;21908:33;;;:19;:33;;;;;;;;:36;;;;;;;;;-1:-1:-1;;;;;21908:36:0;21976:26;;;:11;:26;;;;;;;22109:10;;22072:63;;22109:25;;22131:2;;22109:17;;22124:1;22109:17;:14;:17;:::i;:25::-;22072:17;;;;:12;:17;;;;;:32;;;;:63;:36;:63;:::i;:::-;22037:17;;;;:12;:17;;;;;:32;;:98;;;;22224:10;:14;22271:12;;:19;;22288:1;22271:19;:16;:19;:::i;:::-;22256:12;:34;22323:1;22308:12;:16;;;22342:12;:16;;;22397:15;22376:18;:36;22483:17;;;:12;:17;;;;;;;;;:32;;;;22452:64;;-1:-1:-1;;;;;22452:64:0;;;;;;;;;;;;;;;;;;;;;22536:5;;;;21760:796;21742:3;;21715:851;;;;21060:1513;;;;;:::o;22585:220::-;22784:10;;22729:66;;;-1:-1:-1;;22678:12:0;:14;22668:25;22729:66;;;;;;;;22751:15;22729:66;;;;22767:16;22729:66;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;22729:66:0;;;;;;;22719:77;;;;;22585:220;:::o;1935:124::-;1993:7;2021:6;2013:15;;;;;;2050:1;2046;:5;;;;;;;1935:124;-1:-1:-1;;;1935:124:0:o

Swarm Source

bzzr://5dd174269d9fe1a460c5c72386ec5029b8a0537751b6d4515a902ab811837fe8
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.