ETH Price: $2,340.19 (-5.35%)

Token

Ether Capital Fund (ECF)
 

Overview

Max Total Supply

7,423.901960030530853717 ECF

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.011626445152634956 ECF

Value
$0.00
0x763b2bbe7b3c193e1396a5c5693b1e86f203a4b9
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:
ETHCapitalFund

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.25;

/*
* https://ethcapital.fund
*
* DISCORD - https://discord.gg/pj5zFwc
* Telegram News - https://t.me/ethcapitalfund
*
* ETH Capital Fund Concept
*
* [✓] 20% Withdraw fee
* [✓] 20% Deposit fee
* [✓] 0% Token transfer
* [✓] Multi-level Refferal System - 10% from total purchase
*  *  [✓]  1st level 50% Refferal (5% from total purchase)
*  *  [✓]  2nd level 30% Refferal (3% from total purchase)
*  *  [✓]  3rd level 20% Refferal (2% from total purchase)
*/

contract ETHCapitalFund {

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

    modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }

    modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }

    // administrators can:
    // -> disable initial stage
    // they CANNOT:
    // -> take funds
    // -> disable withdrawals
    // -> kill the contract
    // -> change the price of tokens
    modifier onlyAdministrator(){
        require(administrators[msg.sender]);
        _;
    }

    // ensures that the first tokens in the contract will be equally distributed
    // meaning, no divine dump will be ever possible
    // result: healthy longevity.
    modifier antiEarlyWhale(uint256 _amountOfEthereum){
      address _customerAddress = msg.sender;

      // are we still in the vulnerable phase?
      // if so, enact anti early whale protocol
      if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){
          require(
              // is the customer in the ambassador list?
              ambassadors_[_customerAddress] == true &&

              // does the customer purchase exceed the max ambassador quota?
              (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_

          );

          // updated the accumulated quota
          ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum);

          // execute
          _;
      } else {
          // in case the ether count drops low, the ambassador phase won't reinitiate
          onlyAmbassadors = false;
          _;
      }

    }



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

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

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

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

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );

    event onRefferalUse(
        address indexed refferer,
        uint8  indexed level,
        uint256 ethereumCollected,
        address indexed customerAddress,
        uint256 timestamp
    );

    string public name = "Ether Capital Fund";
    string public symbol = "ECF";
    uint8 constant public decimals = 18;
    uint8 constant internal entryFee_ = 20;
    uint8 constant internal exitFee_ = 20;
    uint8 constant internal maxRefferalFee_ = 10; // 10% from total sum (lev1 - 5%, lev2 - 3%, lev3 - 2%)
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2 ** 64;
    uint256 public stakingRequirement = 50e18;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;

    mapping(address => address) public stickyRef;

    mapping(address => bool) public administrators;
    // ambassador program
    mapping(address => bool) internal ambassadors_;
    mapping(address => uint256) internal ambassadorAccumulatedQuota_;
    uint256 constant internal ambassadorMaxPurchase_ = 100 ether;
    uint256 constant internal ambassadorQuota_ = 100 ether;
    bool public onlyAmbassadors = true;

    constructor() public {
        // add administrators here
        administrators[0x19647aC87C5F932d04c91DfF2B8Ed325E13de6Ca] = true;

        // add the ambassadors here.
        ambassadors_[0x82293FD3bAaE472Cc0C9F914918780962383294D] = true;
    }

    function buy(address _referredBy) public payable {
        purchaseTokens(msg.value, _referredBy);
    }

    function() payable public {
        purchaseTokens(msg.value, 0x0);
    }

    function reinvest() onlyStronghands public {
        uint256 _dividends = myDividends(false);
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        uint256 _tokens = purchaseTokens(_dividends, 0x0);
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }

    function exit() public {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);
        withdraw();
    }

    function withdraw() onlyStronghands public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false);
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        _customerAddress.transfer(_dividends);
        emit onWithdraw(_customerAddress, _dividends);
    }

    function sell(uint256 _amountOfTokens) onlyBagholders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        emit onTokenSell(_customerAddress, _tokens, _taxedEthereum, now, buyPrice());
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        // setup
        address _customerAddress = msg.sender;

        // make sure we have the requested tokens
        // also disables transfers until ambassador phase is over
        // ( we dont want whale premines )
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        // withdraw all outstanding dividends first
        if(myDividends(true) > 0) withdraw();

        // 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);
        return true;
    }

    /**
    * In case the amassador quota is not met, the administrator can manually disable the ambassador phase.
    */
    function disableInitialStage()
        onlyAdministrator()
        public
    {
        onlyAmbassadors = false;
    }


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

    function totalSupply() public view returns (uint256) {
        return tokenSupply_;
    }

    function myTokens() public view returns (uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }

    function myDividends(bool _includeReferralBonus) public view returns (uint256) {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }

    function balanceOf(address _customerAddress) public view returns (uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }

    function dividendsOf(address _customerAddress) public view returns (uint256) {
        return (uint256) ((int256) (profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }

    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 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    function buyPrice() public view returns (uint256) {
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, entryFee_), 100);
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    function calculateTokensReceived(uint256 _ethereumToSpend) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereumToSpend, entryFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    function calculateEthereumReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }

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

    function handleRefferals(address _referredBy, uint _referralBonus, uint _undividedDividends) internal returns (uint){
        uint _dividends = _undividedDividends;
        address _level1Referrer = stickyRef[msg.sender];

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

            // no cheating!
            _level1Referrer != msg.sender &&

            // does the referrer have at least X whole tokens?
            // i.e is the referrer a godly chad masternode
            tokenBalanceLedger_[_level1Referrer] >= stakingRequirement
        ){
            // wealth redistribution
            if (stickyRef[msg.sender] == address(0x0)){
                stickyRef[msg.sender] = _level1Referrer;
            }

            // level 1 refs - 50%
            uint256 ethereumCollected =  _referralBonus/2;
            referralBalance_[_level1Referrer] = SafeMath.add(referralBalance_[_level1Referrer], ethereumCollected);
            _dividends = SafeMath.sub(_dividends, ethereumCollected);
            emit onRefferalUse(_level1Referrer, 1, ethereumCollected, msg.sender, now);

            address _level2Referrer = stickyRef[_level1Referrer];

            if (_level2Referrer != address(0x0) && tokenBalanceLedger_[_level2Referrer] >= stakingRequirement){
                // level 2 refs - 30%
                ethereumCollected =  (_referralBonus*3)/10;
                referralBalance_[_level2Referrer] = SafeMath.add(referralBalance_[_level2Referrer], ethereumCollected);
                _dividends = SafeMath.sub(_dividends, ethereumCollected);
                emit onRefferalUse(_level2Referrer, 2, ethereumCollected, _level1Referrer, now);
                address _level3Referrer = stickyRef[_level2Referrer];

                if (_level3Referrer != address(0x0) && tokenBalanceLedger_[_level3Referrer] >= stakingRequirement){
                    //level 3 refs - 20%
                    ethereumCollected =  (_referralBonus*2)/10;
                    referralBalance_[_level3Referrer] = SafeMath.add(referralBalance_[_level3Referrer], ethereumCollected);
                    _dividends = SafeMath.sub(_dividends, ethereumCollected);
                    emit onRefferalUse(_level3Referrer, 3, ethereumCollected, _level2Referrer, now);
                }
            }
        }
        return _dividends;
    }

    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        antiEarlyWhale(_incomingEthereum)
        internal
        returns (uint256) {
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _referralBonus = SafeMath.div(SafeMath.mul(_incomingEthereum, maxRefferalFee_), 100);
        uint256 _dividends = handleRefferals(_referredBy, _referralBonus, _undividedDividends);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        emit onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy, now, buyPrice());

        return _amountOfTokens;
    }

    function ethereumToTokens_(uint256 _ethereum) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
            (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                (_tokenPriceInitial ** 2)
                                +
                                (2 * (tokenPriceIncremental_ * 1e18) * (_ethereum * 1e18))
                                +
                                ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                                +
                                (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                            )
                        ), _tokenPriceInitial
                    )
                ) / (tokenPriceIncremental_)
            ) - (tokenSupply_);

        return _tokensReceived;
    }

    function tokensToEthereum_(uint256 _tokens) internal view returns (uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
            (
                SafeMath.sub(
                    (
                        (
                            (
                                tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                            ) - tokenPriceIncremental_
                        ) * (tokens_ - 1e18)
                    ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
                )
                / 1e18);

        return _etherReceived;
    }

    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;
        }
    }


}

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

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

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"stickyRef","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"refferer","type":"address"},{"indexed":true,"name":"level","type":"uint8"},{"indexed":false,"name":"ethereumCollected","type":"uint256"},{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onRefferalUse","type":"event"}]

