ETH Price: $3,390.98 (+1.54%)
Gas: 2.91 Gwei

Token

Nexus Link (NEXL)
 

Overview

Max Total Supply

377,473.71025242625402904 NEXL

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
unigambit.eth
Balance
1,043.726428298039179576 NEXL

Value
$0.00
0xeafe863757a2b2a2c5c3f71988b7d59329d09a78
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NexusLink

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-07
*/

pragma solidity ^0.5.17;

/******************************
*******************************
* https://link.nexus-dapp.com *
*******************************
******************************/

contract LinkInterface {
	function transfer(address _toAddress, uint256 _amountOfTokens) public returns (bool);
	function balanceOf(address _Address) public view returns (uint256);
}

contract NexusLink {

    /*=================================
    =            MODIFIERS            =
    =================================*/

    /// @dev Only people with tokens
    modifier onlyBagholders {
        require(myTokens(msg.sender) > 0);
        _;
    }

    /// @dev Only people with profits
    modifier onlySlinkghands {
        require(myDividends(true, msg.sender) > 0);
        _;
    }


    /// @dev isControlled
    modifier isControlled() {
      require(isStarted());
      _;
    }

    /*==============================
    =            EVENTS            =
    ==============================*/

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingLink,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp,
        uint256 price
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 linkEarned,
        uint timestamp,
        uint256 price
    );

    event onReinvestment(
        address indexed customerAddress,
        uint256 linkReinvested,
        uint256 tokensMinted
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 linkWithdrawn
    );

    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
	
    event Approval(
		address indexed admin, 
		address indexed spender, 
		uint256 value
	);

    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/

    string public name = "Nexus Link";
    string public symbol = "NEXL";
    uint8 constant public decimals = 18;

    /// @dev 5% dividends for token selling
    uint8 constant internal exitFee_ = 5;

    /// @dev 33% masternode
    uint8 constant internal refferalFee_ = 30;

    /// @dev P3D pricing
    uint256 constant internal tokenPriceInitial_ = 100000000000; //0.0000001 link;
    uint256 constant internal tokenPriceIncremental_ = 10000000000; //0.00000001 link;

    uint256 constant internal magnitude = 2 ** 64;

    /// @dev 100 needed for masternode activation
    uint256 public stakingRequirement = 100e18;

    /// @dev light the marketing
    address public marketing;
	
	// @dev ERC20 allowances
	mapping (address => mapping (address => uint256)) private _allowances;


   /*=================================
    =            DATASETS            =
    ================================*/

    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => int256) public payoutsTo_;
    mapping(address => uint256) public referralBalance_;
	
	// referrers
	mapping(address => address) public referrers_;	
    
	uint256 public jackPot_;
	address public jackPotPretender_;	
	uint256 public jackPotStartTime_;
	
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    uint256 public depositCount_;

    // ChainLink interface 
	
    address internal constant tokenAddress = address(
        0x514910771AF9Ca656af840dff83E8264EcF986CA  // chainlink token address
    );
    LinkInterface public linkContract = LinkInterface(tokenAddress);	

    /*=======================================
    =            CONSTRUCTOR                =
    =======================================*/

   constructor (address _marketing) public {
		marketing = _marketing;
		jackPotStartTime_ = now;
		jackPot_ = 1000e18;
   }

    /*=======================================
    =            PUBLIC FUNCTIONS           =
    =======================================*/

    /**
     * @dev Fallback function to handle linkeum that was send straight to the contract
     *  Unfortunately we cannot use a referral address this way.
     */
    
	function() external isControlled  {	
        revert();
    }

    /// @dev Converts all incoming link to tokens for the caller, and passes down the referral addy (if any)
    /**
     * ERC677 transferandcall support
     */
    function onTokenTransfer(address _sender, uint _value, bytes calldata _data) external {
        // make sure that only chainlink transferandcalls are supported
        require(msg.sender == tokenAddress);

        // convert _data to address
        bytes memory x = _data;
        address _referredBy;

        assembly {
            _referredBy := mload(add(x,20))
        }

        purchaseTokens(_value, _referredBy, _sender);
    }	

    /// @dev Converts to tokens on behalf of the customer - this allows gifting and integration with other systems
    //function purchaseFor(uint256 tokensValue, address _referredBy, address _customerAddress) isControlled public returns (uint256) {
    //   purchaseTokens(tokensValue, _referredBy , _customerAddress);
    //}

    /// @dev Converts all of caller's dividends to tokens.
    function reinvest() onlySlinkghands public {
        // fetch dividends
        uint256 _dividends = myDividends(false, msg.sender); // retrieve ref. bonus later in the code

        // pay out the dividends virtually
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);

        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends, address(0x0) , _customerAddress);

        // fire event
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }
	
	/// @dev The new user welcome function
    function reg() public returns(bool) {	
		return true;
	}
	
    /// @dev Alias of sell() and withdraw().
    function exit() public {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);

        // capitulation
        withdraw();
    }

    /// @dev Withdraws all of the callers earnings.
    function withdraw() onlySlinkghands public {
        // setup data
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false, msg.sender); // get ref. bonus later in the code

        // update dividend tracker
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);

        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;

        // lambo delivery service
        linkContract.transfer(_customerAddress, _dividends);

        // fire event
        emit onWithdraw(_customerAddress, _dividends);
    }

    /// @dev Liquifies tokens to link.
    function sell(uint256 _amountOfTokens) onlyBagholders public {
        // setup data
        address _customerAddress = msg.sender;
        // russian hackers BTFO
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _link = tokensToLink_(_tokens);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_link, exitFee_), 100);
        uint256 _taxedLink = SafeMath.sub(_link, _dividends);

        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        // update dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedLink * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        // dividing by zero is a bad idea
        if (tokenSupply_ > 0) {
            // update the amount of dividends per token
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }

        // fire event
		emit Transfer(_customerAddress, address(0x0), _tokens);
        emit onTokenSell(_customerAddress, _tokens, _taxedLink, now, buyPrice());
    }
	
    /**
     * @dev ERC20 functions.
     */
    function allowance(address _admin, address _spender) public view returns (uint256) {
        return _allowances[_admin][_spender];
    }

    function approve(address _spender, uint256 _amountOfTokens) public returns (bool) {
        approveInternal(msg.sender, _spender, _amountOfTokens);
        return true;
    }

    function approveInternal(address _admin, address _spender, uint256 _amountOfTokens) internal {
        require(_admin != address(0x0), "ERC20: approve from the zero address");
        require(_spender != address(0x0), "ERC20: approve to the zero address");

        _allowances[_admin][_spender] = _amountOfTokens;
        emit Approval(_admin, _spender, _amountOfTokens);
    }
	
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        approveInternal(msg.sender, spender, SafeMath.add(_allowances[msg.sender][spender], addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        approveInternal(msg.sender, spender, SafeMath.sub(_allowances[msg.sender][spender], subtractedValue));
        return true;
    }	
	
    /**
     * @dev Transfer tokens from the caller to a new holder.
     */
    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        // setup
        address _customerAddress = msg.sender;

        // make sure we have the requested tokens
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        // withdraw all outstanding dividends first
        if (myDividends(true, msg.sender) > 0) {
            withdraw();
        }

        return transferInternal(_toAddress,_amountOfTokens,_customerAddress);
    }
	
    function transferFrom(address _fromAddress, address _toAddress, uint256 _amountOfTokens) public returns (bool) {
        transferInternal(_toAddress, _amountOfTokens, _fromAddress);
        approveInternal(_fromAddress, msg.sender, SafeMath.sub(_allowances[_fromAddress][msg.sender], _amountOfTokens));
        return true;
    }	

    function transferInternal(address _toAddress, uint256 _amountOfTokens , address _fromAddress) internal returns (bool) {
        // setup
        address _customerAddress = _fromAddress;

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);

        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);

        // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);

        // ERC20
        return true;
    }
	

    /*=====================================
    =      HELPERS AND CALCULATORS        =
    =====================================*/

    /**
     * @dev Mlnkod to view the current Link stored in the contract
     *  Example: totalLinkBalance()
     */
    function totalLinkBalance() public view returns (uint256) {
        return linkContract.balanceOf(address(this));
    }

    /// @dev Retrieve the total token supply.
    function totalSupply() public view returns (uint256) {
        return tokenSupply_;
    }

    /// @dev Retrieve the tokens balance.
    function myTokens(address _customerAddress) public view returns (uint256) {
        return balanceOf(_customerAddress);
    }

    /**
     * @dev Retrieve the dividends owned by the caller.
     *  If `_includeReferralBonus` is to to 1/true, the referral bonus will be included in the calculations.
     *  The reason for this, is that in the frontend, we will want to get the total divs (global + ref)
     *  But in the internal calculations, we want them separate.
     */
    function myDividends(bool _includeReferralBonus, address _customerAddress) public view returns (uint256) {
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }

    /// @dev Retrieve the token balance of any single address.
    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    /// @dev Retrieve the dividend balance of any single address.
    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    /// @dev Return the sell price of 1 individual token.
    function sellPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _link = tokensToLink_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_link, exitFee_), 100);
            uint256 _taxedLink = SafeMath.sub(_link, _dividends);

            return _taxedLink;
        }
    }

    /// @dev Return the buy price of 1 individual token.
    function buyPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _link = tokensToLink_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_link, entryFee()), 100);
            uint256 _taxedLink = SafeMath.add(_link, _dividends);

            return _taxedLink;
        }
    }

    /// @dev Function for the frontend to dynamically retrieve the price scaling of buy orders.
    function calculateTokensReceived(uint256 _linkToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_linkToSpend, entryFee()), 100);
        uint256 _taxedLink = SafeMath.sub(_linkToSpend, _dividends);
        uint256 _amountOfTokens = linkToTokens_(_taxedLink);
        return _amountOfTokens;
    }

    /// @dev Function for the frontend to dynamically retrieve the price scaling of sell orders.
    function calculateLinkReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _link = tokensToLink_(_tokensToSell);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_link, exitFee_), 100);
        uint256 _taxedLink = SafeMath.sub(_link, _dividends);
        return _taxedLink;
    }

    /// @dev Function for the frontend to get untaxed receivable link.
    function calculateUntaxedLinkReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _link = tokensToLink_(_tokensToSell);
        //uint256 _dividends = SafeMath.div(SafeMath.mul(_link, exitFee()), 100);
        //uint256 _taxedLink = SafeMath.sub(_link, _dividends);
        return _link;
    }

    function entryFee() private view returns (uint8){
      uint256 volume = totalLinkBalance()  - msg.value;

      if (volume<=50e18){
        return 22;
      }
      if (volume<=100e18){
        return 21;
      }
      if (volume<=25e22){
        return 20;
      }
      if (volume<=30e22){
        return 19;
      }
      if (volume<=35e22){
        return 18;
      }

      return 17;
	  
    }

     // @dev Function for find if premine
    function jackPotInfo() public view returns (uint256 jackPot, uint256 timer, address jackPotPretender) {
		jackPot = jackPot_;
		if (jackPot > totalLinkBalance()) {
			jackPot = totalLinkBalance();
		}
		jackPot = SafeMath.div(jackPot,2);
		
		timer = now - jackPotStartTime_;
		jackPotPretender = jackPotPretender_;
    }
	
	// @dev Function for find if premine
    function isPremine() public view returns (bool) {
      return depositCount_<=5;
    }

    // @dev Function for find if premine
    function isStarted() public pure returns (bool) {
      return true; //startTime!=0 && now > startTime;
    }

    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/

    /// @dev Internal function to actually purchase the tokens.
    function purchaseTokens(uint256 _incomingLink, address _referredBy , address _customerAddress) internal returns (uint256) {
        // data setup
		require (_incomingLink > 0);
		
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingLink, entryFee()), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, refferalFee_), 100);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedLink = SafeMath.sub(_incomingLink, _undividedDividends);
        uint256 _amountOfTokens = linkToTokens_(_taxedLink);
        uint256 _fee = _dividends * magnitude;
		uint256 _marketing = SafeMath.div(SafeMath.mul(_incomingLink, 4), 100); //4%
		
        // no point in continuing execution if OP is a poorfag russian hacker
        // prevents overflow in the case that the pyramid somehow magically starts being used by everyone in the world
        // (or hackers)
        // and yes we know that the safemath function automatically rules out the "greater then" equasion.
        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        // is the user referred by a masternode?
        if (
            // is this a referred purchase?
            _referredBy != address(0x0) &&

            // no cheating!
            _referredBy != _customerAddress &&

            // does the referrer have at least X whole tokens?
            // i.e is the referrer a godly chad masternode
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            // wealth redistribution
			if (referrers_[_customerAddress] == address(0x0)) {
				referrers_[_customerAddress] = _referredBy;
			}
			calculateReferrers(_customerAddress, _referralBonus, 1);
        } else {
            // no ref purchase
            // add the referral bonus back to the global dividends cake
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

        // we can't give people infinite link
        if (tokenSupply_ > 0) {
            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
			
			// fire event
			emit Transfer(address(0x0), _customerAddress, _amountOfTokens);

            // take the amount of dividends gained through this transaction, and allocates them evenly to each shareholder
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);

            // calculate the amount of tokens the customer receives over his purchase
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }

        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

        // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
        // really i know you think you do but you don't
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
		
		// JackPot calculate
		calculateJackPot(_incomingLink, _customerAddress);
		
		// 4% for marketing 
		linkContract.transfer(marketing, _marketing);

        // fire event
        emit onTokenPurchase(_customerAddress, _incomingLink, _amountOfTokens, _referredBy, now, buyPrice());

        // Keep track
        depositCount_++;
        return _amountOfTokens;
    }

    /**
     * @dev Calculate Referrers reward 
     * Level 1: 35%, Level 2: 20%, Level 3: 15%, Level 4: 10%, Level 5: 10%, Level 6: 5%, Level 7: 5%
     */	
	function calculateReferrers(address _customerAddress, uint256 _referralBonus, uint8 _level) internal {
		address _referredBy = referrers_[_customerAddress];
		uint256 _percent = 35;
		if (_referredBy != address(0x0)) {
			if (_level == 2) _percent = 20;
			if (_level == 3) _percent = 15;
			if (_level == 4 || _level == 5) _percent = 10;
			if (_level == 6 || _level == 7) _percent = 5;
			uint256 _newReferralBonus = SafeMath.div(SafeMath.mul(_referralBonus, _percent), 100);
			referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _newReferralBonus);
			if (_level < 7) {
				calculateReferrers(_referredBy, _referralBonus, _level+1);
			}
		}
	}

    /**
     * @dev Calculate JackPot 
     * 40% from entryFee is going to JackPot 
     * The last investor (with 0.2 link) will receive the jackpot in 12 hours 
     */	
	function calculateJackPot(uint256 _incomingLink, address _customerAddress) internal {
		uint256 timer = SafeMath.div(SafeMath.sub(now, jackPotStartTime_), 12 hours);
		if (timer > 0 && jackPotPretender_ != address(0x0) && jackPot_ > 0) {
			//pay jackPot
			if (totalLinkBalance() < jackPot_) {
				jackPot_ = totalLinkBalance();
			}
				
			linkContract.transfer(jackPotPretender_, SafeMath.div(jackPot_,2));
			jackPot_ = SafeMath.div(jackPot_,2);
			jackPotStartTime_ = now;
			jackPotPretender_ = address(0x0);
		}
		
		uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingLink, entryFee()), 100);
		jackPot_ += SafeMath.div(SafeMath.mul(_undividedDividends, 40), 100);
		
		if (_incomingLink >= 10e18) { 
			jackPotPretender_ = _customerAddress;
			jackPotStartTime_ = now;
		}
	}	
	
    /**
     * @dev Calculate Token price based on an amount of incoming link
     *  It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     *  Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function linkToTokens_(uint256 _link) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
         (
            (
                // underflow attempts BTFO
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial ** 2)
                            +
                            (2 * (tokenPriceIncremental_ * 1e18) * (_link * 1e18))
                            +
                            ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                            +
                            (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            ) / (tokenPriceIncremental_)
        ) - (tokenSupply_);

        return _tokensReceived;
    }

    /**
     * @dev Calculate token sell value.
     *  It's an algorithm, hopefully we gave you the whitepaper with it in scientific notation;
     *  Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
     */
    function tokensToLink_(uint256 _tokens) internal view returns (uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _linkReceived =
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                        ) - tokenPriceIncremental_
                    ) * (tokens_ - 1e18)
                ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
            )
        / 1e18);

        return _linkReceived;
    }

    /// @dev This is where all your gas goes.
    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = (x + 1) / 2;
        y = x;

        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }


}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketing","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"linkReinvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"incomingLink","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":true,"internalType":"address","name":"referredBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"linkEarned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"linkWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateLinkReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_linkToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateUntaxedLinkReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"depositCount_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPremine","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"jackPotInfo","outputs":[{"internalType":"uint256","name":"jackPot","type":"uint256"},{"internalType":"uint256","name":"timer","type":"uint256"},{"internalType":"address","name":"jackPotPretender","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackPotPretender_","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackPotStartTime_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"jackPot_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"linkContract","outputs":[{"internalType":"contract LinkInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketing","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"},{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referralBalance_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrers_","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reg","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLinkBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_fromAddress","type":"address"},{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600a81526020017f4e65787573204c696e6b000000000000000000000000000000000000000000008152506000908051906020019062000051929190620001a5565b506040518060400160405280600481526020017f4e45584c00000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620001a5565b5068056bc75e2d6310000060025573514910771af9ca656af840dff83e8264ecf986ca600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200010f57600080fd5b506040516200327a3803806200327a833981810160405260208110156200013557600080fd5b810190808051906020019092919050505080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600b81905550683635c9adc5dea000006009819055505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e857805160ff191683800117855562000219565b8280016001018555821562000219579182015b8281111562000218578251825591602001919060010190620001fb565b5b5090506200022891906200022c565b5090565b6200025191905b808211156200024d57600081600090555060010162000233565b5090565b90565b61301680620002646000396000f3fe608060405234801561001057600080fd5b506004361061023c5760003560e01c806364377fe41161013b578063c664f7f1116100b8578063dd62ed3e1161007c578063dd62ed3e14610be1578063e1456cb414610c59578063e4849b3214610cb1578063e9fad8ee14610cdf578063fdb5a03e14610ce95761023c565b8063c664f7f114610ad3578063cfb5df1814610b2b578063d6dda33d14610b49578063da7af32d14610b6b578063dc1df3f614610b895761023c565b806387d4f12a116100ff57806387d4f12a1461089f57806395d89b41146108e1578063a457c2d714610964578063a4c0ed36146109ca578063a9059cbb14610a6d5761023c565b806364377fe4146107a757806370a08231146107c5578063738fdd1a1461081d5780637e46c5a41461083f5780638620410b146108815761023c565b80633904d2b1116101c9578063527ba4081161018d578063527ba40814610635578063544736e61461067f57806356d399e8146106a15780635df345db146106bf578063642ad54a146107435761023c565b80633904d2b114610505578063395093511461055d5780633ccfd60b146105c3578063458e237d146105cd5780634b750334146106175761023c565b806318160ddd1161021057806318160ddd146103d557806323b872dd146103f35780632d3e474a146104795780632e01f949146104c3578063313ce567146104e15761023c565b806265318b1461025257806306fdde03146102aa578063095ea7b31461032d57806310d0ffdd14610393575b610244610cf3565b61024d57600080fd5b600080fd5b6102946004803603602081101561026857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfc565b6040518082815260200191505060405180910390f35b6102b2610d9c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f25780820151818401526020810190506102d7565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103796004803603604081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3a565b604051808215151515815260200191505060405180910390f35b6103bf600480360360208110156103a957600080fd5b8101908080359060200190929190505050610e51565b6040518082815260200191505060405180910390f35b6103dd610e9a565b6040518082815260200191505060405180910390f35b61045f6004803603606081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea4565b604051808215151515815260200191505060405180910390f35b610481610f4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104cb610f73565b6040518082815260200191505060405180910390f35b6104e9611054565b604051808260ff1660ff16815260200191505060405180910390f35b61050d611059565b604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b6105a96004803603604081101561057357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110bb565b604051808215151515815260200191505060405180910390f35b6105cb611157565b005b6105d561139a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061f6113c0565b6040518082815260200191505060405180910390f35b61063d611429565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610687610cf3565b604051808215151515815260200191505060405180910390f35b6106a961144f565b6040518082815260200191505060405180910390f35b610701600480360360208110156106d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611455565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107916004803603604081101561075957600080fd5b81019080803515159060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611488565b6040518082815260200191505060405180910390f35b6107af6114f0565b6040518082815260200191505060405180910390f35b610807600480360360208110156107db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f6565b6040518082815260200191505060405180910390f35b61082561153f565b604051808215151515815260200191505060405180910390f35b61086b6004803603602081101561085557600080fd5b8101908080359060200190929190505050611548565b6040518082815260200191505060405180910390f35b61088961159b565b6040518082815260200191505060405180910390f35b6108cb600480360360208110156108b557600080fd5b810190808035906020019092919050505061160a565b6040518082815260200191505060405180910390f35b6108e9611631565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561092957808201518184015260208101905061090e565b50505050905090810190601f1680156109565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109b06004803603604081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116cf565b604051808215151515815260200191505060405180910390f35b610a6b600480360360608110156109e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a2757600080fd5b820183602082011115610a3957600080fd5b80359060200191846001830284011164010000000083111715610a5b57600080fd5b909192939192939050505061176b565b005b610ab960048036036040811015610a8357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181d565b604051808215151515815260200191505060405180910390f35b610b1560048036036020811015610ae957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118b4565b6040518082815260200191505060405180910390f35b610b336118cc565b6040518082815260200191505060405180910390f35b610b516118d2565b604051808215151515815260200191505060405180910390f35b610b736118e0565b6040518082815260200191505060405180910390f35b610bcb60048036036020811015610b9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118e6565b6040518082815260200191505060405180910390f35b610c4360048036036040811015610bf757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f8565b6040518082815260200191505060405180910390f35b610c9b60048036036020811015610c6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061197f565b6040518082815260200191505060405180910390f35b610cdd60048036036020811015610cc757600080fd5b8101908080359060200190929190505050611997565b005b610ce7611c4a565b005b610cf1611cb2565b005b60006001905090565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d54020381610d9457fe5b049050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e325780601f10610e0757610100808354040283529160200191610e32565b820191906000526020600020905b815481529060010190602001808311610e1557829003601f168201915b505050505081565b6000610e47338484611e29565b6001905092915050565b600080610e72610e6b84610e63612020565b60ff166120bd565b60646120f4565b90506000610e80848361210d565b90506000610e8d82612124565b9050809350505050919050565b6000600c54905090565b6000610eb18383866121af565b50610f428433610f3d600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661210d565b611e29565b600190509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b8101908080519060200190929190505050905090565b601281565b6000806000600954925061106b610f73565b83111561107d5761107a610f73565b92505b6110888360026120f4565b9250600b5442039150600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050909192565b600061114d3384611148600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866123e0565b611e29565b6001905092915050565b6000611164600133611488565b1161116e57600080fd5b60003390506000611180600033611488565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561130c57600080fd5b505af1158015611320573d6000803e3d6000fd5b505050506040513d602081101561133657600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600c5414156113e0576402540be40064174876e800039050611426565b60006113f3670de0b6b3a76400006123fc565b9050600061140f61140883600560ff166120bd565b60646120f4565b9050600061141d838361210d565b90508093505050505b90565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008261149d5761149882610cfc565b6114e8565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e683610cfc565b015b905092915050565b600b5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006001905090565b6000600c5482111561155957600080fd5b6000611564836123fc565b9050600061158061157983600560ff166120bd565b60646120f4565b9050600061158e838361210d565b9050809350505050919050565b600080600c5414156115bb576402540be40064174876e800019050611607565b60006115ce670de0b6b3a76400006123fc565b905060006115f06115e9836115e1612020565b60ff166120bd565b60646120f4565b905060006115fe83836123e0565b90508093505050505b90565b6000600c5482111561161b57600080fd5b6000611626836123fc565b905080915050919050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c75780601f1061169c576101008083540402835291602001916116c7565b820191906000526020600020905b8154815290600101906020018083116116aa57829003601f168201915b505050505081565b6000611761338461175c600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661210d565b611e29565b6001905092915050565b73514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117b757600080fd5b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000601482015190506118148582886124a0565b50505050505050565b600080611829336118e6565b1161183357600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111561188457600080fd5b6000611891600133611488565b11156118a05761189f611157565b5b6118ab8484836121af565b91505092915050565b60076020528060005260406000206000915090505481565b60095481565b60006005600e541115905090565b600e5481565b60006118f1826114f6565b9050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915090505481565b60006119a2336118e6565b116119ac57600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156119fd57600080fd5b60008290506000611a0d826123fc565b90506000611a29611a2283600560ff166120bd565b60646120f4565b90506000611a37838361210d565b9050611a45600c548561210d565b600c81905550611a94600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561210d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600068010000000000000000820285600d540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600c541115611b6e57611b67600d54600c5468010000000000000000860281611b6157fe5b046123e0565b600d819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38573ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442611c1761159b565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b60003390506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611ca657611ca581611997565b5b611cae611157565b5050565b6000611cbf600133611488565b11611cc957600080fd5b6000611cd6600033611488565b90506000339050680100000000000000008202600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611dcc836000846124a0565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612fbe6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f9c6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000803461202c610f73565b0390506802b5e3af16b188000081116120495760169150506120ba565b68056bc75e2d6310000081116120635760159150506120ba565b6934f086f3b33b68400000811161207e5760149150506120ba565b693f870857a3e0e380000081116120995760139150506120ba565b694a1d89bb94865ec0000081116120b45760129150506120ba565b60119150505b90565b6000808314156120d057600090506120ee565b60008284029050828482816120e157fe5b04146120e957fe5b809150505b92915050565b60008082848161210057fe5b0490508091505092915050565b60008282111561211957fe5b818303905092915050565b600080670de0b6b3a764000064174876e8000290506000600c546402540be40061219a612194600c54866402540be40060020202026002600c540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a010101612acf565b8561210d565b816121a157fe5b040390508092505050919050565b6000808290506121fe600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561210d565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061228a600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856123e0565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600d5402600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555083600d5402600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b6000808284019050838110156123f257fe5b8091505092915050565b600080670de0b6b3a7640000830190506000670de0b6b3a7640000600c540190506000670de0b6b3a764000061248b670de0b6b3a764000085036402540be400670de0b6b3a7640000868161244d57fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038161247657fe5b046402540be400028161248557fe5b0461210d565b8161249257fe5b049050809350505050919050565b60008084116124ae57600080fd5b60006124ce6124c7866124bf612020565b60ff166120bd565b60646120f4565b905060006124ea6124e383601e60ff166120bd565b60646120f4565b905060006124f8838361210d565b90506000612506888561210d565b9050600061251382612124565b905060006801000000000000000084029050600061253c6125358c60046120bd565b60646120f4565b905060008311801561255a5750600c5461255884600c546123e0565b115b61256357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141580156125cc57508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b80156126195750600254600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561274257600073ffffffffffffffffffffffffffffffffffffffff16600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127315789600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61273d89876001612b14565b61275d565b61274c85876123e0565b945068010000000000000000850291505b6000600c54111561282a57612774600c54846123e0565b600c819055508873ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600c54680100000000000000008602816127f657fe5b04600d60008282540192505081905550600c546801000000000000000086028161281c57fe5b048302820382039150612832565b82600c819055505b61287b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846123e0565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008284600d540203905080600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506129208c8b612cda565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156129eb57600080fd5b505af11580156129ff573d6000803e3d6000fd5b505050506040513d6020811015612a1557600080fd5b8101908080519060200190929190505050508a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8e8742612a8161159b565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3600e6000815480929190600101919050555083985050505050505050509392505050565b60008060026001840181612adf57fe5b0490508291505b81811015612b0e57809150600281828581612afd57fe5b040181612b0657fe5b049050612ae6565b50919050565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060239050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612cd35760028360ff161415612bc357601490505b60038360ff161415612bd457600f90505b60048360ff161480612be9575060058360ff16145b15612bf357600a90505b60068360ff161480612c08575060078360ff16145b15612c1257600590505b6000612c28612c2186846120bd565b60646120f4565b9050612c73600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826123e0565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060078460ff161015612cd157612cd0838660018701612b14565b5b505b5050505050565b6000612cf3612ceb42600b5461210d565b61a8c06120f4565b9050600081118015612d545750600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d6257506000600954115b15612ef757600954612d72610f73565b1015612d8757612d80610f73565b6009819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612df560095460026120f4565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612e5e57600080fd5b505af1158015612e72573d6000803e3d6000fd5b505050506040513d6020811015612e8857600080fd5b810190808051906020019092919050505050612ea760095460026120f4565b60098190555042600b819055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000612f17612f1085612f08612020565b60ff166120bd565b60646120f4565b9050612f2e612f278260286120bd565b60646120f4565b600960008282540192505081905550678ac7230489e800008410612f955782600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600b819055505b5050505056fe45524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a7231582093b9167674931a931d52b633f47f9069e7742b939824edab92d792d1ccf687de64736f6c634300051100320000000000000000000000003957dd168014a5d2e66a2d84b7c2577a543d59ed

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061023c5760003560e01c806364377fe41161013b578063c664f7f1116100b8578063dd62ed3e1161007c578063dd62ed3e14610be1578063e1456cb414610c59578063e4849b3214610cb1578063e9fad8ee14610cdf578063fdb5a03e14610ce95761023c565b8063c664f7f114610ad3578063cfb5df1814610b2b578063d6dda33d14610b49578063da7af32d14610b6b578063dc1df3f614610b895761023c565b806387d4f12a116100ff57806387d4f12a1461089f57806395d89b41146108e1578063a457c2d714610964578063a4c0ed36146109ca578063a9059cbb14610a6d5761023c565b806364377fe4146107a757806370a08231146107c5578063738fdd1a1461081d5780637e46c5a41461083f5780638620410b146108815761023c565b80633904d2b1116101c9578063527ba4081161018d578063527ba40814610635578063544736e61461067f57806356d399e8146106a15780635df345db146106bf578063642ad54a146107435761023c565b80633904d2b114610505578063395093511461055d5780633ccfd60b146105c3578063458e237d146105cd5780634b750334146106175761023c565b806318160ddd1161021057806318160ddd146103d557806323b872dd146103f35780632d3e474a146104795780632e01f949146104c3578063313ce567146104e15761023c565b806265318b1461025257806306fdde03146102aa578063095ea7b31461032d57806310d0ffdd14610393575b610244610cf3565b61024d57600080fd5b600080fd5b6102946004803603602081101561026857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfc565b6040518082815260200191505060405180910390f35b6102b2610d9c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f25780820151818401526020810190506102d7565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103796004803603604081101561034357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e3a565b604051808215151515815260200191505060405180910390f35b6103bf600480360360208110156103a957600080fd5b8101908080359060200190929190505050610e51565b6040518082815260200191505060405180910390f35b6103dd610e9a565b6040518082815260200191505060405180910390f35b61045f6004803603606081101561040957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea4565b604051808215151515815260200191505060405180910390f35b610481610f4d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104cb610f73565b6040518082815260200191505060405180910390f35b6104e9611054565b604051808260ff1660ff16815260200191505060405180910390f35b61050d611059565b604051808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390f35b6105a96004803603604081101561057357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110bb565b604051808215151515815260200191505060405180910390f35b6105cb611157565b005b6105d561139a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61061f6113c0565b6040518082815260200191505060405180910390f35b61063d611429565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610687610cf3565b604051808215151515815260200191505060405180910390f35b6106a961144f565b6040518082815260200191505060405180910390f35b610701600480360360208110156106d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611455565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107916004803603604081101561075957600080fd5b81019080803515159060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611488565b6040518082815260200191505060405180910390f35b6107af6114f0565b6040518082815260200191505060405180910390f35b610807600480360360208110156107db57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f6565b6040518082815260200191505060405180910390f35b61082561153f565b604051808215151515815260200191505060405180910390f35b61086b6004803603602081101561085557600080fd5b8101908080359060200190929190505050611548565b6040518082815260200191505060405180910390f35b61088961159b565b6040518082815260200191505060405180910390f35b6108cb600480360360208110156108b557600080fd5b810190808035906020019092919050505061160a565b6040518082815260200191505060405180910390f35b6108e9611631565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561092957808201518184015260208101905061090e565b50505050905090810190601f1680156109565780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109b06004803603604081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116cf565b604051808215151515815260200191505060405180910390f35b610a6b600480360360608110156109e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610a2757600080fd5b820183602082011115610a3957600080fd5b80359060200191846001830284011164010000000083111715610a5b57600080fd5b909192939192939050505061176b565b005b610ab960048036036040811015610a8357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181d565b604051808215151515815260200191505060405180910390f35b610b1560048036036020811015610ae957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118b4565b6040518082815260200191505060405180910390f35b610b336118cc565b6040518082815260200191505060405180910390f35b610b516118d2565b604051808215151515815260200191505060405180910390f35b610b736118e0565b6040518082815260200191505060405180910390f35b610bcb60048036036020811015610b9f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118e6565b6040518082815260200191505060405180910390f35b610c4360048036036040811015610bf757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118f8565b6040518082815260200191505060405180910390f35b610c9b60048036036020811015610c6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061197f565b6040518082815260200191505060405180910390f35b610cdd60048036036020811015610cc757600080fd5b8101908080359060200190929190505050611997565b005b610ce7611c4a565b005b610cf1611cb2565b005b60006001905090565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d54020381610d9457fe5b049050919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e325780601f10610e0757610100808354040283529160200191610e32565b820191906000526020600020905b815481529060010190602001808311610e1557829003601f168201915b505050505081565b6000610e47338484611e29565b6001905092915050565b600080610e72610e6b84610e63612020565b60ff166120bd565b60646120f4565b90506000610e80848361210d565b90506000610e8d82612124565b9050809350505050919050565b6000600c54905090565b6000610eb18383866121af565b50610f428433610f3d600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661210d565b611e29565b600190509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561101457600080fd5b505afa158015611028573d6000803e3d6000fd5b505050506040513d602081101561103e57600080fd5b8101908080519060200190929190505050905090565b601281565b6000806000600954925061106b610f73565b83111561107d5761107a610f73565b92505b6110888360026120f4565b9250600b5442039150600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050909192565b600061114d3384611148600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866123e0565b611e29565b6001905092915050565b6000611164600133611488565b1161116e57600080fd5b60003390506000611180600033611488565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561130c57600080fd5b505af1158015611320573d6000803e3d6000fd5b505050506040513d602081101561133657600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600c5414156113e0576402540be40064174876e800039050611426565b60006113f3670de0b6b3a76400006123fc565b9050600061140f61140883600560ff166120bd565b60646120f4565b9050600061141d838361210d565b90508093505050505b90565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60025481565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008261149d5761149882610cfc565b6114e8565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e683610cfc565b015b905092915050565b600b5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006001905090565b6000600c5482111561155957600080fd5b6000611564836123fc565b9050600061158061157983600560ff166120bd565b60646120f4565b9050600061158e838361210d565b9050809350505050919050565b600080600c5414156115bb576402540be40064174876e800019050611607565b60006115ce670de0b6b3a76400006123fc565b905060006115f06115e9836115e1612020565b60ff166120bd565b60646120f4565b905060006115fe83836123e0565b90508093505050505b90565b6000600c5482111561161b57600080fd5b6000611626836123fc565b905080915050919050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c75780601f1061169c576101008083540402835291602001916116c7565b820191906000526020600020905b8154815290600101906020018083116116aa57829003601f168201915b505050505081565b6000611761338461175c600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661210d565b611e29565b6001905092915050565b73514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117b757600080fd5b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505090506000601482015190506118148582886124a0565b50505050505050565b600080611829336118e6565b1161183357600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483111561188457600080fd5b6000611891600133611488565b11156118a05761189f611157565b5b6118ab8484836121af565b91505092915050565b60076020528060005260406000206000915090505481565b60095481565b60006005600e541115905090565b600e5481565b60006118f1826114f6565b9050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60066020528060005260406000206000915090505481565b60006119a2336118e6565b116119ac57600080fd5b6000339050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211156119fd57600080fd5b60008290506000611a0d826123fc565b90506000611a29611a2283600560ff166120bd565b60646120f4565b90506000611a37838361210d565b9050611a45600c548561210d565b600c81905550611a94600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561210d565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600068010000000000000000820285600d540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600c541115611b6e57611b67600d54600c5468010000000000000000860281611b6157fe5b046123e0565b600d819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38573ffffffffffffffffffffffffffffffffffffffff167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442611c1761159b565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a250505050505050565b60003390506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611ca657611ca581611997565b5b611cae611157565b5050565b6000611cbf600133611488565b11611cc957600080fd5b6000611cd6600033611488565b90506000339050680100000000000000008202600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611dcc836000846124a0565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612fbe6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612f9c6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000803461202c610f73565b0390506802b5e3af16b188000081116120495760169150506120ba565b68056bc75e2d6310000081116120635760159150506120ba565b6934f086f3b33b68400000811161207e5760149150506120ba565b693f870857a3e0e380000081116120995760139150506120ba565b694a1d89bb94865ec0000081116120b45760129150506120ba565b60119150505b90565b6000808314156120d057600090506120ee565b60008284029050828482816120e157fe5b04146120e957fe5b809150505b92915050565b60008082848161210057fe5b0490508091505092915050565b60008282111561211957fe5b818303905092915050565b600080670de0b6b3a764000064174876e8000290506000600c546402540be40061219a612194600c54866402540be40060020202026002600c540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a010101612acf565b8561210d565b816121a157fe5b040390508092505050919050565b6000808290506121fe600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561210d565b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061228a600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856123e0565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600d5402600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555083600d5402600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019150509392505050565b6000808284019050838110156123f257fe5b8091505092915050565b600080670de0b6b3a7640000830190506000670de0b6b3a7640000600c540190506000670de0b6b3a764000061248b670de0b6b3a764000085036402540be400670de0b6b3a7640000868161244d57fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038161247657fe5b046402540be400028161248557fe5b0461210d565b8161249257fe5b049050809350505050919050565b60008084116124ae57600080fd5b60006124ce6124c7866124bf612020565b60ff166120bd565b60646120f4565b905060006124ea6124e383601e60ff166120bd565b60646120f4565b905060006124f8838361210d565b90506000612506888561210d565b9050600061251382612124565b905060006801000000000000000084029050600061253c6125358c60046120bd565b60646120f4565b905060008311801561255a5750600c5461255884600c546123e0565b115b61256357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141580156125cc57508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff1614155b80156126195750600254600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b1561274257600073ffffffffffffffffffffffffffffffffffffffff16600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127315789600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b61273d89876001612b14565b61275d565b61274c85876123e0565b945068010000000000000000850291505b6000600c54111561282a57612774600c54846123e0565b600c819055508873ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600c54680100000000000000008602816127f657fe5b04600d60008282540192505081905550600c546801000000000000000086028161281c57fe5b048302820382039150612832565b82600c819055505b61287b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846123e0565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008284600d540203905080600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506129208c8b612cda565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156129eb57600080fd5b505af11580156129ff573d6000803e3d6000fd5b505050506040513d6020811015612a1557600080fd5b8101908080519060200190929190505050508a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8e8742612a8161159b565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390a3600e6000815480929190600101919050555083985050505050505050509392505050565b60008060026001840181612adf57fe5b0490508291505b81811015612b0e57809150600281828581612afd57fe5b040181612b0657fe5b049050612ae6565b50919050565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060239050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612cd35760028360ff161415612bc357601490505b60038360ff161415612bd457600f90505b60048360ff161480612be9575060058360ff16145b15612bf357600a90505b60068360ff161480612c08575060078360ff16145b15612c1257600590505b6000612c28612c2186846120bd565b60646120f4565b9050612c73600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826123e0565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060078460ff161015612cd157612cd0838660018701612b14565b5b505b5050505050565b6000612cf3612ceb42600b5461210d565b61a8c06120f4565b9050600081118015612d545750600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015612d6257506000600954115b15612ef757600954612d72610f73565b1015612d8757612d80610f73565b6009819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612df560095460026120f4565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612e5e57600080fd5b505af1158015612e72573d6000803e3d6000fd5b505050506040513d6020811015612e8857600080fd5b810190808051906020019092919050505050612ea760095460026120f4565b60098190555042600b819055506000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000612f17612f1085612f08612020565b60ff166120bd565b60646120f4565b9050612f2e612f278260286120bd565b60646120f4565b600960008282540192505081905550678ac7230489e800008410612f955782600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600b819055505b5050505056fe45524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a7231582093b9167674931a931d52b633f47f9069e7742b939824edab92d792d1ccf687de64736f6c63430005110032

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

0000000000000000000000003957dd168014a5d2e66a2d84b7c2577a543d59ed

-----Decoded View---------------
Arg [0] : _marketing (address): 0x3957dd168014a5D2E66a2d84b7c2577a543d59eD

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003957dd168014a5d2e66a2d84b7c2577a543d59ed


Deployed Bytecode Sourcemap

384:25127:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;384:25127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;886:11;:9;:11::i;:::-;878:20;;;;;;4412:8;;;13352:224;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13352:224:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2067:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2067:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8930:177;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8930:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14819:347;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14819:347:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12180:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10596:333;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10596:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2746:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12004:121;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2143:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16573:330;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9508:223;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9508:223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6724:651;;;:::i;:::-;;3334:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13643:502;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3700:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17089:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2661:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3251:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3251:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12813:254;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12813:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3371:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13139:138;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13139:138:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6261:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15272:367;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15272:367:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14211:503;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15719:374;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15719:374:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2107:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2107:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9739:233;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9739:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4603:450;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4603:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4603:450:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4603:450:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4603:450:0;;;;;;;;;;;;:::i;:::-;;10062:525;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10062:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3178:51;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3178:51:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3307:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16951:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3488:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12322:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12322:127:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8784:138;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8784:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3127:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3127:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7423:1304;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7423:1304:0;;;;;;;;;;;;;;;;;:::i;:::-;;6374:289;;;:::i;:::-;;5456:755;;;:::i;:::-;;17089:111;17131:4;17153;17146:11;;17089:111;:::o;13352:224::-;13420:7;2594;13527:10;:28;13538:16;13527:28;;;;;;;;;;;;;;;;13486:19;:37;13506:16;13486:37;;;;;;;;;;;;;;;;13468:15;;:55;13458:97;13447:121;;;;;;13440:128;;13352:224;;;:::o;2067:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8930:177::-;9006:4;9023:54;9039:10;9051:8;9061:15;9023;:54::i;:::-;9095:4;9088:11;;8930:177;;;;:::o;14819:347::-;14895:7;14915:18;14936:57;14949:38;14962:12;14976:10;:8;:10::i;:::-;14949:38;;:12;:38::i;:::-;14989:3;14936:12;:57::i;:::-;14915:78;;15004:18;15025:38;15038:12;15052:10;15025:12;:38::i;:::-;15004:59;;15074:23;15100:25;15114:10;15100:13;:25::i;:::-;15074:51;;15143:15;15136:22;;;;;14819:347;;;:::o;12180:91::-;12224:7;12251:12;;12244:19;;12180:91;:::o;10596:333::-;10701:4;10718:59;10735:10;10747:15;10764:12;10718:16;:59::i;:::-;;10788:111;10804:12;10818:10;10830:68;10843:11;:25;10855:12;10843:25;;;;;;;;;;;;;;;:37;10869:10;10843:37;;;;;;;;;;;;;;;;10882:15;10830:12;:68::i;:::-;10788:15;:111::i;:::-;10917:4;10910:11;;10596:333;;;;;:::o;2746:24::-;;;;;;;;;;;;;:::o;12004:121::-;12053:7;12080:12;;;;;;;;;;;:22;;;12111:4;12080:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12080:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12080:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12080:37:0;;;;;;;;;;;;;;;;12073:44;;12004:121;:::o;2143:35::-;2176:2;2143:35;:::o;16573:330::-;16617:15;16634:13;16649:24;16690:8;;16680:18;;16717;:16;:18::i;:::-;16707:7;:28;16703:74;;;16753:18;:16;:18::i;:::-;16743:28;;16703:74;16791:23;16804:7;16812:1;16791:12;:23::i;:::-;16781:33;;16837:17;;16831:3;:23;16823:31;;16878:17;;;;;;;;;;;16859:36;;16573:330;;;:::o;9508:223::-;9588:4;9605:96;9621:10;9633:7;9642:58;9655:11;:23;9667:10;9655:23;;;;;;;;;;;;;;;:32;9679:7;9655:32;;;;;;;;;;;;;;;;9689:10;9642:12;:58::i;:::-;9605:15;:96::i;:::-;9719:4;9712:11;;9508:223;;;;:::o;6724:651::-;786:1;754:29;766:4;772:10;754:11;:29::i;:::-;:33;746:42;;;;;;6801:24;6828:10;6801:37;;6849:18;6870:30;6882:5;6889:10;6870:11;:30::i;:::-;6849:51;;2594:7;7027:10;:22;6985:10;:28;6996:16;6985:28;;;;;;;;;;;;;;;;:65;;;;;;;;;;;7104:16;:34;7121:16;7104:34;;;;;;;;;;;;;;;;7090:48;;;;7186:1;7149:16;:34;7166:16;7149:34;;;;;;;;;;;;;;;:38;;;;7235:12;;;;;;;;;;;:21;;;7257:16;7275:10;7235:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7235:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7235:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7235:51:0;;;;;;;;;;;;;;;;;7338:16;7327:40;;;7356:10;7327:40;;;;;;;;;;;;;;;;;;799:1;;6724:651::o;3334:32::-;;;;;;;;;;;;;:::o;13643:502::-;13685:7;13805:1;13789:12;;:17;13785:353;;;2517:11;2429:12;13830:43;13823:50;;;;13785:353;13906:13;13922:19;13936:4;13922:13;:19::i;:::-;13906:35;;13956:18;13977:48;13990:29;14003:5;2267:1;13990:29;;:12;:29::i;:::-;14021:3;13977:12;:48::i;:::-;13956:69;;14040:18;14061:31;14074:5;14081:10;14061:12;:31::i;:::-;14040:52;;14116:10;14109:17;;;;;13643:502;;:::o;3700:63::-;;;;;;;;;;;;;:::o;2661:42::-;;;;:::o;3251:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;12813:254::-;12909:7;12936:21;:122;;13029:29;13041:16;13029:11;:29::i;:::-;12936:122;;;12992:16;:34;13009:16;12992:34;;;;;;;;;;;;;;;;12960:29;12972:16;12960:11;:29::i;:::-;:66;12936:122;12929:129;;12813:254;;;;:::o;3371:32::-;;;;:::o;13139:138::-;13205:7;13232:19;:37;13252:16;13232:37;;;;;;;;;;;;;;;;13225:44;;13139:138;;;:::o;6261:58::-;6291:4;6310;6303:11;;6261:58;:::o;15272:367::-;15347:7;15392:12;;15375:13;:29;;15367:38;;;;;;15416:13;15432:28;15446:13;15432;:28::i;:::-;15416:44;;15471:18;15492:48;15505:29;15518:5;2267:1;15505:29;;:12;:29::i;:::-;15536:3;15492:12;:48::i;:::-;15471:69;;15551:18;15572:31;15585:5;15592:10;15572:12;:31::i;:::-;15551:52;;15621:10;15614:17;;;;;15272:367;;;:::o;14211:503::-;14252:7;14372:1;14356:12;;:17;14352:355;;;2517:11;2429:12;14397:43;14390:50;;;;14352:355;14473:13;14489:19;14503:4;14489:13;:19::i;:::-;14473:35;;14523:18;14544:50;14557:31;14570:5;14577:10;:8;:10::i;:::-;14557:31;;:12;:31::i;:::-;14590:3;14544:12;:50::i;:::-;14523:71;;14609:18;14630:31;14643:5;14650:10;14630:12;:31::i;:::-;14609:52;;14685:10;14678:17;;;;;14211:503;;:::o;15719:374::-;15801:7;15846:12;;15829:13;:29;;15821:38;;;;;;15870:13;15886:28;15900:13;15886;:28::i;:::-;15870:44;;16080:5;16073:12;;;15719:374;;;:::o;2107:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9739:233::-;9824:4;9841:101;9857:10;9869:7;9878:63;9891:11;:23;9903:10;9891:23;;;;;;;;;;;;;;;:32;9915:7;9891:32;;;;;;;;;;;;;;;;9925:15;9878:12;:63::i;:::-;9841:15;:101::i;:::-;9960:4;9953:11;;9739:233;;;;:::o;4603:450::-;3616:42;4781:26;;:10;:26;;;4773:35;;;;;;4858:14;4875:5;;4858:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4858:22:0;;;;;;;;4891:19;4974:2;4972:1;4968:9;4962:16;4947:31;;5001:44;5016:6;5024:11;5037:7;5001:14;:44::i;:::-;;4603:450;;;;;;:::o;10062:525::-;10156:4;641:1;618:20;627:10;618:8;:20::i;:::-;:24;610:33;;;;;;10191:24;10218:10;10191:37;;10319:19;:37;10339:16;10319:37;;;;;;;;;;;;;;;;10300:15;:56;;10292:65;;;;;;10459:1;10427:29;10439:4;10445:10;10427:11;:29::i;:::-;:33;10423:76;;;10477:10;:8;:10::i;:::-;10423:76;10518:61;10535:10;10546:15;10562:16;10518;:61::i;:::-;10511:68;;;10062:525;;;;:::o;3178:51::-;;;;;;;;;;;;;;;;;:::o;3307:23::-;;;;:::o;16951:88::-;16993:4;17030:1;17015:13;;:16;;17008:23;;16951:88;:::o;3488:28::-;;;;:::o;12322:127::-;12387:7;12414:27;12424:16;12414:9;:27::i;:::-;12407:34;;12322:127;;;:::o;8784:138::-;8858:7;8885:11;:19;8897:6;8885:19;;;;;;;;;;;;;;;:29;8905:8;8885:29;;;;;;;;;;;;;;;;8878:36;;8784:138;;;;:::o;3127:44::-;;;;;;;;;;;;;;;;;:::o;7423:1304::-;641:1;618:20;627:10;618:8;:20::i;:::-;:24;610:33;;;;;;7518:24;7545:10;7518:37;;7626:19;:37;7646:16;7626:37;;;;;;;;;;;;;;;;7607:15;:56;;7599:65;;;;;;7675:15;7693;7675:33;;7719:13;7735:22;7749:7;7735:13;:22::i;:::-;7719:38;;7768:18;7789:48;7802:29;7815:5;2267:1;7802:29;;:12;:29::i;:::-;7833:3;7789:12;:48::i;:::-;7768:69;;7848:18;7869:31;7882:5;7889:10;7869:12;:31::i;:::-;7848:52;;7961:35;7974:12;;7988:7;7961:12;:35::i;:::-;7946:12;:50;;;;8047:60;8060:19;:37;8080:16;8060:37;;;;;;;;;;;;;;;;8099:7;8047:12;:60::i;:::-;8007:19;:37;8027:16;8007:37;;;;;;;;;;;;;;;:100;;;;8157:22;2594:7;8221:10;:22;8210:7;8192:15;;:25;:52;8157:88;;8288:15;8256:10;:28;8267:16;8256:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;8378:1;8363:12;;:16;8359:194;;;8471:70;8484:15;;8528:12;;2594:7;8502:10;:22;8501:39;;;;;;8471:12;:70::i;:::-;8453:15;:88;;;;8359:194;8622:3;8587:49;;8596:16;8587:49;;;8628:7;8587:49;;;;;;;;;;;;;;;;;;8664:16;8652:67;;;8682:7;8691:10;8703:3;8708:10;:8;:10::i;:::-;8652:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;654:1;;;;;;7423:1304;:::o;6374:289::-;6463:24;6490:10;6463:37;;6511:15;6529:19;:37;6549:16;6529:37;;;;;;;;;;;;;;;;6511:55;;6591:1;6581:7;:11;6577:30;;;6594:13;6599:7;6594:4;:13::i;:::-;6577:30;6645:10;:8;:10::i;:::-;6374:289;;:::o;5456:755::-;786:1;754:29;766:4;772:10;754:11;:29::i;:::-;:33;746:42;;;;;;5538:18;5559:30;5571:5;5578:10;5559:11;:30::i;:::-;5538:51;;5687:24;5714:10;5687:37;;2594:7;5778:10;:22;5735:10;:28;5746:16;5735:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;5860:16;:34;5877:16;5860:34;;;;;;;;;;;;;;;;5846:48;;;;5942:1;5905:16;:34;5922:16;5905:34;;;;;;;;;;;;;;;:38;;;;6032:15;6050:59;6065:10;6085:3;6092:16;6050:14;:59::i;:::-;6032:77;;6165:16;6150:53;;;6183:10;6195:7;6150:53;;;;;;;;;;;;;;;;;;;;;;;;799:1;;;5456:755::o;9115:384::-;9245:3;9227:22;;:6;:22;;;;9219:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9329:3;9309:24;;:8;:24;;;;9301:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9417:15;9385:11;:19;9397:6;9385:19;;;;;;;;;;;;;;;:29;9405:8;9385:29;;;;;;;;;;;;;;;:47;;;;9465:8;9448:43;;9457:6;9448:43;;;9475:15;9448:43;;;;;;;;;;;;;;;;;;9115:384;;;:::o;16101:421::-;16143:5;16158:14;16197:9;16175:18;:16;:18::i;:::-;:31;16158:48;;16229:5;16221:6;:13;16217:48;;16253:2;16246:9;;;;;16217:48;16285:6;16277;:14;16273:49;;16310:2;16303:9;;;;;16273:49;16342:5;16334:6;:13;16330:48;;16366:2;16359:9;;;;;16330:48;16398:5;16390:6;:13;16386:48;;16422:2;16415:9;;;;;16386:48;16454:5;16446:6;:13;16442:48;;16478:2;16471:9;;;;;16442:48;16507:2;16500:9;;;16101:421;;:::o;25708:208::-;25766:7;25795:1;25790;:6;25786:47;;;25820:1;25813:8;;;;25786:47;25843:9;25859:1;25855;:5;25843:17;;25887:1;25882;25878;:5;;;;;;:10;25871:18;;;;25907:1;25900:8;;;25708:208;;;;;:::o;26011:288::-;26069:7;26168:9;26184:1;26180;:5;;;;;;26168:17;;26290:1;26283:8;;;26011:288;;;;:::o;26425:123::-;26483:7;26515:1;26510;:6;;26503:14;;;;26539:1;26535;:5;26528:12;;26425:123;;;;:::o;23331:936::-;23392:7;23412:26;23462:4;2429:12;23441:25;23412:54;;23477:23;24211:12;;2517:11;23591:563;23627:465;24052:12;;24033:18;2517:11;24004:1;:26;:47;:60;23939:1;23923:12;;:17;23917:1;2517:11;23891:27;23890:51;23822:4;23814:5;:12;23805:4;2517:11;23780:29;23775:1;:35;:52;23711:1;23689:18;:23;23688:140;:254;:377;23627:4;:465::i;:::-;24117:18;23591:12;:563::i;:::-;23528:668;;;;;;23513:711;23477:747;;24244:15;24237:22;;;;23331:936;;;:::o;10938:795::-;11050:4;11085:24;11112:12;11085:39;;11205:68;11218:19;:37;11238:16;11218:37;;;;;;;;;;;;;;;;11257:15;11205:12;:68::i;:::-;11165:19;:37;11185:16;11165:37;;;;;;;;;;;;;;;:108;;;;11318:62;11331:19;:31;11351:10;11331:31;;;;;;;;;;;;;;;;11364:15;11318:12;:62::i;:::-;11284:19;:31;11304:10;11284:31;;;;;;;;;;;;;;;:96;;;;11490:15;11472;;:33;11430:10;:28;11441:16;11430:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;11571:15;11553;;:33;11517:10;:22;11528:10;11517:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;11655:10;11628:55;;11637:16;11628:55;;;11667:15;11628:55;;;;;;;;;;;;;;;;;;11721:4;11714:11;;;10938:795;;;;;:::o;26623:147::-;26681:7;26701:9;26717:1;26713;:5;26701:17;;26741:1;26736;:6;;26729:14;;;;26761:1;26754:8;;;26623:147;;;;:::o;24536:704::-;24599:7;24619:15;24648:4;24638:7;:14;24619:34;;24664:20;24703:4;24688:12;;:19;24664:44;;24719:21;25194:4;24807:375;25077:4;25067:7;:14;2517:11;24982:4;24967:12;:19;;;;;;2517:11;24941:46;2429:12;24919:69;24888:152;24861:221;25166:1;25157:4;25146:7;25142:1;25131:7;:12;:22;25130:31;;;;;;2517:11;25104:58;25103:64;;;;;;24807:12;:375::i;:::-;:391;;;;;;24719:480;;25219:13;25212:20;;;;;24536:704;;;:::o;17425:3749::-;17538:7;17600:1;17584:13;:17;17575:27;;;;;;17617;17647:58;17660:39;17673:13;17688:10;:8;:10::i;:::-;17660:39;;:12;:39::i;:::-;17701:3;17647:12;:58::i;:::-;17617:88;;17716:22;17741:66;17754:47;17767:19;2345:2;17754:47;;:12;:47::i;:::-;17803:3;17741:12;:66::i;:::-;17716:91;;17818:18;17839:49;17852:19;17873:14;17839:12;:49::i;:::-;17818:70;;17899:18;17920:48;17933:13;17948:19;17920:12;:48::i;:::-;17899:69;;17979:23;18005:25;18019:10;18005:13;:25::i;:::-;17979:51;;18041:12;2594:7;18056:10;:22;18041:37;;18083:18;18104:49;18117:30;18130:13;18145:1;18117:12;:30::i;:::-;18149:3;18104:12;:49::i;:::-;18083:70;;18531:1;18513:15;:19;:81;;;;;18582:12;;18536:43;18549:15;18566:12;;18536;:43::i;:::-;:58;18513:81;18505:90;;;;;;18744:3;18721:27;;:11;:27;;;;:106;;;;;18811:16;18796:31;;:11;:31;;;;18721:106;:303;;;;;19006:18;;18970:19;:32;18990:11;18970:32;;;;;;;;;;;;;;;;:54;;18721:303;18658:835;;;19124:3;19084:44;;:10;:28;19095:16;19084:28;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;19080:106;;;19168:11;19137:10;:28;19148:16;19137:28;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19080:106;19191:55;19210:16;19228:14;19244:1;19191:18;:55::i;:::-;18658:835;;;19397:40;19410:10;19422:14;19397:12;:40::i;:::-;19384:53;;2594:7;19459:10;:22;19452:29;;18658:835;19571:1;19556:12;;:16;19552:724;;;19643:43;19656:12;;19670:15;19643:12;:43::i;:::-;19628:12;:58;;;;19743:16;19720:57;;19737:3;19720:57;;;19761:15;19720:57;;;;;;;;;;;;;;;;;;19963:12;;2594:7;19938:10;:22;:37;;;;;;19918:15;;:58;;;;;;;;;;;20147:12;;2594:7;20122:10;:22;:37;;;;;;20103:15;:57;20095:4;:66;20087:4;:75;20080:82;;19552:724;;;20249:15;20234:12;:30;;;;19552:724;20404:68;20417:19;:37;20437:16;20417:37;;;;;;;;;;;;;;;;20456:15;20404:12;:68::i;:::-;20364:19;:37;20384:16;20364:37;;;;;;;;;;;;;;;:108;;;;20653:22;20724:4;20706:15;20688;;:33;:40;20653:76;;20772:15;20740:10;:28;20751:16;20740:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;20820:49;20837:13;20852:16;20820;:49::i;:::-;20902:12;;;;;;;;;;;:21;;;20924:9;;;;;;;;;;;20935:10;20902:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20902:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20902:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20902:44:0;;;;;;;;;;;;;;;;;21053:11;20987:95;;21003:16;20987:95;;;21021:13;21036:15;21066:3;21071:10;:8;:10::i;:::-;20987:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21118:13;;:15;;;;;;;;;;;;;21151;21144:22;;;;;;;;;;17425:3749;;;;;:::o;25295:209::-;25343:9;25365;25387:1;25382;25378;:5;25377:11;;;;;;25365:23;;25403:1;25399:5;;25417:80;25428:1;25424;:5;25417:80;;;25450:1;25446:5;;25484:1;25479;25475;25471;:5;;;;;;:9;25470:15;;;;;;25466:19;;25417:80;;;25295:209;;;;:::o;21342:686::-;21448:19;21470:10;:28;21481:16;21470:28;;;;;;;;;;;;;;;;;;;;;;;;;21448:50;;21503:16;21522:2;21503:21;;21556:3;21533:27;;:11;:27;;;21529:495;;21582:1;21572:6;:11;;;21568:30;;;21596:2;21585:13;;21568:30;21618:1;21608:6;:11;;;21604:30;;;21632:2;21621:13;;21604:30;21654:1;21644:6;:11;;;:26;;;;21669:1;21659:6;:11;;;21644:26;21640:45;;;21683:2;21672:13;;21640:45;21705:1;21695:6;:11;;;:26;;;;21720:1;21710:6;:11;;;21695:26;21691:44;;;21734:1;21723:12;;21691:44;21741:25;21769:57;21782:38;21795:14;21811:8;21782:12;:38::i;:::-;21822:3;21769:12;:57::i;:::-;21741:85;;21864:62;21877:16;:29;21894:11;21877:29;;;;;;;;;;;;;;;;21908:17;21864:12;:62::i;:::-;21832:16;:29;21849:11;21832:29;;;;;;;;;;;;;;;:94;;;;21945:1;21936:6;:10;;;21932:87;;;21955:57;21974:11;21987:14;22010:1;22003:6;:8;21955:18;:57::i;:::-;21932:87;21529:495;;21342:686;;;;;:::o;22211:819::-;22300:13;22316:60;22329:36;22342:3;22347:17;;22329:12;:36::i;:::-;22367:8;22316:12;:60::i;:::-;22300:76;;22393:1;22385:5;:9;:46;;;;;22427:3;22398:33;;:17;;;;;;;;;;;:33;;;;22385:46;:62;;;;;22446:1;22435:8;;:12;22385:62;22381:361;;;22498:8;;22477:18;:16;:18::i;:::-;:29;22473:78;;;22526:18;:16;:18::i;:::-;22515:8;:29;;;;22473:78;22562:12;;;;;;;;;;;:21;;;22584:17;;;;;;;;;;;22603:24;22616:8;;22625:1;22603:12;:24::i;:::-;22562:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22562:66:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22562:66:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22562:66:0;;;;;;;;;;;;;;;;;22645:24;22658:8;;22667:1;22645:12;:24::i;:::-;22634:8;:35;;;;22695:3;22675:17;:23;;;;22732:3;22704:17;;:32;;;;;;;;;;;;;;;;;;22381:361;22750:27;22780:58;22793:39;22806:13;22821:10;:8;:10::i;:::-;22793:39;;:12;:39::i;:::-;22834:3;22780:12;:58::i;:::-;22750:88;;22855:56;22868:37;22881:19;22902:2;22868:12;:37::i;:::-;22907:3;22855:12;:56::i;:::-;22843:8;;:68;;;;;;;;;;;22941:5;22924:13;:22;22920:106;;22975:16;22955:17;;:36;;;;;;;;;;;;;;;;;;23017:3;22997:17;:23;;;;22920:106;22211:819;;;;:::o

Swarm Source

bzzr://93b9167674931a931d52b633f47f9069e7742b939824edab92d792d1ccf687de
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.