ETH Price: $3,153.99 (+2.69%)
Gas: 1 Gwei

Contract

0x035928bCf0974d8935CDbcA36E96ac679C36865E
 

Overview

ETH Balance

0.103812362467734381 ETH

Eth Value

$327.42 (@ $3,153.99/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Income113438242020-11-28 0:46:591323 days ago1606524419IN
0x035928bC...79C36865E
0 ETH0.0062090115
Withdraw Income112458812020-11-12 23:45:331338 days ago1605224733IN
0x035928bC...79C36865E
0 ETH0.0049944712.00000134
Withdraw Income112326322020-11-10 23:01:451340 days ago1605049305IN
0x035928bC...79C36865E
0 ETH0.0104051525.00000123
Withdraw Income112278712020-11-10 5:12:071341 days ago1604985127IN
0x035928bC...79C36865E
0 ETH0.0155584239
Withdraw Income112278252020-11-10 5:00:311341 days ago1604984431IN
0x035928bC...79C36865E
0 ETH0.0148391439.00000145
Withdraw Income112147272020-11-08 4:50:391343 days ago1604811039IN
0x035928bC...79C36865E
0 ETH0.0066429417.6000016
Withdraw Income112146002020-11-08 4:20:081343 days ago1604809208IN
0x035928bC...79C36865E
0 ETH0.0060277915.37993142
Play Game112043542020-11-06 14:33:361344 days ago1604673216IN
0x035928bC...79C36865E
0.1 ETH0.0378415282
Withdraw Income111954982020-11-05 6:14:401346 days ago1604556880IN
0x035928bC...79C36865E
0 ETH0.0120737628.00000145
Withdraw Income111954972020-11-05 6:14:381346 days ago1604556878IN
0x035928bC...79C36865E
0 ETH0.0120737628.00000145
Withdraw Income111954942020-11-05 6:13:551346 days ago1604556835IN
0x035928bC...79C36865E
0 ETH0.0108663925.20000323
Withdraw Income111869612020-11-03 22:41:271347 days ago1604443287IN
0x035928bC...79C36865E
0 ETH0.0081958919.8
Withdraw Income111839802020-11-03 11:36:221347 days ago1604403382IN
0x035928bC...79C36865E
0 ETH0.0090962923.00000145
Withdraw Income111827232020-11-03 6:59:341348 days ago1604386774IN
0x035928bC...79C36865E
0 ETH0.0144819640
Withdraw Income111827232020-11-03 6:59:341348 days ago1604386774IN
0x035928bC...79C36865E
0 ETH0.0144819640
Withdraw Income111827232020-11-03 6:59:341348 days ago1604386774IN
0x035928bC...79C36865E
0 ETH0.0144819640
Withdraw Income111827092020-11-03 6:57:171348 days ago1604386637IN
0x035928bC...79C36865E
0 ETH0.01484441
Withdraw Income111822492020-11-03 5:17:381348 days ago1604380658IN
0x035928bC...79C36865E
0 ETH0.02175255
Withdraw Income111818052020-11-03 3:36:211348 days ago1604374581IN
0x035928bC...79C36865E
0 ETH0.0198354746
Withdraw Income111814252020-11-03 2:11:191348 days ago1604369479IN
0x035928bC...79C36865E
0 ETH0.0095204823
Withdraw Income111782512020-11-02 14:38:121348 days ago1604327892IN
0x035928bC...79C36865E
0 ETH0.0181024550
Withdraw Income111772232020-11-02 10:53:311348 days ago1604314411IN
0x035928bC...79C36865E
0 ETH0.0283096466
Withdraw Income111772152020-11-02 10:52:071348 days ago1604314327IN
0x035928bC...79C36865E
0 ETH0.0287385767
Withdraw Income111766102020-11-02 8:40:281349 days ago1604306428IN
0x035928bC...79C36865E
0 ETH0.019570650
Withdraw Income111765402020-11-02 8:25:081349 days ago1604305508IN
0x035928bC...79C36865E
0 ETH0.0179154143.28085141
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
111617332020-10-31 1:42:281351 days ago1604108548
0x035928bC...79C36865E
0.02 ETH
111617112020-10-31 1:36:121351 days ago1604108172
0x035928bC...79C36865E
0.09 ETH
111617082020-10-31 1:35:161351 days ago1604108116
0x035928bC...79C36865E
0.5 ETH
111616982020-10-31 1:31:451351 days ago1604107905
0x035928bC...79C36865E
1.32725 ETH
111616982020-10-31 1:31:451351 days ago1604107905
0x035928bC...79C36865E
0.1 ETH
111616042020-10-31 1:08:251351 days ago1604106505
0x035928bC...79C36865E
0.66 ETH
111615902020-10-31 1:04:501351 days ago1604106290
0x035928bC...79C36865E
1.1 ETH
111615842020-10-31 1:03:541351 days ago1604106234
0x035928bC...79C36865E
1.46 ETH
111615812020-10-31 1:03:201351 days ago1604106200
0x035928bC...79C36865E
2 ETH
111615792020-10-31 1:03:021351 days ago1604106182
0x035928bC...79C36865E
1.1 ETH
111615612020-10-31 0:59:331351 days ago1604105973
0x035928bC...79C36865E
2.2 ETH
111615572020-10-31 0:58:181351 days ago1604105898
0x035928bC...79C36865E
0.15725 ETH
111615562020-10-31 0:58:101351 days ago1604105890
0x035928bC...79C36865E
1.65 ETH
111615482020-10-31 0:56:021351 days ago1604105762
0x035928bC...79C36865E
0.09 ETH
111615472020-10-31 0:56:011351 days ago1604105761
0x035928bC...79C36865E
0.09 ETH
111615382020-10-31 0:53:421351 days ago1604105622
0x035928bC...79C36865E
1.9955 ETH
111615362020-10-31 0:53:251351 days ago1604105605
0x035928bC...79C36865E
0.14975 ETH
111615332020-10-31 0:52:101351 days ago1604105530
0x035928bC...79C36865E
0.998 ETH
111615312020-10-31 0:51:551351 days ago1604105515
0x035928bC...79C36865E
1.1 ETH
111615312020-10-31 0:51:551351 days ago1604105515
0x035928bC...79C36865E
0.05225 ETH
111615262020-10-31 0:51:011351 days ago1604105461
0x035928bC...79C36865E
3.1073275 ETH
111615132020-10-31 0:47:141351 days ago1604105234
0x035928bC...79C36865E
2.19659625 ETH
111615012020-10-31 0:45:181351 days ago1604105118
0x035928bC...79C36865E
0.09 ETH
111614832020-10-31 0:41:551351 days ago1604104915
0x035928bC...79C36865E
2.28038405 ETH
111614812020-10-31 0:41:501351 days ago1604104910
0x035928bC...79C36865E
1.98 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ether5

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-10-11
*/

/**
 *Submitted for verification at Gether5.net on 2020-10-12
*/

/**
  *
  * Designed by Team Brave
  * Developed by Advanced Smart Contract Concepts                                                                                                                                                       
  * Tested and verified by Drexyl, X99, and blockgh0st 
  * Translated into 10+ languages by Josh Barton
  * 
  * A big thank you to the entire development team for making this possible!
  * 
  * Divvy Club is a simple and straightforward crowsdharing smart contract designed around:
  * 1. Daily 5% divident payouts to each participant
  * 2. Direct referral comissions for every referral
  * 3. International participation and platform accessibility
  * 4. FUll transparency and zero dev interaction once launched
  * 5. matching 50% ==> 30% (2020.10.12)
  *
  * Enjoy!
  *
  * 
  * Website: gether5.net
*** Official Telegram Channel: https://t.me/Gether5_Daily
*** Made with YC by Team Brave
  *
  */

pragma solidity ^0.5.11;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

library DataStructs {

        struct DailyRound {
            uint256 startTime;
            uint256 endTime;
            bool ended;   //has daily round ended
            uint256 pool; //amount in the pool;
        }

        struct Player {
            uint256 totalInvestment;
            uint256 totalVolumeEth;
            uint256 eventVariable;
            uint256 directReferralIncome;
            uint256 roiReferralIncome;
            uint256 currentInvestedAmount;
            uint256 dailyIncome;            
            uint256 lastSettledTime;
            uint256 incomeLimitLeft;
            uint256 investorPoolIncome;
            uint256 sponsorPoolIncome;
            uint256 superIncome;
            uint256 referralCount;
            address referrer;
        }

        struct PlayerDailyRounds {
            uint256 selfInvestment; 
            uint256 ethVolume; 
        }
}

contract Ether5 {
    using SafeMath for *;

    address public  owner;
    address public  roundStarter;
    uint256 private poolTime = 24 hours;
    uint256 private payoutPeriod = 24 hours;
    uint256 private dailyWinPool = 20;
    uint256 private incomeTimes  = 30;
    uint256 private incomeDivide = 10;
    uint256 public  roundID;
    uint256 public  r1 = 0;
    uint256 public  r2 = 0;
    uint256 public  r3 = 0;
    uint256[3] private awardPercentage;

    mapping (uint => uint) public CYCLE_PRICE;
    mapping (address => bool) public playerExist;
    mapping (uint256 => DataStructs.DailyRound) public round;
    mapping (address => DataStructs.Player) public player;
    mapping (address => mapping (uint256 => DataStructs.PlayerDailyRounds)) public plyrRnds_; 

    /****************************  EVENTS   *****************************************/

    event registerUserEvent(address indexed _playerAddress, address indexed _referrer);
    event investmentEvent(address indexed _playerAddress, uint256 indexed _amount);
    event referralCommissionEvent(address indexed _playerAddress, address indexed _referrer, uint256 indexed amount, uint256 timeStamp);
    event dailyPayoutEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp);
    event withdrawEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp);
    event ownershipTransferred(address indexed owner, address indexed newOwner);

    constructor (address _roundStarter) public {
         owner = msg.sender;
         roundStarter = _roundStarter;
         roundID = 1;
         round[1].startTime = now;
         round[1].endTime = now + poolTime;
         awardPercentage[0] = 50;
         awardPercentage[1] = 30;
         awardPercentage[2] = 20;
    }
    
    /****************************  MODIFIERS    *****************************************/
    
    
    /**
     * @dev sets boundaries for incoming tx
     */
    modifier isWithinLimits(uint256 _eth) {
        require(_eth >= 100000000000000000, "Minimum contribution amount is 0.1 ETH");
        _;
    }

    /**
     * @dev sets permissible values for incoming tx
     */
    modifier isallowedValue(uint256 _eth) {
        require(_eth % 100000000000000000 == 0, "Amount should be in multiple of 0.1 ETH please");
        _;
    }
    
    /**
     * @dev allows only the user to run the function
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "only Owner");
        _;
    }


    /****************************  CORE LOGIC    *****************************************/


    //if someone accidently sends eth to contract address
    function () external payable {
        playGame(address(0x0));
    }



   
    function playGame(address _referrer) 
    public
    isWithinLimits(msg.value)
    isallowedValue(msg.value)
    payable {

        uint256 amount = msg.value;
        if (playerExist[msg.sender] == false) { 

            player[msg.sender].lastSettledTime = now;
            player[msg.sender].currentInvestedAmount = amount;
            player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide);
            player[msg.sender].totalInvestment = amount;
            player[msg.sender].eventVariable = 100 ether;
            playerExist[msg.sender] = true;
            
            //update player's investment in current round
            plyrRnds_[msg.sender][roundID].selfInvestment = plyrRnds_[msg.sender][roundID].selfInvestment.add(amount);

            if(
                // is this a referred purchase?
                _referrer != address(0x0) && 
                
                //self referrer not allowed
                _referrer != msg.sender &&
                
                //referrer exists?
                playerExist[_referrer] == true
              ) {
                    player[msg.sender].referrer = _referrer;
                    player[_referrer].referralCount = player[_referrer].referralCount.add(1);
                    player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                    plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                    
                    referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
                }
              else {
                  r1 = r1.add(amount.mul(20).div(100));
                  _referrer = address(0x0);
                }
              emit registerUserEvent(msg.sender, _referrer);
            }
            
            //if the player has already joined earlier
            else {
                
                require(player[msg.sender].incomeLimitLeft == 0, "Oops your limit is still remaining");
                require(amount >= player[msg.sender].currentInvestedAmount, "Cannot invest lesser amount");
                
                    
                player[msg.sender].lastSettledTime = now;
                player[msg.sender].currentInvestedAmount = amount;
                player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide);
                player[msg.sender].totalInvestment = player[msg.sender].totalInvestment.add(amount);
                    
                //update player's investment in current round
                plyrRnds_[msg.sender][roundID].selfInvestment = plyrRnds_[msg.sender][roundID].selfInvestment.add(amount);

                if(
                    // is this a referred purchase?
                    _referrer != address(0x0) && 
                    // self referrer not allowed
                    _referrer != msg.sender &&
                    //does the referrer exist?
                    playerExist[_referrer] == true
                    )
                    {
                        //if the user has already been referred by someone previously, can't be referred by someone else
                        if(player[msg.sender].referrer != address(0x0))
                            _referrer = player[msg.sender].referrer;
                        else {
                            player[msg.sender].referrer = _referrer;
                            player[_referrer].referralCount = player[_referrer].referralCount.add(1);
                       }
                            
                        player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                        plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);

                        //assign the referral commission to all.
                        referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
                    }
                    //might be possible that the referrer is 0x0 but previously someone has referred the user                    
                    else if(
                        //0x0 coming from the UI
                        _referrer == address(0x0) &&
                        //check if the someone has previously referred the user
                        player[msg.sender].referrer != address(0x0)
                        ) {
                            _referrer = player[msg.sender].referrer;                             
                            plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                            player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);

                            //assign the referral commission to all.
                            referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
                          }
                    else {
                          //no referrer, neither was previously used, nor has used now.
                          r1 = r1.add(amount.mul(20).div(100));
                        }
            }
            
            round[roundID].pool = round[roundID].pool.add(amount.mul(dailyWinPool).div(100));
            player[owner].dailyIncome = player[owner].dailyIncome.add(amount.mul(10).div(100));   // fee
            r3 = r3.add(amount.mul(5).div(100));
            emit investmentEvent (msg.sender, amount);
            
    }
    
    function referralBonusTransferDirect(address _playerAddress, uint256 amount)
    private
    {
        address _nextReferrer = player[_playerAddress].referrer;
        uint256 _amountLeft = amount.mul(60).div(100);
        uint i;

        for(i=0; i < 10; i++) {
            
            if (_nextReferrer != address(0x0)) {
                //referral commission to level 1
                if(i == 0) {
                    if (player[_nextReferrer].incomeLimitLeft >= amount.div(2)) {
                        player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(2));
                        player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(2));
                        //This event will be used to get the total referral commission of a person, no need for extra variable
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(2), now);                        
                    }
                    else if(player[_nextReferrer].incomeLimitLeft !=0) {
                        player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                        r1 = r1.add(amount.div(2).sub(player[_nextReferrer].incomeLimitLeft));
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                        player[_nextReferrer].incomeLimitLeft = 0;
                    }
                    else  {
                        r1 = r1.add(amount.div(2)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(2));
                }
                
                else if(i == 1 ) {
                    if(player[_nextReferrer].referralCount >= 2) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(10)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(10));
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(10));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(10), now);                        
                        }
                        else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r1 = r1.add(amount.div(10).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;
                        }
                        else  {
                            r1 = r1.add(amount.div(10)); 
                        }
                    }
                    else{
                        r1 = r1.add(amount.div(10)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(10));
                }
                //referral commission from level 3-10
                else {
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20));
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(20));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now);
                    
                        }
                        else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r1 = r1.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                    
                        }
                        else  {
                            r1 = r1.add(amount.div(20)); 
                        }
                    }
                    else {
                        r1 = r1.add(amount.div(20)); 
                    }
                }
            }
            else {
                r1 = r1.add((uint(10).sub(i)).mul(amount.div(20)).add(_amountLeft)); 
                break;
            }
            _nextReferrer = player[_nextReferrer].referrer;
        }
    }
    

    
    function referralBonusTransferDailyROI(address _playerAddress, uint256 amount)
    private
    {
        address _nextReferrer = player[_playerAddress].referrer;
        uint256 _amountLeft = amount.div(2);
        uint i;

        for(i=0; i < 20; i++) {
            
            if (_nextReferrer != address(0x0)) {
                if(i == 0) {     // if first level, 50% ==> 30% *20201005*YC*
                    if (player[_nextReferrer].incomeLimitLeft >= amount.mul(30).div(100)) {
                        player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.mul(30).div(100));
                        player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.mul(30).div(100));
                        
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.mul(30).div(100), now);
                        
                    } else if(player[_nextReferrer].incomeLimitLeft !=0) {
                        player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                        r2 = r2.add(amount.mul(30).div(100).sub(player[_nextReferrer].incomeLimitLeft));
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                        player[_nextReferrer].incomeLimitLeft = 0;
                        
                    }
                    else {
//                        r2 = r2.add(amount.div(2));    // 50%
                        r2 = r2.add(amount.mul(30).div(100));     // 30%
                    }
//                    _amountLeft = _amountLeft.sub(amount.div(2));                
                    _amountLeft = _amountLeft.sub(amount.mul(30).div(100));                
                }
                else { // for users 2-20
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20));
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(20));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now);
                        
                        }else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r2 = r2.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                        
                        }
                        else {
                            r2 = r2.add(amount.div(20)); 
                        }
                    }
                    else {
                         r2 = r2.add(amount.div(20)); //make a note of the missed commission;
                    }
                }
            }   
            else {
                if(i==0){
                    r2 = r2.add(amount.mul(125).div(100));    // 145 ==> 125 (50%==>30%)
                    break;
                }
                else {
                    r2 = r2.add((uint(20).sub(i)).mul(amount.div(20)).add(_amountLeft)); 
                    break;
                }
                
            }
            _nextReferrer = player[_nextReferrer].referrer;
        }
    }
    

    //method to settle and withdraw the daily ROI
    function settleIncome(address _playerAddress)
    private {
        
        uint256 remainingTimeForPayout;
        uint256 currInvestedAmount;
            
        if(now > player[_playerAddress].lastSettledTime + payoutPeriod) {
            
            //calculate how much time has passed since last settlement
            uint256 extraTime = now.sub(player[_playerAddress].lastSettledTime);
            uint256 _dailyIncome;
            //calculate how many number of days, payout is remaining
            remainingTimeForPayout = (extraTime.sub((extraTime % payoutPeriod))).div(payoutPeriod);
            
            currInvestedAmount = player[_playerAddress].currentInvestedAmount;
            //*YC*calculate 5%=div(20) of his invested amount, 1%=div(100), 2%=div(50), 4%=div(25), 5%=div(20), 10%=div(10)
            _dailyIncome = currInvestedAmount.div(20);
			
            //check his income limit remaining
            if (player[_playerAddress].incomeLimitLeft >= _dailyIncome.mul(remainingTimeForPayout)) {
                player[_playerAddress].incomeLimitLeft = player[_playerAddress].incomeLimitLeft.sub(_dailyIncome.mul(remainingTimeForPayout));
                player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(_dailyIncome.mul(remainingTimeForPayout));
                player[_playerAddress].lastSettledTime = player[_playerAddress].lastSettledTime.add((extraTime.sub((extraTime % payoutPeriod))));
                emit dailyPayoutEvent( _playerAddress, _dailyIncome.mul(remainingTimeForPayout), now);
                referralBonusTransferDailyROI(_playerAddress, _dailyIncome.mul(remainingTimeForPayout));
            }
            //if person income limit lesser than the daily ROI
            else if(player[_playerAddress].incomeLimitLeft !=0) {
                uint256 temp;
                temp = player[_playerAddress].incomeLimitLeft;                 
                player[_playerAddress].incomeLimitLeft = 0;
                player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(temp);
                player[_playerAddress].lastSettledTime = now;
                emit dailyPayoutEvent( _playerAddress, temp, now);
                referralBonusTransferDailyROI(_playerAddress, temp);
            }         
        }
        
    }
    

    //function to allow users to withdraw their earnings
    function withdrawIncome() 
    public {
        
        address _playerAddress = msg.sender;
        
        //settle the daily dividend
        settleIncome(_playerAddress);
        
        uint256 _earnings =
                    player[_playerAddress].dailyIncome +
                    player[_playerAddress].directReferralIncome +
                    player[_playerAddress].roiReferralIncome;

        //can only withdraw if they have some earnings.         
        if(_earnings > 0) {
            require(address(this).balance >= _earnings, "Contract doesn't have sufficient amount to give you");

            player[_playerAddress].dailyIncome = 0;
            player[_playerAddress].directReferralIncome = 0;
            player[_playerAddress].roiReferralIncome = 0;
            player[_playerAddress].investorPoolIncome = 0;
            player[_playerAddress].sponsorPoolIncome = 0;
            player[_playerAddress].superIncome = 0;
            
            address(uint160(_playerAddress)).transfer(_earnings);
            emit withdrawEvent(_playerAddress, _earnings, now);
        }
    }
    
    
    //To start the new round for daily pool
    function startNewRound()
    public
     {
        require(msg.sender == roundStarter,"Oops you can't start the next round");
    
        uint256 _roundID = roundID;
       
        uint256 _poolAmount = round[roundID].pool;
        if (now > round[_roundID].endTime && round[_roundID].ended == false) {
            
            round[_roundID].ended = true;
            round[_roundID].pool = _poolAmount;

                _roundID++;
                roundID++;
                round[_roundID].startTime = now;
                round[_roundID].endTime = now.add(poolTime);
        }
    }


    //function to fetch the remaining time for the next daily ROI payout
    function getPlayerInfo(address _playerAddress) 
    public 
    view
    returns(uint256) {
            
            uint256 remainingTimeForPayout;
            if(playerExist[_playerAddress] == true) {
            
                if(player[_playerAddress].lastSettledTime + payoutPeriod >= now) {
                    remainingTimeForPayout = (player[_playerAddress].lastSettledTime + payoutPeriod).sub(now);
                }
                else {
                    uint256 temp = now.sub(player[_playerAddress].lastSettledTime);
                    remainingTimeForPayout = payoutPeriod.sub((temp % payoutPeriod));
                }
                return remainingTimeForPayout;
            }
    }


    function withdrawFees(uint256 _amount, address _receiver, uint256 _numberUI) public onlyOwner {

        if(_numberUI == 1 && r1 >= _amount) {
            if(_amount > 0) {
                if(address(this).balance >= _amount) {
                    r1 = r1.sub(_amount);
                    address(uint160(_receiver)).transfer(_amount);
                }
            }
        }
        else if(_numberUI == 2 && r2 >= _amount) {
            if(_amount > 0) {
                if(address(this).balance >= _amount) {
                    r2 = r2.sub(_amount);
                    address(uint160(_receiver)).transfer(_amount);
                }
            }
        }
        else if(_numberUI == 3) {
            player[_receiver].superIncome = player[_receiver].superIncome.add(_amount);
            r3 = r3.sub(_amount);
//            emit superBonusAwardEvent(_receiver, _amount);
        }
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) external onlyOwner {
        _transferOwnership(newOwner);
    }

     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) private {
        require(newOwner != address(0), "New owner cannot be the zero address");
        emit ownershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_roundStarter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"dailyPayoutEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"investmentEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"ownershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"referralCommissionEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"}],"name":"registerUserEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"withdrawEvent","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"CYCLE_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_playerAddress","type":"address"}],"name":"getPlayerInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referrer","type":"address"}],"name":"playGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"player","outputs":[{"internalType":"uint256","name":"totalInvestment","type":"uint256"},{"internalType":"uint256","name":"totalVolumeEth","type":"uint256"},{"internalType":"uint256","name":"eventVariable","type":"uint256"},{"internalType":"uint256","name":"directReferralIncome","type":"uint256"},{"internalType":"uint256","name":"roiReferralIncome","type":"uint256"},{"internalType":"uint256","name":"currentInvestedAmount","type":"uint256"},{"internalType":"uint256","name":"dailyIncome","type":"uint256"},{"internalType":"uint256","name":"lastSettledTime","type":"uint256"},{"internalType":"uint256","name":"incomeLimitLeft","type":"uint256"},{"internalType":"uint256","name":"investorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"sponsorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"superIncome","type":"uint256"},{"internalType":"uint256","name":"referralCount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"plyrRnds_","outputs":[{"internalType":"uint256","name":"selfInvestment","type":"uint256"},{"internalType":"uint256","name":"ethVolume","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"round","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"ended","type":"bool"},{"internalType":"uint256","name":"pool","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundStarter","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startNewRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_numberUI","type":"uint256"}],"name":"withdrawFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawIncome","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405262015180600255620151806003556014600455601e600555600a600655600060085560006009556000600a553480156200003d57600080fd5b506040516200546838038062005468833981810160405260208110156200006357600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016007819055504260106000600181526020019081526020016000206000018190555060025442016010600060018152602001908152602001600020600101819055506032600b6000600381106200014a57fe5b0181905550601e600b6001600381106200016057fe5b01819055506014600b6002600381106200017657fe5b0181905550506152dc806200018c6000396000f3fe6080604052600436106100fe5760003560e01c806359328401116100955780638da5cb5b116100645780638da5cb5b146104fc578063abb02bcc14610553578063bd85948c146105a2578063f2fde38b146105b9578063fff072411461060a576100fe565b806359328401146103dc5780636ca5b5b01461044157806372ad692e1461046c5780638bf6e410146104d1576100fe565b806334d5f37b116100d157806334d5f37b146101bb578063452b381d146102235780634c54e1b514610299578063520298a014610385576100fe565b806307c331cd1461010a5780630bcbbd211461014e57806314f8b424146101795780631a0fa8c3146101a4575b6101086000610673565b005b61014c6004803603602081101561012057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610673565b005b34801561015a57600080fd5b50610163611b93565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b5061018e611b99565b6040518082815260200191505060405180910390f35b3480156101b057600080fd5b506101b9611b9f565b005b3480156101c757600080fd5b506101f4600480360360208110156101de57600080fd5b8101908080359060200190929190505050611f1f565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34801561022f57600080fd5b5061027c6004803603604081101561024657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f5c565b604051808381526020018281526020019250505060405180910390f35b3480156102a557600080fd5b506102e8600480360360208110156102bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f8d565b604051808f81526020018e81526020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019e50505050505050505050505050505060405180910390f35b34801561039157600080fd5b5061039a612019565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e857600080fd5b5061042b600480360360208110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203f565b6040518082815260200191505060405180910390f35b34801561044d57600080fd5b506104566121d5565b6040518082815260200191505060405180910390f35b34801561047857600080fd5b506104cf6004803603606081101561048f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121db565b005b3480156104dd57600080fd5b506104e6612484565b6040518082815260200191505060405180910390f35b34801561050857600080fd5b5061051161248a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055f57600080fd5b5061058c6004803603602081101561057657600080fd5b81019080803590602001909291905050506124af565b6040518082815260200191505060405180910390f35b3480156105ae57600080fd5b506105b76124c7565b005b3480156105c557600080fd5b50610608600480360360208110156105dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612695565b005b34801561061657600080fd5b506106596004803603602081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612763565b604051808215151515815260200191505060405180910390f35b3467016345785d8a00008110156106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806151ca6026913960400191505060405180910390fd5b34600067016345785d8a000082816106e957fe5b0614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615234602e913960400191505060405180910390fd5b600034905060001515600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610e685742601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506108556006546108476005548461278390919063ffffffff16565b61280990919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555068056bc75e2d63100000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109f281601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206000015461285390919063ffffffff16565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600754815260200190815260200160002060000181905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610ab457503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610b10575060011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15610dc35783601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bec6001601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c0181905550610c8781601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610d3581601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001015461285390919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600754815260200190815260200160002060010181905550610dbe33610db96064610dab60148661278390919063ffffffff16565b61280990919063ffffffff16565b6128db565b610e09565b610dfe610ded6064610ddf60148561278390919063ffffffff16565b61280990919063ffffffff16565b60085461285390919063ffffffff16565b600881905550600093505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddb5b955685e49590bf27ea3575cf7aea7a942422afa776dba9c6fd4ff3e655a60405160405180910390a3611997565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414610f03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806152626022913960400191505060405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154811015610fbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616e6e6f7420696e76657374206c657373657220616d6f756e74000000000081525060200191505060405180910390fd5b42601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506110726006546110646005548461278390919063ffffffff16565b61280990919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061110d81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461285390919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506111bb81601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206000015461285390919063ffffffff16565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600754815260200190815260200160002060000181905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561127d57503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156112d9575060011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561168d57600073ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113de57601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693506114fc565b83601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114b56001601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c01819055505b61155181601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506115ff81601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001015461285390919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001018190555061168833611683606461167560148661278390919063ffffffff16565b61280990919063ffffffff16565b6128db565b611996565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117585750600073ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561195357601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935061182a81601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001015461285390919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006007548152602001908152602001600020600101819055506118d881601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061194e33611949606461193b60148661278390919063ffffffff16565b61280990919063ffffffff16565b6128db565b611995565b61198e61197d606461196f60148561278390919063ffffffff16565b61280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b5b6119e96119c260646119b46004548561278390919063ffffffff16565b61280990919063ffffffff16565b6010600060075481526020019081526020016000206003015461285390919063ffffffff16565b60106000600754815260200190815260200160002060030181905550611aa1611a2f6064611a21600a8561278390919063ffffffff16565b61280990919063ffffffff16565b601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461285390919063ffffffff16565b601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550611b43611b326064611b2460058561278390919063ffffffff16565b61280990919063ffffffff16565b600a5461285390919063ffffffff16565b600a81905550803373ffffffffffffffffffffffffffffffffffffffff167f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75360405160405180910390a350505050565b60095481565b60075481565b6000339050611bad81613b10565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154010190506000811115611f1b5780471015611cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806151976033913960400191505060405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b01819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ed4573d6000803e3d6000fd5b5042818373ffffffffffffffffffffffffffffffffffffffff167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45b5050565b60106020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b6012602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b601160205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508e565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060011515600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156121ce5742600354601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015401106121485761214142600354601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701540161414590919063ffffffff16565b90506121c5565b600061219f601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701544261414590919063ffffffff16565b90506121c160035482816121af57fe5b0660035461414590919063ffffffff16565b9150505b809150506121d0565b505b919050565b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811480156122af57508260085410155b1561232d57600083111561232857824710612327576122d98360085461414590919063ffffffff16565b6008819055508173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612325573d6000803e3d6000fd5b505b5b61247f565b60028114801561233f57508260095410155b156123bd5760008311156123b8578247106123b7576123698360095461414590919063ffffffff16565b6009819055508173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156123b5573d6000803e3d6000fd5b505b5b61247e565b600381141561247d5761241b83601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b015461285390919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b018190555061247683600a5461414590919063ffffffff16565b600a819055505b5b5b505050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806152116023913960400191505060405180910390fd5b6000600754905060006010600060075481526020019081526020016000206003015490506010600083815260200190815260200160002060010154421180156125dd5750600015156010600084815260200190815260200160002060020160009054906101000a900460ff161515145b156126915760016010600084815260200190815260200160002060020160006101000a81548160ff02191690831515021790555080601060008481526020019081526020016000206003018190555081806001019250506007600081548092919060010191905055504260106000848152602001908152602001600020600001819055506126766002544261285390919063ffffffff16565b60106000848152602001908152602001600020600101819055505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6127608161418f565b50565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000808314156127965760009050612803565b60008284029050828482816127a757fe5b04146127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806151f06021913960400191505060405180910390fd5b809150505b92915050565b600061284b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506142d3565b905092915050565b6000808284019050838110156128d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061296b606461295d603c8661278390919063ffffffff16565b61280990919063ffffffff16565b905060008090505b600a811015613b0957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614613a2d576000811415612eea576129cd60028561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410612bef57612a7d612a2c60028661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550612b2b612ada60028661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550612b8560028561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a4612ebd565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414612e8d57612cd0601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550612d92612d81601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154612d7360028861280990919063ffffffff16565b61414590919063ffffffff16565b60085461285390919063ffffffff16565b600881905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550612ebc565b612eb5612ea460028661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b612ee3612ed460028661280990919063ffffffff16565b8361414590919063ffffffff16565b9150613a28565b60018114156134a2576002601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c01541061344657612f51600a8561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801541061317357613001612fb0600a8661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506130af61305e600a8661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550613109600a8561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a4613441565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801541461341157613254601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550613316613305601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801546132f7600a8861280990919063ffffffff16565b61414590919063ffffffff16565b60085461285390919063ffffffff16565b600881905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550613440565b613439613428600a8661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b613475565b61346e61345d600a8661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b61349b61348c600a8661280990919063ffffffff16565b8361414590919063ffffffff16565b9150613a27565b60018101601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c0154106139f75761350260148561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410613724576135b261356160148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061366061360f60148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506136ba60148561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46139f2565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154146139c257613805601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506138c76138b6601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801546138a860148861280990919063ffffffff16565b61414590919063ffffffff16565b60085461285390919063ffffffff16565b600881905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506139f1565b6139ea6139d960148661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b613a26565b613a1f613a0e60148661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b5b613a97565b613a8c613a7b83613a6d613a4b60148961280990919063ffffffff16565b613a5f86600a61414590919063ffffffff16565b61278390919063ffffffff16565b61285390919063ffffffff16565b60085461285390919063ffffffff16565b600881905550613b09565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508080600101915050612973565b5050505050565b600080600354601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015401421115614140576000613bb8601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701544261414590919063ffffffff16565b90506000613bee600354613be06003548581613bd057fe5b068561414590919063ffffffff16565b61280990919063ffffffff16565b9350601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549250613c4960148461280990919063ffffffff16565b9050613c5e848261278390919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410613f3057613d0d613cbc858361278390919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550613dba613d69858361278390919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461285390919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550613e72613e216003548481613e1157fe5b068461414590919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015461285390919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042613ecc858361278390919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a60405160405180910390a4613f2b85613f26868461278390919063ffffffff16565b614399565b61413d565b6000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801541461413c576000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015490506000601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061405e81601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461285390919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555042601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042818773ffffffffffffffffffffffffffffffffffffffff167f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a60405160405180910390a461413a8682614399565b505b5b50505b505050565b600061418783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506150d6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806152846024913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b760405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829061437f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614344578082015181840152602081019050614329565b50505050905090810190601f1680156143715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161438b57fe5b049050809150509392505050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061441660028461280990919063ffffffff16565b905060008090505b60148110156150cf57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614fa4576000811415614a1a5761448b606461447d601e8761278390919063ffffffff16565b61280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154106146e65761454e6144fd60646144ef601e8861278390919063ffffffff16565b61280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061460f6145be60646145b0601e8861278390919063ffffffff16565b61280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061467c606461466e601e8761278390919063ffffffff16565b61280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46149da565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414614997576147c7601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061489c61488b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461487d606461486f601e8a61278390919063ffffffff16565b61280990919063ffffffff16565b61414590919063ffffffff16565b60095461285390919063ffffffff16565b600981905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506149d9565b6149d26149c160646149b3601e8861278390919063ffffffff16565b61280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055505b5b614a13614a0460646149f6601e8861278390919063ffffffff16565b61280990919063ffffffff16565b8361414590919063ffffffff16565b9150614f9f565b60018101601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c015410614f6f57614a7a60148561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410614c9c57614b2a614ad960148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550614bd8614b8760148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550614c3260148561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a4614f6a565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414614f3a57614d7d601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550614e3f614e2e601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154614e2060148861280990919063ffffffff16565b61414590919063ffffffff16565b60095461285390919063ffffffff16565b600981905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550614f69565b614f62614f5160148661280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055505b5b614f9e565b614f97614f8660148661280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055505b5b61505d565b6000811415614ff357614fe8614fd76064614fc9607d8861278390919063ffffffff16565b61280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055506150cf565b6150526150418361503361501160148961280990919063ffffffff16565b61502586601461414590919063ffffffff16565b61278390919063ffffffff16565b61285390919063ffffffff16565b60095461285390919063ffffffff16565b6009819055506150cf565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250808060010191505061441e565b5050505050565b6000838311158290615183576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561514857808201518184015260208101905061512d565b50505050905090810190601f1680156151755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe436f6e747261637420646f65736e277420686176652073756666696369656e7420616d6f756e7420746f206769766520796f754d696e696d756d20636f6e747269627574696f6e20616d6f756e7420697320302e3120455448536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6f707320796f752063616e277420737461727420746865206e65787420726f756e64416d6f756e742073686f756c6420626520696e206d756c7469706c65206f6620302e312045544820706c656173654f6f707320796f7572206c696d6974206973207374696c6c2072656d61696e696e674e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a72315820909ad4ebcb9099779a122b9662b7e7cf5b1a7d6640fb715e6d944bcebf0ecdde64736f6c63430005110032000000000000000000000000349651883deca36b566bbf2637c41bff5ffb177b

Deployed Bytecode

0x6080604052600436106100fe5760003560e01c806359328401116100955780638da5cb5b116100645780638da5cb5b146104fc578063abb02bcc14610553578063bd85948c146105a2578063f2fde38b146105b9578063fff072411461060a576100fe565b806359328401146103dc5780636ca5b5b01461044157806372ad692e1461046c5780638bf6e410146104d1576100fe565b806334d5f37b116100d157806334d5f37b146101bb578063452b381d146102235780634c54e1b514610299578063520298a014610385576100fe565b806307c331cd1461010a5780630bcbbd211461014e57806314f8b424146101795780631a0fa8c3146101a4575b6101086000610673565b005b61014c6004803603602081101561012057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610673565b005b34801561015a57600080fd5b50610163611b93565b6040518082815260200191505060405180910390f35b34801561018557600080fd5b5061018e611b99565b6040518082815260200191505060405180910390f35b3480156101b057600080fd5b506101b9611b9f565b005b3480156101c757600080fd5b506101f4600480360360208110156101de57600080fd5b8101908080359060200190929190505050611f1f565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34801561022f57600080fd5b5061027c6004803603604081101561024657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f5c565b604051808381526020018281526020019250505060405180910390f35b3480156102a557600080fd5b506102e8600480360360208110156102bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f8d565b604051808f81526020018e81526020018d81526020018c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019e50505050505050505050505050505060405180910390f35b34801561039157600080fd5b5061039a612019565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e857600080fd5b5061042b600480360360208110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203f565b6040518082815260200191505060405180910390f35b34801561044d57600080fd5b506104566121d5565b6040518082815260200191505060405180910390f35b34801561047857600080fd5b506104cf6004803603606081101561048f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121db565b005b3480156104dd57600080fd5b506104e6612484565b6040518082815260200191505060405180910390f35b34801561050857600080fd5b5061051161248a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055f57600080fd5b5061058c6004803603602081101561057657600080fd5b81019080803590602001909291905050506124af565b6040518082815260200191505060405180910390f35b3480156105ae57600080fd5b506105b76124c7565b005b3480156105c557600080fd5b50610608600480360360208110156105dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612695565b005b34801561061657600080fd5b506106596004803603602081101561062d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612763565b604051808215151515815260200191505060405180910390f35b3467016345785d8a00008110156106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806151ca6026913960400191505060405180910390fd5b34600067016345785d8a000082816106e957fe5b0614610740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615234602e913960400191505060405180910390fd5b600034905060001515600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610e685742601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506108556006546108476005548461278390919063ffffffff16565b61280990919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555068056bc75e2d63100000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109f281601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206000015461285390919063ffffffff16565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600754815260200190815260200160002060000181905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610ab457503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015610b10575060011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15610dc35783601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bec6001601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c0181905550610c8781601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610d3581601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001015461285390919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600754815260200190815260200160002060010181905550610dbe33610db96064610dab60148661278390919063ffffffff16565b61280990919063ffffffff16565b6128db565b610e09565b610dfe610ded6064610ddf60148561278390919063ffffffff16565b61280990919063ffffffff16565b60085461285390919063ffffffff16565b600881905550600093505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddb5b955685e49590bf27ea3575cf7aea7a942422afa776dba9c6fd4ff3e655a60405160405180910390a3611997565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414610f03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806152626022913960400191505060405180910390fd5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154811015610fbb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616e6e6f7420696e76657374206c657373657220616d6f756e74000000000081525060200191505060405180910390fd5b42601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506110726006546110646005548461278390919063ffffffff16565b61280990919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061110d81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461285390919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506111bb81601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206000015461285390919063ffffffff16565b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600754815260200190815260200160002060000181905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561127d57503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156112d9575060011515600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1561168d57600073ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113de57601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1693506114fc565b83601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506114b56001601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c01819055505b61155181601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506115ff81601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001015461285390919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001018190555061168833611683606461167560148661278390919063ffffffff16565b61280990919063ffffffff16565b6128db565b611996565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117585750600073ffffffffffffffffffffffffffffffffffffffff16601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561195357601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16935061182a81601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060075481526020019081526020016000206001015461285390919063ffffffff16565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006007548152602001908152602001600020600101819055506118d881601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461285390919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061194e33611949606461193b60148661278390919063ffffffff16565b61280990919063ffffffff16565b6128db565b611995565b61198e61197d606461196f60148561278390919063ffffffff16565b61280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b5b6119e96119c260646119b46004548561278390919063ffffffff16565b61280990919063ffffffff16565b6010600060075481526020019081526020016000206003015461285390919063ffffffff16565b60106000600754815260200190815260200160002060030181905550611aa1611a2f6064611a21600a8561278390919063ffffffff16565b61280990919063ffffffff16565b601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461285390919063ffffffff16565b601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550611b43611b326064611b2460058561278390919063ffffffff16565b61280990919063ffffffff16565b600a5461285390919063ffffffff16565b600a81905550803373ffffffffffffffffffffffffffffffffffffffff167f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75360405160405180910390a350505050565b60095481565b60075481565b6000339050611bad81613b10565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154010190506000811115611f1b5780471015611cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806151976033913960400191505060405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600601819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01819055506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b01819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ed4573d6000803e3d6000fd5b5042818373ffffffffffffffffffffffffffffffffffffffff167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45b5050565b60106020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060030154905084565b6012602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b601160205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508e565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060011515600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156121ce5742600354601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015401106121485761214142600354601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701540161414590919063ffffffff16565b90506121c5565b600061219f601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701544261414590919063ffffffff16565b90506121c160035482816121af57fe5b0660035461414590919063ffffffff16565b9150505b809150506121d0565b505b919050565b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461229d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001811480156122af57508260085410155b1561232d57600083111561232857824710612327576122d98360085461414590919063ffffffff16565b6008819055508173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612325573d6000803e3d6000fd5b505b5b61247f565b60028114801561233f57508260095410155b156123bd5760008311156123b8578247106123b7576123698360095461414590919063ffffffff16565b6009819055508173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156123b5573d6000803e3d6000fd5b505b5b61247e565b600381141561247d5761241b83601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b015461285390919063ffffffff16565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600b018190555061247683600a5461414590919063ffffffff16565b600a819055505b5b5b505050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461256d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806152116023913960400191505060405180910390fd5b6000600754905060006010600060075481526020019081526020016000206003015490506010600083815260200190815260200160002060010154421180156125dd5750600015156010600084815260200190815260200160002060020160009054906101000a900460ff161515145b156126915760016010600084815260200190815260200160002060020160006101000a81548160ff02191690831515021790555080601060008481526020019081526020016000206003018190555081806001019250506007600081548092919060010191905055504260106000848152602001908152602001600020600001819055506126766002544261285390919063ffffffff16565b60106000848152602001908152602001600020600101819055505b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c79204f776e65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6127608161418f565b50565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000808314156127965760009050612803565b60008284029050828482816127a757fe5b04146127fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806151f06021913960400191505060405180910390fd5b809150505b92915050565b600061284b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506142d3565b905092915050565b6000808284019050838110156128d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061296b606461295d603c8661278390919063ffffffff16565b61280990919063ffffffff16565b905060008090505b600a811015613b0957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614613a2d576000811415612eea576129cd60028561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410612bef57612a7d612a2c60028661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550612b2b612ada60028661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550612b8560028561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a4612ebd565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414612e8d57612cd0601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550612d92612d81601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154612d7360028861280990919063ffffffff16565b61414590919063ffffffff16565b60085461285390919063ffffffff16565b600881905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550612ebc565b612eb5612ea460028661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b612ee3612ed460028661280990919063ffffffff16565b8361414590919063ffffffff16565b9150613a28565b60018114156134a2576002601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c01541061344657612f51600a8561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801541061317357613001612fb0600a8661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506130af61305e600a8661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550613109600a8561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a4613441565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801541461341157613254601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550613316613305601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801546132f7600a8861280990919063ffffffff16565b61414590919063ffffffff16565b60085461285390919063ffffffff16565b600881905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550613440565b613439613428600a8661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b613475565b61346e61345d600a8661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b61349b61348c600a8661280990919063ffffffff16565b8361414590919063ffffffff16565b9150613a27565b60018101601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c0154106139f75761350260148561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410613724576135b261356160148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061366061360f60148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506136ba60148561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46139f2565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154146139c257613805601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506138c76138b6601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801546138a860148861280990919063ffffffff16565b61414590919063ffffffff16565b60085461285390919063ffffffff16565b600881905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506139f1565b6139ea6139d960148661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b613a26565b613a1f613a0e60148661280990919063ffffffff16565b60085461285390919063ffffffff16565b6008819055505b5b5b613a97565b613a8c613a7b83613a6d613a4b60148961280990919063ffffffff16565b613a5f86600a61414590919063ffffffff16565b61278390919063ffffffff16565b61285390919063ffffffff16565b60085461285390919063ffffffff16565b600881905550613b09565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1692508080600101915050612973565b5050505050565b600080600354601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015401421115614140576000613bb8601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701544261414590919063ffffffff16565b90506000613bee600354613be06003548581613bd057fe5b068561414590919063ffffffff16565b61280990919063ffffffff16565b9350601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549250613c4960148461280990919063ffffffff16565b9050613c5e848261278390919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410613f3057613d0d613cbc858361278390919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550613dba613d69858361278390919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461285390919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060181905550613e72613e216003548481613e1157fe5b068461414590919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015461285390919063ffffffff16565b601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042613ecc858361278390919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff167f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a60405160405180910390a4613f2b85613f26868461278390919063ffffffff16565b614399565b61413d565b6000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801541461413c576000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015490506000601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061405e81601160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006015461285390919063ffffffff16565b601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006018190555042601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007018190555042818773ffffffffffffffffffffffffffffffffffffffff167f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a60405160405180910390a461413a8682614399565b505b5b50505b505050565b600061418783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506150d6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415614215576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806152846024913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b760405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808311829061437f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614344578082015181840152602081019050614329565b50505050905090810190601f1680156143715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161438b57fe5b049050809150509392505050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061441660028461280990919063ffffffff16565b905060008090505b60148110156150cf57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614fa4576000811415614a1a5761448b606461447d601e8761278390919063ffffffff16565b61280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154106146e65761454e6144fd60646144ef601e8861278390919063ffffffff16565b61280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008018190555061460f6145be60646145b0601e8861278390919063ffffffff16565b61280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061467c606461466e601e8761278390919063ffffffff16565b61280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46149da565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414614997576147c7601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018190555061489c61488b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461487d606461486f601e8a61278390919063ffffffff16565b61280990919063ffffffff16565b61414590919063ffffffff16565b60095461285390919063ffffffff16565b600981905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801819055506149d9565b6149d26149c160646149b3601e8861278390919063ffffffff16565b61280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055505b5b614a13614a0460646149f6601e8861278390919063ffffffff16565b61280990919063ffffffff16565b8361414590919063ffffffff16565b9150614f9f565b60018101601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600c015410614f6f57614a7a60148561280990919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015410614c9c57614b2a614ad960148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015461414590919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550614bd8614b8760148661280990919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550614c3260148561280990919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a4614f6a565b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008015414614f3a57614d7d601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004015461285390919063ffffffff16565b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040181905550614e3f614e2e601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154614e2060148861280990919063ffffffff16565b61414590919063ffffffff16565b60095461285390919063ffffffff16565b600981905550601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600801548373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fe8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df21317426040518082815260200191505060405180910390a46000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080181905550614f69565b614f62614f5160148661280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055505b5b614f9e565b614f97614f8660148661280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055505b5b61505d565b6000811415614ff357614fe8614fd76064614fc9607d8861278390919063ffffffff16565b61280990919063ffffffff16565b60095461285390919063ffffffff16565b6009819055506150cf565b6150526150418361503361501160148961280990919063ffffffff16565b61502586601461414590919063ffffffff16565b61278390919063ffffffff16565b61285390919063ffffffff16565b60095461285390919063ffffffff16565b6009819055506150cf565b601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600d0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250808060010191505061441e565b5050505050565b6000838311158290615183576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561514857808201518184015260208101905061512d565b50505050905090810190601f1680156151755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe436f6e747261637420646f65736e277420686176652073756666696369656e7420616d6f756e7420746f206769766520796f754d696e696d756d20636f6e747269627574696f6e20616d6f756e7420697320302e3120455448536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f6f707320796f752063616e277420737461727420746865206e65787420726f756e64416d6f756e742073686f756c6420626520696e206d756c7469706c65206f6620302e312045544820706c656173654f6f707320796f7572206c696d6974206973207374696c6c2072656d61696e696e674e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a72315820909ad4ebcb9099779a122b9662b7e7cf5b1a7d6640fb715e6d944bcebf0ecdde64736f6c63430005110032

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

000000000000000000000000349651883deca36b566bbf2637c41bff5ffb177b

-----Decoded View---------------
Arg [0] : _roundStarter (address): 0x349651883DeCA36b566bbf2637c41bFf5ffB177B

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000349651883deca36b566bbf2637c41bff5ffb177b


Deployed Bytecode Sourcemap

5794:24128:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8580:22;8597:3;8580:8;:22::i;:::-;5794:24128;8627:5591;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8627:5591:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6176:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6176:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6117:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6117:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25784:1131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25784:1131:0;;;:::i;:::-;;6376:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6376:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6376:56:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6499:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6499:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6499:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6439:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6439:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6439:53:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5874:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5874:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;27669:722;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27669:722:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;27669:722:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6147:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6147:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28401:921;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28401:921:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;28401:921:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6205:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6205:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5846:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5846:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6277:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6277:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6277:41:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26978:607;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26978:607:0;;;:::i;:::-;;29477:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29477:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;29477:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6325:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6325:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6325:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8627:5591;8697:9;7878:18;7870:4;:26;;7862:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8728:9;8124:1;8102:18;8095:4;:25;;;;;;:30;8087:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8765:14;8782:9;8765:26;;8833:5;8806:32;;:11;:23;8818:10;8806:23;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;8802:5074;;;8895:3;8858:6;:18;8865:10;8858:18;;;;;;;;;;;;;;;:34;;:40;;;;8956:6;8913;:18;8920:10;8913:18;;;;;;;;;;;;;;;:40;;:49;;;;9014:41;9042:12;;9014:23;9025:11;;9014:6;:10;;:23;;;;:::i;:::-;:27;;:41;;;;:::i;:::-;8977:6;:18;8984:10;8977:18;;;;;;;;;;;;;;;:34;;:78;;;;9107:6;9070;:18;9077:10;9070:18;;;;;;;;;;;;;;;:34;;:43;;;;9163:9;9128:6;:18;9135:10;9128:18;;;;;;;;;;;;;;;:32;;:44;;;;9213:4;9187:11;:23;9199:10;9187:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9353:57;9403:6;9353:9;:21;9363:10;9353:21;;;;;;;;;;;;;;;:30;9375:7;;9353:30;;;;;;;;;;;:45;;;:49;;:57;;;;:::i;:::-;9305:9;:21;9315:10;9305:21;;;;;;;;;;;;;;;:30;9327:7;;9305:30;;;;;;;;;;;:45;;:105;;;;9518:3;9497:25;;:9;:25;;;;:133;;;;;9620:10;9607:23;;:9;:23;;;;9497:133;:238;;;;;9731:4;9705:30;;:11;:22;9717:9;9705:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;9497:238;9427:973;;;9806:9;9776:6;:18;9783:10;9776:18;;;;;;;;;;;;;;;:27;;;:39;;;;;;;;;;;;;;;;;;9872:38;9908:1;9872:6;:17;9879:9;9872:17;;;;;;;;;;;;;;;:31;;;:35;;:38;;;;:::i;:::-;9838:6;:17;9845:9;9838:17;;;;;;;;;;;;;;;:31;;:72;;;;9968:44;10005:6;9968;:17;9975:9;9968:17;;;;;;;;;;;;;;;:32;;;:36;;:44;;;;:::i;:::-;9933:6;:17;9940:9;9933:17;;;;;;;;;;;;;;;:32;;:79;;;;10077:51;10121:6;10077:9;:20;10087:9;10077:20;;;;;;;;;;;;;;;:29;10098:7;;10077:29;;;;;;;;;;;:39;;;:43;;:51;;;;:::i;:::-;10035:9;:20;10045:9;10035:20;;;;;;;;;;;;;;;:29;10056:7;;10035:29;;;;;;;;;;;:39;;:93;;;;10173:64;10201:10;10213:23;10232:3;10213:14;10224:2;10213:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;10173:27;:64::i;:::-;9427:973;;;10304:31;10311:23;10330:3;10311:14;10322:2;10311:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;10304:2;;:6;;:31;;;;:::i;:::-;10299:2;:36;;;;10376:3;10356:24;;9427:973;10451:9;10421:40;;10439:10;10421:40;;;;;;;;;;;;8802:5074;;;10649:1;10611:6;:18;10618:10;10611:18;;;;;;;;;;;;;;;:34;;;:39;10603:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10726:6;:18;10733:10;10726:18;;;;;;;;;;;;;;;:40;;;10716:6;:50;;10708:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10894:3;10857:6;:18;10864:10;10857:18;;;;;;;;;;;;;;;:34;;:40;;;;10959:6;10916;:18;10923:10;10916:18;;;;;;;;;;;;;;;:40;;:49;;;;11021:41;11049:12;;11021:23;11032:11;;11021:6;:10;;:23;;;;:::i;:::-;:27;;:41;;;;:::i;:::-;10984:6;:18;10991:10;10984:18;;;;;;;;;;;;;;;:34;;:78;;;;11118:46;11157:6;11118;:18;11125:10;11118:18;;;;;;;;;;;;;;;:34;;;:38;;:46;;;;:::i;:::-;11081:6;:18;11088:10;11081:18;;;;;;;;;;;;;;;:34;;:83;;;;11316:57;11366:6;11316:9;:21;11326:10;11316:21;;;;;;;;;;;;;;;:30;11338:7;;11316:30;;;;;;;;;;;:45;;;:49;;:57;;;;:::i;:::-;11268:9;:21;11278:10;11268:21;;;;;;;;;;;;;;;:30;11290:7;;11268:30;;;;;;;;;;;:45;;:105;;;;11493:3;11472:25;;:9;:25;;;;:124;;;;;11586:10;11573:23;;:9;:23;;;;11472:124;:227;;;;;11695:4;11669:30;;:11;:22;11681:9;11669:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;11472:227;11394:2467;;;11935:3;11896:43;;:6;:18;11903:10;11896:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:43;;;11893:348;;11982:6;:18;11989:10;11982:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;11970:39;;11893:348;;;12102:9;12072:6;:18;12079:10;12072:18;;;;;;;;;;;;;;;:27;;;:39;;;;;;;;;;;;;;;;;;12176:38;12212:1;12176:6;:17;12183:9;12176:17;;;;;;;;;;;;;;;:31;;;:35;;:38;;;;:::i;:::-;12142:6;:17;12149:9;12142:17;;;;;;;;;;;;;;;:31;;:72;;;;11893:348;12332:44;12369:6;12332;:17;12339:9;12332:17;;;;;;;;;;;;;;;:32;;;:36;;:44;;;;:::i;:::-;12297:6;:17;12304:9;12297:17;;;;;;;;;;;;;;;:32;;:79;;;;12445:51;12489:6;12445:9;:20;12455:9;12445:20;;;;;;;;;;;;;;;:29;12466:7;;12445:29;;;;;;;;;;;:39;;;:43;;:51;;;;:::i;:::-;12403:9;:20;12413:9;12403:20;;;;;;;;;;;;;;;:29;12424:7;;12403:29;;;;;;;;;;;:39;;:93;;;;12591:64;12619:10;12631:23;12650:3;12631:14;12642:2;12631:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12591:27;:64::i;:::-;11394:2467;;;12937:3;12916:25;;:9;:25;;;:178;;;;;13090:3;13051:43;;:6;:18;13058:10;13051:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:43;;;;12916:178;12837:1024;;;13165:6;:18;13172:10;13165:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;13153:39;;13294:51;13338:6;13294:9;:20;13304:9;13294:20;;;;;;;;;;;;;;;:29;13315:7;;13294:29;;;;;;;;;;;:39;;;:43;;:51;;;;:::i;:::-;13252:9;:20;13262:9;13252:20;;;;;;;;;;;;;;;:29;13273:7;;13252:29;;;;;;;;;;;:39;;:93;;;;13411:44;13448:6;13411;:17;13418:9;13411:17;;;;;;;;;;;;;;;:32;;;:36;;:44;;;;:::i;:::-;13376:6;:17;13383:9;13376:17;;;;;;;;;;;;;;;:32;;:79;;;;13558:64;13586:10;13598:23;13617:3;13598:14;13609:2;13598:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13558:27;:64::i;:::-;12837:1024;;;13802:31;13809:23;13828:3;13809:14;13820:2;13809:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;13802:2;;:6;;:31;;;;:::i;:::-;13797:2;:36;;;;12837:1024;11394:2467;8802:5074;13926:58;13950:33;13979:3;13950:24;13961:12;;13950:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;13926:5;:14;13932:7;;13926:14;;;;;;;;;;;:19;;;:23;;:58;;;;:::i;:::-;13904:5;:14;13910:7;;13904:14;;;;;;;;;;;:19;;:80;;;;14027:54;14057:23;14076:3;14057:14;14068:2;14057:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;14027:6;:13;14034:5;;;;;;;;;;;14027:13;;;;;;;;;;;;;;;:25;;;:29;;:54;;;;:::i;:::-;13999:6;:13;14006:5;;;;;;;;;;;13999:13;;;;;;;;;;;;;;;:25;;:82;;;;14110:30;14117:22;14135:3;14117:13;14128:1;14117:6;:10;;:13;;;;:::i;:::-;:17;;:22;;;;:::i;:::-;14110:2;;:6;;:30;;;;:::i;:::-;14105:2;:35;;;;14189:6;14177:10;14160:36;;;;;;;;;;;;8187:1;7950;8627:5591;;:::o;6176:22::-;;;;:::o;6117:23::-;;;;:::o;25784:1131::-;25844:22;25869:10;25844:35;;25937:28;25950:14;25937:12;:28::i;:::-;25986:17;26152:6;:22;26159:14;26152:22;;;;;;;;;;;;;;;:40;;;26085:6;:22;26092:14;26085:22;;;;;;;;;;;;;;;:43;;;26027:6;:22;26034:14;26027:22;;;;;;;;;;;;;;;:34;;;:101;:165;25986:206;;26286:1;26274:9;:13;26271:637;;;26337:9;26312:21;:34;;26304:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26456:1;26419:6;:22;26426:14;26419:22;;;;;;;;;;;;;;;:34;;:38;;;;26518:1;26472:6;:22;26479:14;26472:22;;;;;;;;;;;;;;;:43;;:47;;;;26577:1;26534:6;:22;26541:14;26534:22;;;;;;;;;;;;;;;:40;;:44;;;;26637:1;26593:6;:22;26600:14;26593:22;;;;;;;;;;;;;;;:41;;:45;;;;26696:1;26653:6;:22;26660:14;26653:22;;;;;;;;;;;;;;;:40;;:44;;;;26749:1;26712:6;:22;26719:14;26712:22;;;;;;;;;;;;;;;:34;;:38;;;;26795:14;26779:41;;:52;26821:9;26779:52;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26779:52:0;26892:3;26881:9;26865:14;26851:45;;;;;;;;;;;;26271:637;25784:1131;;:::o;6376:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6499:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6439:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5874:28::-;;;;;;;;;;;;;:::o;27669:722::-;27753:7;27791:30;27870:4;27839:35;;:11;:27;27851:14;27839:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;27836:548;;;27969:3;27953:12;;27912:6;:22;27919:14;27912:22;;;;;;;;;;;;;;;:38;;;:53;:60;27909:412;;28022:64;28082:3;28064:12;;28023:6;:22;28030:14;28023:22;;;;;;;;;;;;;;;:38;;;:53;28022:59;;:64;;;;:::i;:::-;27997:89;;27909:412;;;28152:12;28167:47;28175:6;:22;28182:14;28175:22;;;;;;;;;;;;;;;:38;;;28167:3;:7;;:47;;;;:::i;:::-;28152:62;;28262:39;28287:12;;28280:4;:19;;;;;;28262:12;;:16;;:39;;;;:::i;:::-;28237:64;;27909:412;;28346:22;28339:29;;;;;27836:548;27669:722;;;;;:::o;6147:22::-;;;;:::o;28401:921::-;8334:5;;;;;;;;;;;8320:19;;:10;:19;;;8312:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28524:1;28511:9;:14;:31;;;;;28535:7;28529:2;;:13;;28511:31;28508:807;;;28572:1;28562:7;:11;28559:218;;;28622:7;28597:21;:32;28594:168;;28659:15;28666:7;28659:2;;:6;;:15;;;;:::i;:::-;28654:2;:20;;;;28713:9;28697:36;;:45;28734:7;28697:45;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28697:45:0;28594:168;28559:218;28508:807;;;28819:1;28806:9;:14;:31;;;;;28830:7;28824:2;;:13;;28806:31;28803:512;;;28867:1;28857:7;:11;28854:218;;;28917:7;28892:21;:32;28889:168;;28954:15;28961:7;28954:2;;:6;;:15;;;;:::i;:::-;28949:2;:20;;;;29008:9;28992:36;;:45;29029:7;28992:45;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28992:45:0;28889:168;28854:218;28803:512;;;29114:1;29101:9;:14;29098:217;;;29164:42;29198:7;29164:6;:17;29171:9;29164:17;;;;;;;;;;;;;;;:29;;;:33;;:42;;;;:::i;:::-;29132:6;:17;29139:9;29132:17;;;;;;;;;;;;;;;:29;;:74;;;;29226:15;29233:7;29226:2;;:6;;:15;;;;:::i;:::-;29221:2;:20;;;;29098:217;28803:512;28508:807;28401:921;;;:::o;6205:22::-;;;;:::o;5846:21::-;;;;;;;;;;;;;:::o;6277:41::-;;;;;;;;;;;;;;;;;:::o;26978:607::-;27054:12;;;;;;;;;;;27040:26;;:10;:26;;;27032:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27122:16;27141:7;;27122:26;;27168:19;27190:5;:14;27196:7;;27190:14;;;;;;;;;;;:19;;;27168:41;;27230:5;:15;27236:8;27230:15;;;;;;;;;;;:23;;;27224:3;:29;:63;;;;;27282:5;27257:30;;:5;:15;27263:8;27257:15;;;;;;;;;;;:21;;;;;;;;;;;;:30;;;27224:63;27220:358;;;27342:4;27318:5;:15;27324:8;27318:15;;;;;;;;;;;:21;;;:28;;;;;;;;;;;;;;;;;;27384:11;27361:5;:15;27367:8;27361:15;;;;;;;;;;;:20;;:34;;;;27416:10;;;;;;;27445:7;;:9;;;;;;;;;;;;;27501:3;27473:5;:15;27479:8;27473:15;;;;;;;;;;;:25;;:31;;;;27549:17;27557:8;;27549:3;:7;;:17;;;;:::i;:::-;27523:5;:15;27529:8;27523:15;;;;;;;;;;;:23;;:43;;;;27220:358;26978:607;;:::o;29477:111::-;8334:5;;;;;;;;;;;8320:19;;:10;:19;;;8312:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29552:28;29571:8;29552:18;:28::i;:::-;29477:111;:::o;6325:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;2804:471::-;2862:7;3112:1;3107;:6;3103:47;;;3137:1;3130:8;;;;3103:47;3162:9;3178:1;3174;:5;3162:17;;3207:1;3202;3198;:5;;;;;;:10;3190:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3266:1;3259:8;;;2804:471;;;;;:::o;3743:132::-;3801:7;3828:39;3832:1;3835;3828:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3821:46;;3743:132;;;;:::o;1319:181::-;1377:7;1397:9;1413:1;1409;:5;1397:17;;1438:1;1433;:6;;1425:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1491:1;1484:8;;;1319:181;;;;:::o;14230:5142::-;14336:21;14360:6;:22;14367:14;14360:22;;;;;;;;;;;;;;;:31;;;;;;;;;;;;14336:55;;14402:19;14424:23;14443:3;14424:14;14435:2;14424:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;14402:45;;14458:6;14483:1;14481:3;;14477:4888;14490:2;14486:1;:6;14477:4888;;;14557:3;14532:29;;:13;:29;;;14528:4765;;14640:1;14635;:6;14632:4500;;;14711:13;14722:1;14711:6;:10;;:13;;;;:::i;:::-;14670:6;:21;14677:13;14670:21;;;;;;;;;;;;;;;:37;;;:54;14666:1252;;14793:56;14835:13;14846:1;14835:6;:10;;:13;;;;:::i;:::-;14793:6;:21;14800:13;14793:21;;;;;;;;;;;;;;;:37;;;:41;;:56;;;;:::i;:::-;14753:6;:21;14760:13;14753:21;;;;;;;;;;;;;;;:37;;:96;;;;14921:61;14968:13;14979:1;14968:6;:10;;:13;;;;:::i;:::-;14921:6;:21;14928:13;14921:21;;;;;;;;;;;;;;;:42;;;:46;;:61;;;;:::i;:::-;14876:6;:21;14883:13;14876:21;;;;;;;;;;;;;;;:42;;:106;;;;15197:13;15208:1;15197:6;:10;;:13;;;;:::i;:::-;15182;15142:74;;15166:14;15142:74;;;15212:3;15142:74;;;;;;;;;;;;;;;;;;14666:1252;;;15334:1;15294:6;:21;15301:13;15294:21;;;;;;;;;;;;;;;:37;;;:41;15291:627;;15409:85;15456:6;:21;15463:13;15456:21;;;;;;;;;;;;;;;:37;;;15409:6;:21;15416:13;15409:21;;;;;;;;;;;;;;;:42;;;:46;;:85;;;;:::i;:::-;15364:6;:21;15371:13;15364:21;;;;;;;;;;;;;;;:42;;:130;;;;15526:64;15533:56;15551:6;:21;15558:13;15551:21;;;;;;;;;;;;;;;:37;;;15533:13;15544:1;15533:6;:10;;:13;;;;:::i;:::-;:17;;:56;;;;:::i;:::-;15526:2;;:6;;:64;;;;:::i;:::-;15521:2;:69;;;;15677:6;:21;15684:13;15677:21;;;;;;;;;;;;;;;:37;;;15662:13;15622:98;;15646:14;15622:98;;;15716:3;15622:98;;;;;;;;;;;;;;;;;;15787:1;15747:6;:21;15754:13;15747:21;;;;;;;;;;;;;;;:37;;:41;;;;15291:627;;;15872:21;15879:13;15890:1;15879:6;:10;;:13;;;;:::i;:::-;15872:2;;:6;;:21;;;;:::i;:::-;15867:2;:26;;;;15291:627;14666:1252;15954:30;15970:13;15981:1;15970:6;:10;;:13;;;;:::i;:::-;15954:11;:15;;:30;;;;:::i;:::-;15940:44;;14632:4500;;;16053:1;16048;:6;16045:3087;;;16122:1;16083:6;:21;16090:13;16083:21;;;;;;;;;;;;;;;:35;;;:40;16080:1412;;16197:14;16208:2;16197:6;:10;;:14;;;;:::i;:::-;16156:6;:21;16163:13;16156:21;;;;;;;;;;;;;;;:37;;;:55;16152:1212;;16284:57;16326:14;16337:2;16326:6;:10;;:14;;;;:::i;:::-;16284:6;:21;16291:13;16284:21;;;;;;;;;;;;;;;:37;;;:41;;:57;;;;:::i;:::-;16244:6;:21;16251:13;16244:21;;;;;;;;;;;;;;;:37;;:97;;;;16417:62;16464:14;16475:2;16464:6;:10;;:14;;;;:::i;:::-;16417:6;:21;16424:13;16417:21;;;;;;;;;;;;;;;:42;;;:46;;:62;;;;:::i;:::-;16372:6;:21;16379:13;16372:21;;;;;;;;;;;;;;;:42;;:107;;;;16600:14;16611:2;16600:6;:10;;:14;;;;:::i;:::-;16585:13;16545:75;;16569:14;16545:75;;;16616:3;16545:75;;;;;;;;;;;;;;;;;;16152:1212;;;16746:1;16706:6;:21;16713:13;16706:21;;;;;;;;;;;;;;;:37;;;:41;16703:661;;16825:85;16872:6;:21;16879:13;16872:21;;;;;;;;;;;;;;;:37;;;16825:6;:21;16832:13;16825:21;;;;;;;;;;;;;;;:42;;;:46;;:85;;;;:::i;:::-;16780:6;:21;16787:13;16780:21;;;;;;;;;;;;;;;:42;;:130;;;;16946:65;16953:57;16972:6;:21;16979:13;16972:21;;;;;;;;;;;;;;;:37;;;16953:14;16964:2;16953:6;:10;;:14;;;;:::i;:::-;:18;;:57;;;;:::i;:::-;16946:2;;:6;;:65;;;;:::i;:::-;16941:2;:70;;;;17102:6;:21;17109:13;17102:21;;;;;;;;;;;;;;;:37;;;17087:13;17047:98;;17071:14;17047:98;;;17141:3;17047:98;;;;;;;;;;;;;;;;;;17216:1;17176:6;:21;17183:13;17176:21;;;;;;;;;;;;;;;:37;;:41;;;;16703:661;;;17313:22;17320:14;17331:2;17320:6;:10;;:14;;;;:::i;:::-;17313:2;;:6;;:22;;;;:::i;:::-;17308:2;:27;;;;16703:661;16152:1212;16080:1412;;;17445:22;17452:14;17463:2;17452:6;:10;;:14;;;;:::i;:::-;17445:2;;:6;;:22;;;;:::i;:::-;17440:2;:27;;;;16080:1412;17528:31;17544:14;17555:2;17544:6;:10;;:14;;;;:::i;:::-;17528:11;:15;;:31;;;;:::i;:::-;17514:45;;16045:3087;;;17724:1;17722;:3;17683:6;:21;17690:13;17683:21;;;;;;;;;;;;;;;:35;;;:42;17680:1433;;17799:14;17810:2;17799:6;:10;;:14;;;;:::i;:::-;17758:6;:21;17765:13;17758:21;;;;;;;;;;;;;;;:37;;;:55;17754:1230;;17886:57;17928:14;17939:2;17928:6;:10;;:14;;;;:::i;:::-;17886:6;:21;17893:13;17886:21;;;;;;;;;;;;;;;:37;;;:41;;:57;;;;:::i;:::-;17846:6;:21;17853:13;17846:21;;;;;;;;;;;;;;;:37;;:97;;;;18019:62;18066:14;18077:2;18066:6;:10;;:14;;;;:::i;:::-;18019:6;:21;18026:13;18019:21;;;;;;;;;;;;;;;:42;;;:46;;:62;;;;:::i;:::-;17974:6;:21;17981:13;17974:21;;;;;;;;;;;;;;;:42;;:107;;;;18202:14;18213:2;18202:6;:10;;:14;;;;:::i;:::-;18187:13;18147:75;;18171:14;18147:75;;;18218:3;18147:75;;;;;;;;;;;;;;;;;;17754:1230;;;18346:1;18306:6;:21;18313:13;18306:21;;;;;;;;;;;;;;;:37;;;:41;18303:681;;18425:85;18472:6;:21;18479:13;18472:21;;;;;;;;;;;;;;;:37;;;18425:6;:21;18432:13;18425:21;;;;;;;;;;;;;;;:42;;;:46;;:85;;;;:::i;:::-;18380:6;:21;18387:13;18380:21;;;;;;;;;;;;;;;:42;;:130;;;;18546:65;18553:57;18572:6;:21;18579:13;18572:21;;;;;;;;;;;;;;;:37;;;18553:14;18564:2;18553:6;:10;;:14;;;;:::i;:::-;:18;;:57;;;;:::i;:::-;18546:2;;:6;;:65;;;;:::i;:::-;18541:2;:70;;;;18702:6;:21;18709:13;18702:21;;;;;;;;;;;;;;;:37;;;18687:13;18647:98;;18671:14;18647:98;;;18741:3;18647:98;;;;;;;;;;;;;;;;;;18816:1;18776:6;:21;18783:13;18776:21;;;;;;;;;;;;;;;:37;;:41;;;;18303:681;;;18933:22;18940:14;18951:2;18940:6;:10;;:14;;;;:::i;:::-;18933:2;;:6;;:22;;;;:::i;:::-;18928:2;:27;;;;18303:681;17754:1230;17680:1433;;;19066:22;19073:14;19084:2;19073:6;:10;;:14;;;;:::i;:::-;19066:2;;:6;;:22;;;;:::i;:::-;19061:2;:27;;;;17680:1433;16045:3087;14632:4500;14528:4765;;;19190:62;19197:54;19239:11;19197:37;19219:14;19230:2;19219:6;:10;;:14;;;;:::i;:::-;19198:15;19211:1;19203:2;19198:12;;:15;;;;:::i;:::-;19197:21;;:37;;;;:::i;:::-;:41;;:54;;;;:::i;:::-;19190:2;;:6;;:62;;;;:::i;:::-;19185:2;:67;;;;19272:5;;14528:4765;19323:6;:21;19330:13;19323:21;;;;;;;;;;;;;;;:30;;;;;;;;;;;;19307:46;;14494:3;;;;;;;14477:4888;;;14230:5142;;;;;:::o;23361:2351::-;23441:30;23482:26;23583:12;;23542:6;:22;23549:14;23542:22;;;;;;;;;;;;;;;:38;;;:53;23536:3;:59;23533:2162;;;23698:17;23718:47;23726:6;:22;23733:14;23726:22;;;;;;;;;;;;;;;:38;;;23718:3;:7;;:47;;;;:::i;:::-;23698:67;;23780:20;23910:61;23958:12;;23911:41;23938:12;;23926:9;:24;;;;;;23911:9;:13;;:41;;;;:::i;:::-;23910:47;;:61;;;;:::i;:::-;23885:86;;24021:6;:22;24028:14;24021:22;;;;;;;;;;;;;;;:44;;;24000:65;;24220:26;24243:2;24220:18;:22;;:26;;;;:::i;:::-;24205:41;;24360:40;24377:22;24360:12;:16;;:40;;;;:::i;:::-;24318:6;:22;24325:14;24318:22;;;;;;;;;;;;;;;:38;;;:82;24314:1361;;24462:84;24505:40;24522:22;24505:12;:16;;:40;;;;:::i;:::-;24462:6;:22;24469:14;24462:22;;;;;;;;;;;;;;;:38;;;:42;;:84;;;;:::i;:::-;24421:6;:22;24428:14;24421:22;;;;;;;;;;;;;;;:38;;:125;;;;24602:80;24641:40;24658:22;24641:12;:16;;:40;;;;:::i;:::-;24602:6;:22;24609:14;24602:22;;;;;;;;;;;;;;;:34;;;:38;;:80;;;;:::i;:::-;24565:6;:22;24572:14;24565:22;;;;;;;;;;;;;;;:34;;:117;;;;24742:87;24786:41;24813:12;;24801:9;:24;;;;;;24786:9;:13;;:41;;;;:::i;:::-;24742:6;:22;24749:14;24742:22;;;;;;;;;;;;;;;:38;;;:42;;:87;;;;:::i;:::-;24701:6;:22;24708:14;24701:22;;;;;;;;;;;;;;;:38;;:128;;;;24929:3;24887:40;24904:22;24887:12;:16;;:40;;;;:::i;:::-;24871:14;24853:80;;;;;;;;;;;;24952:87;24982:14;24998:40;25015:22;24998:12;:16;;:40;;;;:::i;:::-;24952:29;:87::i;:::-;24314:1361;;;25182:1;25141:6;:22;25148:14;25141:22;;;;;;;;;;;;;;;:38;;;:42;25138:537;;25204:12;25242:6;:22;25249:14;25242:22;;;;;;;;;;;;;;;:38;;;25235:45;;25357:1;25316:6;:22;25323:14;25316:22;;;;;;;;;;;;;;;:38;;:42;;;;25414:44;25453:4;25414:6;:22;25421:14;25414:22;;;;;;;;;;;;;;;:34;;;:38;;:44;;;;:::i;:::-;25377:6;:22;25384:14;25377:22;;;;;;;;;;;;;;;:34;;:81;;;;25518:3;25477:6;:22;25484:14;25477:22;;;;;;;;;;;;;;;:38;;:44;;;;25585:3;25579:4;25563:14;25545:44;;;;;;;;;;;;25608:51;25638:14;25654:4;25608:29;:51::i;:::-;25138:537;;24314:1361;23533:2162;;;23361:2351;;;:::o;1775:136::-;1833:7;1860:43;1864:1;1867;1860:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1853:50;;1775:136;;;;:::o;29695:224::-;29788:1;29768:22;;:8;:22;;;;29760:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29875:8;29847:37;;29868:5;;;;;;;;;;;29847:37;;;;;;;;;;;;29903:8;29895:5;;:16;;;;;;;;;;;;;;;;;;29695:224;:::o;4510:345::-;4596:7;4695:1;4691;:5;4698:12;4683:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4683:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:9;4738:1;4734;:5;;;;;;4722:17;;4846:1;4839:8;;;4510:345;;;;;:::o;19392:3904::-;19500:21;19524:6;:22;19531:14;19524:22;;;;;;;;;;;;;;;:31;;;;;;;;;;;;19500:55;;19566:19;19588:13;19599:1;19588:6;:10;;:13;;;;:::i;:::-;19566:35;;19612:6;19637:1;19635:3;;19631:3658;19644:2;19640:1;:6;19631:3658;;;19711:3;19686:29;;:13;:29;;;19682:3535;;19744:1;19739;:6;19736:3084;;;19864:23;19883:3;19864:14;19875:2;19864:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;19823:6;:21;19830:13;19823:21;;;;;;;;;;;;;;;:37;;;:64;19819:1279;;19956:66;19998:23;20017:3;19998:14;20009:2;19998:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;19956:6;:21;19963:13;19956:21;;;;;;;;;;;;;;;:37;;;:41;;:66;;;;:::i;:::-;19916:6;:21;19923:13;19916:21;;;;;;;;;;;;;;;:37;;:106;;;;20091:68;20135:23;20154:3;20135:14;20146:2;20135:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;20091:6;:21;20098:13;20091:21;;;;;;;;;;;;;;;:39;;;:43;;:68;;;;:::i;:::-;20049:6;:21;20056:13;20049:21;;;;;;;;;;;;;;;:39;;:110;;;;20272:23;20291:3;20272:14;20283:2;20272:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;20257:13;20217:84;;20241:14;20217:84;;;20297:3;20217:84;;;;;;;;;;;;;;;;;;19819:1279;;;20400:1;20360:6;:21;20367:13;20360:21;;;;;;;;;;;;;;;:37;;;:41;20357:741;;20472:82;20516:6;:21;20523:13;20516:21;;;;;;;;;;;;;;;:37;;;20472:6;:21;20479:13;20472:21;;;;;;;;;;;;;;;:39;;;:43;;:82;;;;:::i;:::-;20430:6;:21;20437:13;20430:21;;;;;;;;;;;;;;;:39;;:124;;;;20586:74;20593:66;20621:6;:21;20628:13;20621:21;;;;;;;;;;;;;;;:37;;;20593:23;20612:3;20593:14;20604:2;20593:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;:27;;:66;;;;:::i;:::-;20586:2;;:6;;:74;;;;:::i;:::-;20581:2;:79;;;;20747:6;:21;20754:13;20747:21;;;;;;;;;;;;;;;:37;;;20732:13;20692:98;;20716:14;20692:98;;;20786:3;20692:98;;;;;;;;;;;;;;;;;;20857:1;20817:6;:21;20824:13;20817:21;;;;;;;;;;;;;;;:37;;:41;;;;20357:741;;;21032:31;21039:23;21058:3;21039:14;21050:2;21039:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;21032:2;;:6;;:31;;;;:::i;:::-;21027:2;:36;;;;20357:741;19819:1279;21219:40;21235:23;21254:3;21235:14;21246:2;21235:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;21219:11;:15;;:40;;;;:::i;:::-;21205:54;;19736:3084;;;21403:1;21401;:3;21362:6;:21;21369:13;21362:21;;;;;;;;;;;;;;;:35;;;:42;21359:1442;;21478:14;21489:2;21478:6;:10;;:14;;;;:::i;:::-;21437:6;:21;21444:13;21437:21;;;;;;;;;;;;;;;:37;;;:55;21433:1199;;21565:57;21607:14;21618:2;21607:6;:10;;:14;;;;:::i;:::-;21565:6;:21;21572:13;21565:21;;;;;;;;;;;;;;;:37;;;:41;;:57;;;;:::i;:::-;21525:6;:21;21532:13;21525:21;;;;;;;;;;;;;;;:37;;:97;;;;21695:59;21739:14;21750:2;21739:6;:10;;:14;;;;:::i;:::-;21695:6;:21;21702:13;21695:21;;;;;;;;;;;;;;;:39;;;:43;;:59;;;;:::i;:::-;21653:6;:21;21660:13;21653:21;;;;;;;;;;;;;;;:39;;:101;;;;21875:14;21886:2;21875:6;:10;;:14;;;;:::i;:::-;21860:13;21820:75;;21844:14;21820:75;;;21891:3;21820:75;;;;;;;;;;;;;;;;;;21433:1199;;;21997:1;21957:6;:21;21964:13;21957:21;;;;;;;;;;;;;;;:37;;;:41;21954:678;;22073:82;22117:6;:21;22124:13;22117:21;;;;;;;;;;;;;;;:37;;;22073:6;:21;22080:13;22073:21;;;;;;;;;;;;;;;:39;;;:43;;:82;;;;:::i;:::-;22031:6;:21;22038:13;22031:21;;;;;;;;;;;;;;;:39;;:124;;;;22191:65;22198:57;22217:6;:21;22224:13;22217:21;;;;;;;;;;;;;;;:37;;;22198:14;22209:2;22198:6;:10;;:14;;;;:::i;:::-;:18;;:57;;;;:::i;:::-;22191:2;;:6;;:65;;;;:::i;:::-;22186:2;:70;;;;22347:6;:21;22354:13;22347:21;;;;;;;;;;;;;;;:37;;;22332:13;22292:98;;22316:14;22292:98;;;22386:3;22292:98;;;;;;;;;;;;;;;;;;22461:1;22421:6;:21;22428:13;22421:21;;;;;;;;;;;;;;;:37;;:41;;;;21954:678;;;22581:22;22588:14;22599:2;22588:6;:10;;:14;;;;:::i;:::-;22581:2;;:6;;:22;;;;:::i;:::-;22576:2;:27;;;;21954:678;21433:1199;21359:1442;;;22715:22;22722:14;22733:2;22722:6;:10;;:14;;;;:::i;:::-;22715:2;;:6;;:22;;;;:::i;:::-;22710:2;:27;;;;21359:1442;19736:3084;19682:3535;;;22882:1;22879;:4;22876:308;;;22912:32;22919:24;22939:3;22919:15;22930:3;22919:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;22912:2;;:6;;:32;;;;:::i;:::-;22907:2;:37;;;;22997:5;;22876:308;23073:62;23080:54;23122:11;23080:37;23102:14;23113:2;23102:6;:10;;:14;;;;:::i;:::-;23081:15;23094:1;23086:2;23081:12;;:15;;;;:::i;:::-;23080:21;;:37;;;;:::i;:::-;:41;;:54;;;;:::i;:::-;23073:2;;:6;;:62;;;;:::i;:::-;23068:2;:67;;;;23159:5;;19682:3535;23247:6;:21;23254:13;23247:21;;;;;;;;;;;;;;;:30;;;;;;;;;;;;23231:46;;19648:3;;;;;;;19631:3658;;;19392:3904;;;;;:::o;2361:192::-;2447:7;2480:1;2475;:6;;2483:12;2467:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2467:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2507:9;2523:1;2519;:5;2507:17;;2544:1;2537:8;;;2361:192;;;;;:::o

Swarm Source

bzzr://909ad4ebcb9099779a122b9662b7e7cf5b1a7d6640fb715e6d944bcebf0ecdde

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.