60c0604052601260808190527f4574686572204361706974616c2046756e64000000000000000000000000000060a09081526200004091600091906200012e565b506040805180820190915260038082527f4543460000000000000000000000000000000000000000000000000000000000602090920191825262000087916001916200012e565b506802b5e3af16b1880000600255600c805460ff19166001179055348015620000af57600080fd5b507f45c3b9c6d211eaf52c3998817a50901c95daac2264a5deb87530b45dadef252c8054600160ff1991821681179092557382293fd3baae472cc0c9f914918780962383294d600052600a6020527fb6b55fe34c0a8f2283fcae9d65d63a66927ae664620789f9a53aa143f7b852c280549091169091179055620001d3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017157805160ff1916838001178555620001a1565b82800160010185558215620001a1579182015b82811115620001a157825182559160200191906001019062000184565b50620001af929150620001b3565b5090565b620001d091905b80821115620001af5760008155600101620001ba565b90565b61153480620001e36000396000f30060806040526004361061013c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461014a57806306fdde031461017d57806310d0ffdd1461020757806318160ddd1461021f578063226093731461023457806327defa1f1461024c578063313ce567146102755780633ccfd60b146102a05780634b750334146102b75780634d6352e5146102cc57806356d399e814610309578063688abbf71461031e5780636b2f46321461033857806370a082311461034d57806376be15851461036e5780638620410b1461038f578063949e8acd146103a457806395d89b41146103b9578063a8e04f34146103ce578063a9059cbb146103e3578063e4849b3214610407578063e9fad8ee1461041f578063f088d54714610434578063fdb5a03e14610448575b61014734600061045d565b50005b34801561015657600080fd5b5061016b600160a060020a0360043516610895565b60408051918252519081900360200190f35b34801561018957600080fd5b506101926108d0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cc5781810151838201526020016101b4565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021357600080fd5b5061016b60043561095e565b34801561022b57600080fd5b5061016b610991565b34801561024057600080fd5b5061016b600435610997565b34801561025857600080fd5b506102616109d3565b604080519115158252519081900360200190f35b34801561028157600080fd5b5061028a6109dc565b6040805160ff9092168252519081900360200190f35b3480156102ac57600080fd5b506102b56109e1565b005b3480156102c357600080fd5b5061016b610ab4565b3480156102d857600080fd5b506102ed600160a060020a0360043516610b0b565b60408051600160a060020a039092168252519081900360200190f35b34801561031557600080fd5b5061016b610b26565b34801561032a57600080fd5b5061016b6004351515610b2c565b34801561034457600080fd5b5061016b610b6f565b34801561035957600080fd5b5061016b600160a060020a0360043516610b74565b34801561037a57600080fd5b50610261600160a060020a0360043516610b8f565b34801561039b57600080fd5b5061016b610ba4565b3480156103b057600080fd5b5061016b610bef565b3480156103c557600080fd5b50610192610c01565b3480156103da57600080fd5b506102b5610c5b565b3480156103ef57600080fd5b50610261600160a060020a0360043516602435610c85565b34801561041357600080fd5b506102b5600435610db4565b34801561042b57600080fd5b506102b5610f26565b6102b5600160a060020a0360043516610f53565b34801561045457600080fd5b506102b5610f5d565b60008060008060008060008060008a6000339050600c60009054906101000a900460ff16801561049f575068056bc75e2d631000008261049b610b6f565b0311155b156106e157600160a060020a0381166000908152600a602052604090205460ff16151560011480156104f55750600160a060020a0381166000908152600b602052604090205468056bc75e2d6310000090830111155b151561050057600080fd5b600160a060020a0381166000908152600b60205260409020546105239083611013565b600160a060020a0382166000908152600b602052604090205533995061055461054d8e6014611029565b6064611054565b985061056461054d8e600a611029565b97506105718c898b61106b565b965061057d8d8a6113bd565b9550610588866113cf565b945068010000000000000000870293506000851180156105b257506006546105b08682611013565b115b15156105bd57600080fd5b60006006541115610621576105d460065486611013565b60068190556801000000000000000088028115156105ee57fe5b6007805492909104909101905560065468010000000000000000880281151561061357fe5b048502840384039350610627565b60068590555b600160a060020a038a1660009081526003602052604090205461064a9086611013565b600160a060020a03808c166000818152600360209081526040808320959095556007546005909152939020805493890288900393840190559194508d16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8f88426106b4610ba4565b604080519485526020850193909352838301919091526060830152519081900360800190a3849a50610885565b600c805460ff191690553399506106fc61054d8e6014611029565b985061070c61054d8e600a611029565b97506107198c898b61106b565b96506107258d8a6113bd565b9550610730866113cf565b9450680100000000000000008702935060008511801561075a57506006546107588682611013565b115b151561076557600080fd5b600060065411156107c95761077c60065486611013565b600681905568010000000000000000880281151561079657fe5b600780549290910490910190556006546801000000000000000088028115156107bb57fe5b0485028403840393506107cf565b60068590555b600160a060020a038a166000908152600360205260409020546107f29086611013565b600160a060020a03808c166000818152600360209081526040808320959095556007546005909152939020805493890288900393840190559194508d16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8f884261085c610ba4565b604080519485526020850193909352838301919091526060830152519081900360800190a3849a505b5050505050505050505092915050565b600160a060020a0316600090815260056020908152604080832054600390925290912054600754680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b505050505081565b600080808061097161054d866014611029565b925061097d85846113bd565b9150610988826113cf565b95945050505050565b60065490565b60008060008060065485111515156109ae57600080fd5b6109b785611467565b92506109c761054d846014611029565b915061098883836113bd565b600c5460ff1681565b601281565b60008060006109f06001610b2c565b116109fa57600080fd5b339150610a076000610b2c565b600160a060020a038316600081815260056020908152604080832080546801000000000000000087020190556004909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610a70573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b60008060008060065460001415610ad2576414f46b04009350610b05565b610ae3670de0b6b3a7640000611467565b9250610af361054d846014611029565b9150610aff83836113bd565b90508093505b50505090565b600860205260009081526040902054600160a060020a031681565b60025481565b60003382610b4257610b3d81610895565b610b66565b600160a060020a038116600090815260046020526040902054610b6482610895565b015b91505b50919050565b303190565b600160a060020a031660009081526003602052604090205490565b60096020526000908152604090205460ff1681565b60008060008060065460001415610bc25764199c82cc009350610b05565b610bd3670de0b6b3a7640000611467565b9250610be361054d846014611029565b9150610aff8383611013565b600033610bfb81610b74565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109565780601f1061092b57610100808354040283529160200191610956565b3360009081526009602052604090205460ff161515610c7957600080fd5b600c805460ff19169055565b6000806000610c92610bef565b11610c9c57600080fd5b5033600081815260036020526040902054831115610cb957600080fd5b6000610cc56001610b2c565b1115610cd357610cd36109e1565b600160a060020a038116600090815260036020526040902054610cf690846113bd565b600160a060020a038083166000908152600360205260408082209390935590861681522054610d259084611013565b600160a060020a0385811660008181526003602090815260408083209590955560078054948716808452600583528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3600191505b5092915050565b6000806000806000806000610dc7610bef565b11610dd157600080fd5b33600081815260036020526040902054909650871115610df057600080fd5b869450610dfc85611467565b9350610e0c61054d856014611029565b9250610e1884846113bd565b9150610e26600654866113bd565b600655600160a060020a038616600090815260036020526040902054610e4c90866113bd565b600160a060020a03871660009081526003602090815260408083209390935560075460059091529181208054928802680100000000000000008602019283900390556006549192501015610ec257610ebe600754600654680100000000000000008602811515610eb857fe5b04611013565b6007555b85600160a060020a03167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442610ef8610ba4565b604080519485526020850193909352838301919091526060830152519081900360800190a250505050505050565b3360008181526003602052604081205490811115610f4757610f4781610db4565b610f4f6109e1565b5050565b610f4f348261045d565b600080600080610f6d6001610b2c565b11610f7757600080fd5b610f816000610b2c565b33600081815260056020908152604080832080546801000000000000000087020190556004909152812080549082905590920194509250610fc390849061045d565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b60008282018381101561102257fe5b9392505050565b60008083151561103c5760009150610dad565b5082820282848281151561104c57fe5b041461102257fe5b600080828481151561106257fe5b04949350505050565b336000908152600860205260408120548290600160a060020a0316828080831515611094578893505b600160a060020a038416158015906110b55750600160a060020a0384163314155b80156110db5750600254600160a060020a03851660009081526003602052604090205410155b156113b05733600090815260086020526040902054600160a060020a0316151561113557336000908152600860205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b600160a060020a03841660009081526004602052604090205460028904935061115e9084611013565b600160a060020a03851660009081526004602052604090205561118185846113bd565b6040805185815242602082015281519297503392600192600160a060020a038916927fbfa263804571bb327880c78b827af07c8f427b004b9017c33915e2adaeca5011929081900390910190a4600160a060020a0380851660009081526008602052604090205416915081158015906112145750600254600160a060020a03831660009081526003602052604090205410155b156113b057600160a060020a038216600090815260046020526040902054600a60038a020493506112459084611013565b600160a060020a03831660009081526004602052604090205561126885846113bd565b945083600160a060020a0316600283600160a060020a03167fbfa263804571bb327880c78b827af07c8f427b004b9017c33915e2adaeca50118642604051808381526020018281526020019250505060405180910390a450600160a060020a038082166000908152600860205260409020541680158015906113045750600254600160a060020a03821660009081526003602052604090205410155b156113b057600160a060020a038116600090815260046020526040902054600a60028a020493506113359084611013565b600160a060020a03821660009081526004602052604090205561135885846113bd565b945081600160a060020a0316600382600160a060020a03167fbfa263804571bb327880c78b827af07c8f427b004b9017c33915e2adaeca50118642604051808381526020018281526020019250505060405180910390a45b5092979650505050505050565b6000828211156113c957fe5b50900390565b6006546000906c01431e0fae6d7217caa00000009082906402540be40061145461144e730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e400000000000000016114d3565b856113bd565b81151561145d57fe5b0403949350505050565b600654600090670de0b6b3a76400008381019181019083906114c06414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be400028115156114ba57fe5b046113bd565b8115156114c957fe5b0495945050505050565b80600260018201045b81811015610b695780915060028182858115156114f557fe5b040181151561150057fe5b0490506114dc5600a165627a7a72305820aca0f14ff674273caff0c3d0f0c520154c514320803a869bbedf85772576dafd0029

Deployed Bytecode

0x60806040526004361061013c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461014a57806306fdde031461017d57806310d0ffdd1461020757806318160ddd1461021f578063226093731461023457806327defa1f1461024c578063313ce567146102755780633ccfd60b146102a05780634b750334146102b75780634d6352e5146102cc57806356d399e814610309578063688abbf71461031e5780636b2f46321461033857806370a082311461034d57806376be15851461036e5780638620410b1461038f578063949e8acd146103a457806395d89b41146103b9578063a8e04f34146103ce578063a9059cbb146103e3578063e4849b3214610407578063e9fad8ee1461041f578063f088d54714610434578063fdb5a03e14610448575b61014734600061045d565b50005b34801561015657600080fd5b5061016b600160a060020a0360043516610895565b60408051918252519081900360200190f35b34801561018957600080fd5b506101926108d0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cc5781810151838201526020016101b4565b50505050905090810190601f1680156101f95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021357600080fd5b5061016b60043561095e565b34801561022b57600080fd5b5061016b610991565b34801561024057600080fd5b5061016b600435610997565b34801561025857600080fd5b506102616109d3565b604080519115158252519081900360200190f35b34801561028157600080fd5b5061028a6109dc565b6040805160ff9092168252519081900360200190f35b3480156102ac57600080fd5b506102b56109e1565b005b3480156102c357600080fd5b5061016b610ab4565b3480156102d857600080fd5b506102ed600160a060020a0360043516610b0b565b60408051600160a060020a039092168252519081900360200190f35b34801561031557600080fd5b5061016b610b26565b34801561032a57600080fd5b5061016b6004351515610b2c565b34801561034457600080fd5b5061016b610b6f565b34801561035957600080fd5b5061016b600160a060020a0360043516610b74565b34801561037a57600080fd5b50610261600160a060020a0360043516610b8f565b34801561039b57600080fd5b5061016b610ba4565b3480156103b057600080fd5b5061016b610bef565b3480156103c557600080fd5b50610192610c01565b3480156103da57600080fd5b506102b5610c5b565b3480156103ef57600080fd5b50610261600160a060020a0360043516602435610c85565b34801561041357600080fd5b506102b5600435610db4565b34801561042b57600080fd5b506102b5610f26565b6102b5600160a060020a0360043516610f53565b34801561045457600080fd5b506102b5610f5d565b60008060008060008060008060008a6000339050600c60009054906101000a900460ff16801561049f575068056bc75e2d631000008261049b610b6f565b0311155b156106e157600160a060020a0381166000908152600a602052604090205460ff16151560011480156104f55750600160a060020a0381166000908152600b602052604090205468056bc75e2d6310000090830111155b151561050057600080fd5b600160a060020a0381166000908152600b60205260409020546105239083611013565b600160a060020a0382166000908152600b602052604090205533995061055461054d8e6014611029565b6064611054565b985061056461054d8e600a611029565b97506105718c898b61106b565b965061057d8d8a6113bd565b9550610588866113cf565b945068010000000000000000870293506000851180156105b257506006546105b08682611013565b115b15156105bd57600080fd5b60006006541115610621576105d460065486611013565b60068190556801000000000000000088028115156105ee57fe5b6007805492909104909101905560065468010000000000000000880281151561061357fe5b048502840384039350610627565b60068590555b600160a060020a038a1660009081526003602052604090205461064a9086611013565b600160a060020a03808c166000818152600360209081526040808320959095556007546005909152939020805493890288900393840190559194508d16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8f88426106b4610ba4565b604080519485526020850193909352838301919091526060830152519081900360800190a3849a50610885565b600c805460ff191690553399506106fc61054d8e6014611029565b985061070c61054d8e600a611029565b97506107198c898b61106b565b96506107258d8a6113bd565b9550610730866113cf565b9450680100000000000000008702935060008511801561075a57506006546107588682611013565b115b151561076557600080fd5b600060065411156107c95761077c60065486611013565b600681905568010000000000000000880281151561079657fe5b600780549290910490910190556006546801000000000000000088028115156107bb57fe5b0485028403840393506107cf565b60068590555b600160a060020a038a166000908152600360205260409020546107f29086611013565b600160a060020a03808c166000818152600360209081526040808320959095556007546005909152939020805493890288900393840190559194508d16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8f884261085c610ba4565b604080519485526020850193909352838301919091526060830152519081900360800190a3849a505b5050505050505050505092915050565b600160a060020a0316600090815260056020908152604080832054600390925290912054600754680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109565780601f1061092b57610100808354040283529160200191610956565b820191906000526020600020905b81548152906001019060200180831161093957829003601f168201915b505050505081565b600080808061097161054d866014611029565b925061097d85846113bd565b9150610988826113cf565b95945050505050565b60065490565b60008060008060065485111515156109ae57600080fd5b6109b785611467565b92506109c761054d846014611029565b915061098883836113bd565b600c5460ff1681565b601281565b60008060006109f06001610b2c565b116109fa57600080fd5b339150610a076000610b2c565b600160a060020a038316600081815260056020908152604080832080546801000000000000000087020190556004909152808220805490839055905193019350909183156108fc0291849190818181858888f19350505050158015610a70573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b60008060008060065460001415610ad2576414f46b04009350610b05565b610ae3670de0b6b3a7640000611467565b9250610af361054d846014611029565b9150610aff83836113bd565b90508093505b50505090565b600860205260009081526040902054600160a060020a031681565b60025481565b60003382610b4257610b3d81610895565b610b66565b600160a060020a038116600090815260046020526040902054610b6482610895565b015b91505b50919050565b303190565b600160a060020a031660009081526003602052604090205490565b60096020526000908152604090205460ff1681565b60008060008060065460001415610bc25764199c82cc009350610b05565b610bd3670de0b6b3a7640000611467565b9250610be361054d846014611029565b9150610aff8383611013565b600033610bfb81610b74565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109565780601f1061092b57610100808354040283529160200191610956565b3360009081526009602052604090205460ff161515610c7957600080fd5b600c805460ff19169055565b6000806000610c92610bef565b11610c9c57600080fd5b5033600081815260036020526040902054831115610cb957600080fd5b6000610cc56001610b2c565b1115610cd357610cd36109e1565b600160a060020a038116600090815260036020526040902054610cf690846113bd565b600160a060020a038083166000908152600360205260408082209390935590861681522054610d259084611013565b600160a060020a0385811660008181526003602090815260408083209590955560078054948716808452600583528684208054968b02909603909555548383529185902080549289029092019091558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3600191505b5092915050565b6000806000806000806000610dc7610bef565b11610dd157600080fd5b33600081815260036020526040902054909650871115610df057600080fd5b869450610dfc85611467565b9350610e0c61054d856014611029565b9250610e1884846113bd565b9150610e26600654866113bd565b600655600160a060020a038616600090815260036020526040902054610e4c90866113bd565b600160a060020a03871660009081526003602090815260408083209390935560075460059091529181208054928802680100000000000000008602019283900390556006549192501015610ec257610ebe600754600654680100000000000000008602811515610eb857fe5b04611013565b6007555b85600160a060020a03167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442610ef8610ba4565b604080519485526020850193909352838301919091526060830152519081900360800190a250505050505050565b3360008181526003602052604081205490811115610f4757610f4781610db4565b610f4f6109e1565b5050565b610f4f348261045d565b600080600080610f6d6001610b2c565b11610f7757600080fd5b610f816000610b2c565b33600081815260056020908152604080832080546801000000000000000087020190556004909152812080549082905590920194509250610fc390849061045d565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b60008282018381101561102257fe5b9392505050565b60008083151561103c5760009150610dad565b5082820282848281151561104c57fe5b041461102257fe5b600080828481151561106257fe5b04949350505050565b336000908152600860205260408120548290600160a060020a0316828080831515611094578893505b600160a060020a038416158015906110b55750600160a060020a0384163314155b80156110db5750600254600160a060020a03851660009081526003602052604090205410155b156113b05733600090815260086020526040902054600160a060020a0316151561113557336000908152600860205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b600160a060020a03841660009081526004602052604090205460028904935061115e9084611013565b600160a060020a03851660009081526004602052604090205561118185846113bd565b6040805185815242602082015281519297503392600192600160a060020a038916927fbfa263804571bb327880c78b827af07c8f427b004b9017c33915e2adaeca5011929081900390910190a4600160a060020a0380851660009081526008602052604090205416915081158015906112145750600254600160a060020a03831660009081526003602052604090205410155b156113b057600160a060020a038216600090815260046020526040902054600a60038a020493506112459084611013565b600160a060020a03831660009081526004602052604090205561126885846113bd565b945083600160a060020a0316600283600160a060020a03167fbfa263804571bb327880c78b827af07c8f427b004b9017c33915e2adaeca50118642604051808381526020018281526020019250505060405180910390a450600160a060020a038082166000908152600860205260409020541680158015906113045750600254600160a060020a03821660009081526003602052604090205410155b156113b057600160a060020a038116600090815260046020526040902054600a60028a020493506113359084611013565b600160a060020a03821660009081526004602052604090205561135885846113bd565b945081600160a060020a0316600382600160a060020a03167fbfa263804571bb327880c78b827af07c8f427b004b9017c33915e2adaeca50118642604051808381526020018281526020019250505060405180910390a45b5092979650505050505050565b6000828211156113c957fe5b50900390565b6006546000906c01431e0fae6d7217caa00000009082906402540be40061145461144e730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e400000000000000016114d3565b856113bd565b81151561145d57fe5b0403949350505050565b600654600090670de0b6b3a76400008381019181019083906114c06414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be400028115156114ba57fe5b046113bd565b8115156114c957fe5b0495945050505050565b80600260018201045b81811015610b695780915060028182858115156114f557fe5b040181151561150057fe5b0490506114dc5600a165627a7a72305820aca0f14ff674273caff0c3d0f0c520154c514320803a869bbedf85772576dafd0029

Deployed Bytecode Sourcemap

516:17294:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5143:30;5158:9;5169:3;5143:14;:30::i;:::-;;516:17294;9520:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9520:224:0;-1:-1:-1;;;;;9520:224:0;;;;;;;;;;;;;;;;;;;;;3484:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3484:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3484:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10740:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10740:372:0;;;;;8832:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8832:91:0;;;;11120:395;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11120:395:0;;;;;4686:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4686:34:0;;;;;;;;;;;;;;;;;;;;;;3567:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3567:35:0;;;;;;;;;;;;;;;;;;;;;;;5875:437;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5875:437:0;;;;;;9752:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9752:526:0;;;;4301:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4301:44:0;-1:-1:-1;;;;;4301:44:0;;;;;;;;;-1:-1:-1;;;;;4301:44:0;;;;;;;;;;;;;;4000:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4000:41:0;;;;9090:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9090:276:0;;;;;;;8715:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8715:109:0;;;;9374:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9374:138:0;-1:-1:-1;;;;;9374:138:0;;;;;4354:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4354:46:0;-1:-1:-1;;;;;4354:46:0;;;;;10286:446;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10286:446:0;;;;8931:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8931:151:0;;;;3532:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3532:28:0;;;;8582:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8582:123:0;;;;7350:1099;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7350:1099:0;-1:-1:-1;;;;;7350:1099:0;;;;;;;6320:1022;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6320:1022:0;;;;;5660:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5660:207:0;;;;4992:106;;-1:-1:-1;;;;;4992:106:0;;;;;5189:463;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5189:463:0;;;;14286:1595;14437:7;14457:24;14505:27;14607:22;14710:18;14807:22;14895:23;14965:12;15589:22;14382:17;1388:24;1415:10;1388:37;;1537:15;;;;;;;;;;;:86;;;;;4670:9;1583:17;1558:22;:20;:22::i;:::-;:42;1557:64;;1537:86;1533:817;;;-1:-1:-1;;;;;1719:30:0;;;;;;:12;:30;;;;;;;;:38;;:30;:38;:230;;;;-1:-1:-1;;;;;;1857:45:0;;;;;;:27;:45;;;;;;4609:9;1857:65;;;1856:93;;1719:230;1637:327;;;;;;;;-1:-1:-1;;;;;2084:45:0;;;;;;:27;:45;;;;;;2071:78;;2131:17;2071:12;:78::i;:::-;-1:-1:-1;;;;;2023:45:0;;;;;;:27;:45;;;;;:126;14484:10;;-1:-1:-1;14535:61:0;14548:42;14561:17;3645:2;14548:12;:42::i;:::-;14592:3;14535:12;:61::i;:::-;14505:91;-1:-1:-1;14632:67:0;14645:48;14658:17;3740:2;14645:12;:48::i;14632:67::-;14607:92;;14731:65;14747:11;14760:14;14776:19;14731:15;:65::i;:::-;14710:86;;14832:52;14845:17;14864:19;14832:12;:52::i;:::-;14807:77;;14921:33;14939:14;14921:17;:33::i;:::-;14895:59;;3986:7;14980:10;:22;14965:37;;15041:1;15023:15;:19;:81;;;;-1:-1:-1;15092:12:0;;15046:43;15059:15;15092:12;15046;:43::i;:::-;:58;15023:81;15015:90;;;;;;;;15137:1;15122:12;;:16;15118:340;;;15170:43;15183:12;;15197:15;15170:12;:43::i;:::-;15155:12;:58;;;3986:7;15248:22;;:37;;;;;;;15228:15;:58;;15248:37;;;;15228:58;;;;;15368:12;;3986:7;15343:22;;:37;;;;;;;;15324:15;:57;15316:4;:66;15308:4;:75;15301:82;;15118:340;;;15416:12;:30;;;15118:340;-1:-1:-1;;;;;15523:37:0;;;;;;:19;:37;;;;;;15510:68;;15562:15;15510:12;:68::i;:::-;-1:-1:-1;;;;;15470:37:0;;;;;;;:19;:37;;;;;;;;:108;;;;15624:15;;15676:10;:28;;;;;;:47;;15624:33;;;:40;;;15676:47;;;;;15624:40;;-1:-1:-1;15739:99:0;;;;15773:17;15642:15;15822:3;15827:10;:8;:10::i;:::-;15739:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15858:15;15851:22;;1533:817;;;2303:15;:23;;-1:-1:-1;;2303:23:0;;;14484:10;;-1:-1:-1;14535:61:0;14548:42;14561:17;3645:2;14548:12;:42::i;14535:61::-;14505:91;-1:-1:-1;14632:67:0;14645:48;14658:17;3740:2;14645:12;:48::i;14632:67::-;14607:92;;14731:65;14747:11;14760:14;14776:19;14731:15;:65::i;:::-;14710:86;;14832:52;14845:17;14864:19;14832:12;:52::i;:::-;14807:77;;14921:33;14939:14;14921:17;:33::i;:::-;14895:59;;3986:7;14980:10;:22;14965:37;;15041:1;15023:15;:19;:81;;;;-1:-1:-1;15092:12:0;;15046:43;15059:15;15092:12;15046;:43::i;:::-;:58;15023:81;15015:90;;;;;;;;15137:1;15122:12;;:16;15118:340;;;15170:43;15183:12;;15197:15;15170:12;:43::i;:::-;15155:12;:58;;;3986:7;15248:22;;:37;;;;;;;15228:15;:58;;15248:37;;;;15228:58;;;;;15368:12;;3986:7;15343:22;;:37;;;;;;;;15324:15;:57;15316:4;:66;15308:4;:75;15301:82;;15118:340;;;15416:12;:30;;;15118:340;-1:-1:-1;;;;;15523:37:0;;;;;;:19;:37;;;;;;15510:68;;15562:15;15510:12;:68::i;:::-;-1:-1:-1;;;;;15470:37:0;;;;;;;:19;:37;;;;;;;;:108;;;;15624:15;;15676:10;:28;;;;;;:47;;15624:33;;;:40;;;15676:47;;;;;15624:40;;-1:-1:-1;15739:99:0;;;;15773:17;15642:15;15822:3;15827:10;:8;:10::i;:::-;15739:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15858:15;15851:22;;2339:1;14286:1595;;;;;;;;;;;;;;:::o;9520:224::-;-1:-1:-1;;;;;9695:28:0;9588:7;9695:28;;;:10;:28;;;;;;;;;9654:19;:37;;;;;;;9636:15;;3986:7;9636:55;;9626:97;;;;9615:121;;9520:224::o;3484:41::-;;;;;;;;;;;;;;;-1:-1:-1;;3484:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10740:372::-;10820:7;;;;10861:60;10874:41;10887:16;3645:2;10874:12;:41::i;10861:60::-;10840:81;;10957:42;10970:16;10988:10;10957:12;:42::i;:::-;10932:67;;11036:33;11054:14;11036:17;:33::i;:::-;11010:59;10740:372;-1:-1:-1;;;;;10740:372:0:o;8832:91::-;8903:12;;8832:91;:::o;11120:395::-;11199:7;11268:17;11331:18;11415:22;11244:12;;11227:13;:29;;11219:38;;;;;;;;11288:32;11306:13;11288:17;:32::i;:::-;11268:52;-1:-1:-1;11352:52:0;11365:33;11268:52;3689:2;11365:12;:33::i;11352:52::-;11331:73;;11440:35;11453:9;11464:10;11440:12;:35::i;4686:34::-;;;;;;:::o;3567:35::-;3600:2;3567:35;:::o;5875:437::-;5929:24;5977:18;824:1;804:17;816:4;804:11;:17::i;:::-;:21;796:30;;;;;;5956:10;5929:37;;5998:18;6010:5;5998:11;:18::i;:::-;-1:-1:-1;;;;;6027:28:0;;;;;;:10;:28;;;;;;;;:65;;3986:7;6069:22;;6027:65;;;6117:16;:34;;;;;;;;6162:38;;;;6211:37;;6103:48;;;-1:-1:-1;6027:28:0;;6211:37;;;;;6103:48;;6211:37;;6027:28;6211:37;6103:48;6027:28;6211:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6264:40:0;;;;;;;;-1:-1:-1;;;;;6264:40:0;;;;;;;;;;;;;5875:437;;:::o;9752:526::-;9794:7;10015:17;10073:18;10161:22;9898:12;;9914:1;9898:17;9894:377;;;9939:43;;-1:-1:-1;9932:50:0;;9894:377;10035:23;10053:4;10035:17;:23::i;:::-;10015:43;-1:-1:-1;10094:52:0;10107:33;10015:43;3689:2;10107:12;:33::i;10094:52::-;10073:73;;10186:35;10199:9;10210:10;10186:12;:35::i;:::-;10161:60;;10245:14;10238:21;;9894:377;9752:526;;;;:::o;4301:44::-;;;;;;;;;;;;-1:-1:-1;;;;;4301:44:0;;:::o;4000:41::-;;;;:::o;9090:276::-;9160:7;9207:10;9235:21;:122;;9328:29;9340:16;9328:11;:29::i;:::-;9235:122;;;-1:-1:-1;;;;;9291:34:0;;;;;;:16;:34;;;;;;9259:29;9308:16;9259:11;:29::i;:::-;:66;9235:122;9228:129;;9090:276;;;;;:::o;8715:109::-;8803:4;8795:21;8715:109;:::o;9374:138::-;-1:-1:-1;;;;;9467:37:0;9440:7;9467:37;;;:19;:37;;;;;;;9374:138::o;4354:46::-;;;;;;;;;;;;;;;:::o;10286:446::-;10327:7;10468:17;10526:18;10615:22;10351:12;;10367:1;10351:17;10347:378;;;10392:43;;-1:-1:-1;10385:50:0;;10347:378;10488:23;10506:4;10488:17;:23::i;:::-;10468:43;-1:-1:-1;10547:53:0;10560:34;10468:43;3645:2;10560:12;:34::i;10547:53::-;10526:74;;10640:35;10653:9;10664:10;10640:12;:35::i;8931:151::-;8972:7;9019:10;9047:27;9019:10;9047:9;:27::i;:::-;9040:34;;8931:151;;:::o;3532:28::-;;;;;;;;;;;;;;;-1:-1:-1;;3532:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8582:123;1118:10;1103:26;;;;:14;:26;;;;;;;;1095:35;;;;;;;;8674:15;:23;;-1:-1:-1;;8674:23:0;;;8582:123::o;7350:1099::-;7444:4;7479:24;730:1;717:10;:8;:10::i;:::-;:14;709:23;;;;;;-1:-1:-1;7506:10:0;7718:37;;;;:19;:37;;;;;;7699:56;;;7691:65;;;;;;7845:1;7825:17;7837:4;7825:11;:17::i;:::-;:21;7822:36;;;7848:10;:8;:10::i;:::-;-1:-1:-1;;;;;7952:37:0;;;;;;:19;:37;;;;;;7939:68;;7991:15;7939:12;:68::i;:::-;-1:-1:-1;;;;;7899:37:0;;;;;;;:19;:37;;;;;;:108;;;;8065:31;;;;;;;8052:62;;8098:15;8052:12;:62::i;:::-;-1:-1:-1;;;;;8018:31:0;;;;;;;:19;:31;;;;;;;;:96;;;;8206:15;;;8164:28;;;;;;:10;:28;;;;;:76;;8206:33;;;8164:76;;;;;;8287:15;8251:22;;;;;;;:70;;8287:33;;;8251:70;;;;;;8364:55;;;;;;;8018:31;;8364:55;;;;;;;;;;;8437:4;8430:11;;743:1;7350:1099;;;;;:::o;6320:1022::-;6392:24;6516:15;6560:17;6617:18;6701:22;6948;730:1;717:10;:8;:10::i;:::-;:14;709:23;;;;;;6419:10;6467:37;;;;:19;:37;;;;;;6419:10;;-1:-1:-1;6448:56:0;;;6440:65;;;;;;6534:15;6516:33;;6580:26;6598:7;6580:17;:26::i;:::-;6560:46;-1:-1:-1;6638:52:0;6651:33;6560:46;3689:2;6651:12;:33::i;6638:52::-;6617:73;;6726:35;6739:9;6750:10;6726:12;:35::i;:::-;6701:60;;6789:35;6802:12;;6816:7;6789:12;:35::i;:::-;6774:12;:50;-1:-1:-1;;;;;6888:37:0;;;;;;:19;:37;;;;;;6875:60;;6927:7;6875:12;:60::i;:::-;-1:-1:-1;;;;;6835:37:0;;;;;;:19;:37;;;;;;;;:100;;;;6983:15;;7051:10;:28;;;;;;:47;;6983:25;;;3986:7;7012:26;;6983:56;7051:47;;;;;;7115:12;;6983:56;;-1:-1:-1;;7111:137:0;;;7166:70;7179:15;;7223:12;;3986:7;7197:10;:22;7196:39;;;;;;;;7166:12;:70::i;:::-;7148:15;:88;7111:137;7275:16;-1:-1:-1;;;;;7263:71:0;;7293:7;7302:14;7318:3;7323:10;:8;:10::i;:::-;7263:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6320:1022;;;;;;;:::o;5660:207::-;5721:10;5694:24;5760:37;;;:19;:37;;;;;;;5812:11;;5808:30;;;5825:13;5830:7;5825:4;:13::i;:::-;5849:10;:8;:10::i;:::-;5660:207;;:::o;4992:106::-;5052:38;5067:9;5078:11;5052:14;:38::i;5189:463::-;5243:18;5293:24;5526:15;824:1;804:17;816:4;804:11;:17::i;:::-;:21;796:30;;;;;;5264:18;5276:5;5264:11;:18::i;:::-;5320:10;5341:28;;;;:10;:28;;;;;;;;:66;;3986:7;5384:22;;5341:66;;;5432:16;:34;;;;;;;5477:38;;;;5418:48;;;;-1:-1:-1;5320:10:0;-1:-1:-1;5544:31:0;;5418:48;;5544:14;:31::i;:::-;5526:49;;5606:16;-1:-1:-1;;;;;5591:53:0;;5624:10;5636:7;5591:53;;;;;;;;;;;;;;;;;;;;;;;;5189:463;;;:::o;18315:147::-;18373:7;18405:5;;;18428:6;;;;18421:14;;;;18453:1;18315:147;-1:-1:-1;;;18315:147:0:o;17838:208::-;17896:7;;17920:6;;17916:47;;;17950:1;17943:8;;;;17916:47;-1:-1:-1;17985:5:0;;;17989:1;17985;:5;18008;;;;;;;;:10;18001:18;;;18054:122;18112:7;18132:9;18148:1;18144;:5;;;;;;;;;18054:122;-1:-1:-1;;;;18054:122:0:o;11675:2603::-;11886:10;11786:4;11876:21;;;:9;:21;;;;;;11820:19;;-1:-1:-1;;;;;11876:21:0;11786:4;;;11914:31;;11910:92;;;11979:11;11961:29;;11910:92;-1:-1:-1;;;;;12124:61:0;;;;;;:138;;-1:-1:-1;;;;;;12233:29:0;;12252:10;12233:29;;12124:138;:339;;;;-1:-1:-1;12445:18:0;;-1:-1:-1;;;;;12405:36:0;;;;;;:19;:36;;;;;;:58;;12124:339;12062:2181;;;12541:10;12564:3;12531:21;;;:9;:21;;;;;;-1:-1:-1;;;;;12531:21:0;:37;12527:116;;;12598:10;12588:21;;;;:9;:21;;;;;:39;;-1:-1:-1;;12588:39:0;-1:-1:-1;;;;;12588:39:0;;;;;12527:116;-1:-1:-1;;;;;12803:33:0;;;;;;:16;:33;;;;;;12738:1;12723:16;;;-1:-1:-1;12790:66:0;;12723:16;12790:12;:66::i;:::-;-1:-1:-1;;;;;12754:33:0;;;;;;:16;:33;;;;;:102;12884:43;12897:10;12909:17;12884:12;:43::i;:::-;12947:69;;;;;;13012:3;12947:69;;;;;;12871:56;;-1:-1:-1;13000:10:0;;12978:1;;-1:-1:-1;;;;;12947:69:0;;;;;;;;;;;;;;-1:-1:-1;;;;;13059:26:0;;;;;;;:9;:26;;;;;;;;-1:-1:-1;13106:31:0;;;;;:93;;-1:-1:-1;13181:18:0;;-1:-1:-1;;;;;13141:36:0;;;;;;:19;:36;;;;;;:58;;13106:93;13102:1130;;;-1:-1:-1;;;;;13368:33:0;;;;;;:16;:33;;;;;;13298:2;13295:1;13280:16;;13279:21;;-1:-1:-1;13355:66:0;;13279:21;13355:12;:66::i;:::-;-1:-1:-1;;;;;13319:33:0;;;;;;:16;:33;;;;;:102;13453:43;13466:10;13478:17;13453:12;:43::i;:::-;13440:56;;13573:15;-1:-1:-1;;;;;13520:74:0;13551:1;13534:15;-1:-1:-1;;;;;13520:74:0;;13554:17;13590:3;13520:74;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13639:26:0;;;;;;;:9;:26;;;;;;;13690:31;;;;;:93;;-1:-1:-1;13765:18:0;;-1:-1:-1;;;;;13725:36:0;;;;;;:19;:36;;;;;;:58;;13690:93;13686:531;;;-1:-1:-1;;;;;13963:33:0;;;;;;:16;:33;;;;;;13889:2;13886:1;13871:16;;13870:21;;-1:-1:-1;13950:66:0;;13870:21;13950:12;:66::i;:::-;-1:-1:-1;;;;;13914:33:0;;;;;;:16;:33;;;;;:102;14052:43;14065:10;14077:17;14052:12;:43::i;:::-;14039:56;;14176:15;-1:-1:-1;;;;;14123:74:0;14154:1;14137:15;-1:-1:-1;;;;;14123:74:0;;14157:17;14193:3;14123:74;;;;;;;;;;;;;;;;;;;;;;;;13686:531;-1:-1:-1;14260:10:0;;11675:2603;-1:-1:-1;;;;;;;11675:2603:0:o;18184:123::-;18242:7;18269:6;;;;18262:14;;;;-1:-1:-1;18294:5:0;;;18184:123::o;15889:971::-;16804:12;;15958:7;;16007:25;;15958:7;;3925:16;16124:615;16164:505;16328:56;;;16456:27;16577:1;16488:17;;16455:51;16233:274;16577:47;:60;;16233:405;16234:23;16233:405;16164:4;:505::i;:::-;16698:18;16124:12;:615::i;:::-;16101:684;;;;;;;;16082:735;;15889:971;-1:-1:-1;;;;15889:971:0:o;16868:718::-;17024:12;;16935:7;;16984:4;16974:14;;;;17024:19;;;16935:7;;17112:407;17205:160;17288:19;;;3925:16;17262:46;17205:160;17174:237;;17499:1;16984:4;-1:-1:-1;;17464:12:0;;;:22;;;;17463:31;3925:16;17437:58;17436:64;;;;;;;;17112:12;:407::i;:::-;:431;;;;;;;;;16868:718;-1:-1:-1;;;;;16868:718:0:o;17594:209::-;17677:5;17686:1;17681;17677:5;;17676:11;17716:80;17727:1;17723;:5;17716:80;;;17749:1;17745:5;;17783:1;17778;17774;17770;:5;;;;;;;;:9;17769:15;;;;;;;;17765:19;;17716:80;

Swarm Source

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