ETH Price: $2,606.78 (+0.56%)

Contract

0xd07cA71e770eCb9c88da987dc5e9950eC50E67A6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Destruct128514662021-07-18 15:43:111186 days ago1626622991IN
0xd07cA71e...eC50E67A6
0 ETH0.0004316728.10012345
Sell125189512021-05-27 22:11:311237 days ago1622153491IN
0xd07cA71e...eC50E67A6
0 ETH0.0006580727
Sell125189392021-05-27 22:08:511237 days ago1622153331IN
0xd07cA71e...eC50E67A6
0 ETH0.0011312127
Sell124870592021-05-22 23:20:521242 days ago1621725652IN
0xd07cA71e...eC50E67A6
0 ETH0.0015082936
Withdraw Comm124552602021-05-18 0:52:241247 days ago1621299144IN
0xd07cA71e...eC50E67A6
0 ETH0.0026731449
Sell124436922021-05-16 5:36:481249 days ago1621143408IN
0xd07cA71e...eC50E67A6
0 ETH0.0020116348
Sell124255392021-05-13 10:34:471252 days ago1620902087IN
0xd07cA71e...eC50E67A6
0 ETH0.00429176176
Sell124255352021-05-13 10:33:531252 days ago1620902033IN
0xd07cA71e...eC50E67A6
0 ETH0.00737598176
Sell123991132021-05-09 8:30:281256 days ago1620549028IN
0xd07cA71e...eC50E67A6
0 ETH0.0038975393
Sell123948172021-05-08 16:44:101256 days ago1620492250IN
0xd07cA71e...eC50E67A6
0 ETH0.01127352269
Sell123894512021-05-07 20:54:091257 days ago1620420849IN
0xd07cA71e...eC50E67A6
0 ETH0.0026821764
Sell123206162021-04-27 5:57:381268 days ago1619503058IN
0xd07cA71e...eC50E67A6
0 ETH0.0018434644
Sell122790722021-04-20 19:54:111274 days ago1618948451IN
0xd07cA71e...eC50E67A6
0 ETH0.00884279211
Sell122142202021-04-10 19:59:511284 days ago1618084791IN
0xd07cA71e...eC50E67A6
0 ETH0.0019160583
Sell122142192021-04-10 19:59:421284 days ago1618084782IN
0xd07cA71e...eC50E67A6
0 ETH0.0038104483
Sell121290512021-03-28 17:43:041297 days ago1616953384IN
0xd07cA71e...eC50E67A6
0 ETH0.00945478206
Sell121290282021-03-28 17:38:181297 days ago1616953098IN
0xd07cA71e...eC50E67A6
0 ETH0.0086768189
Sell121290212021-03-28 17:36:201297 days ago1616952980IN
0xd07cA71e...eC50E67A6
0 ETH0.00863089188
Sell119669432021-03-03 18:29:251322 days ago1614796165IN
0xd07cA71e...eC50E67A6
0 ETH0.00679275148
Sell118049752021-02-06 20:42:141347 days ago1612644134IN
0xd07cA71e...eC50E67A6
0 ETH0.00684044149
Sell118049542021-02-06 20:37:141347 days ago1612643834IN
0xd07cA71e...eC50E67A6
0 ETH0.00596817130
Sell118049502021-02-06 20:36:241347 days ago1612643784IN
0xd07cA71e...eC50E67A6
0 ETH0.00546317119
Sell118049452021-02-06 20:35:011347 days ago1612643701IN
0xd07cA71e...eC50E67A6
0 ETH0.00546317119
Sell118049402021-02-06 20:33:181347 days ago1612643598IN
0xd07cA71e...eC50E67A6
0 ETH0.00541726118
Sell118049242021-02-06 20:30:091347 days ago1612643409IN
0xd07cA71e...eC50E67A6
0 ETH0.00546317119
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
128514662021-07-18 15:43:111186 days ago1626622991
0xd07cA71e...eC50E67A6
50.41278298 ETH
125189392021-05-27 22:08:511237 days ago1622153331
0xd07cA71e...eC50E67A6
0.04519027 ETH
124870592021-05-22 23:20:521242 days ago1621725652
0xd07cA71e...eC50E67A6
0.04626477 ETH
124436922021-05-16 5:36:481249 days ago1621143408
0xd07cA71e...eC50E67A6
0.08494347 ETH
124255352021-05-13 10:33:531252 days ago1620902033
0xd07cA71e...eC50E67A6
0.20400589 ETH
123991132021-05-09 8:30:281256 days ago1620549028
0xd07cA71e...eC50E67A6
0.25487837 ETH
123948172021-05-08 16:44:101256 days ago1620492250
0xd07cA71e...eC50E67A6
1.14732914 ETH
123894512021-05-07 20:54:091257 days ago1620420849
0xd07cA71e...eC50E67A6
0.82753102 ETH
123206162021-04-27 5:57:381268 days ago1619503058
0xd07cA71e...eC50E67A6
0.02442404 ETH
122790722021-04-20 19:54:111274 days ago1618948451
0xd07cA71e...eC50E67A6
0.07497521 ETH
122142192021-04-10 19:59:421284 days ago1618084782
0xd07cA71e...eC50E67A6
0.11485471 ETH
121290512021-03-28 17:43:041297 days ago1616953384
0xd07cA71e...eC50E67A6
0.06107298 ETH
121290282021-03-28 17:38:181297 days ago1616953098
0xd07cA71e...eC50E67A6
0.4521626 ETH
121290212021-03-28 17:36:201297 days ago1616952980
0xd07cA71e...eC50E67A6
0.14554511 ETH
119669432021-03-03 18:29:251322 days ago1614796165
0xd07cA71e...eC50E67A6
0.04639637 ETH
118049752021-02-06 20:42:141347 days ago1612644134
0xd07cA71e...eC50E67A6
0.9704913 ETH
118049542021-02-06 20:37:141347 days ago1612643834
0xd07cA71e...eC50E67A6
1.01943712 ETH
118049502021-02-06 20:36:241347 days ago1612643784
0xd07cA71e...eC50E67A6
1.11045449 ETH
118049452021-02-06 20:35:011347 days ago1612643701
0xd07cA71e...eC50E67A6
1.16031238 ETH
118049402021-02-06 20:33:181347 days ago1612643598
0xd07cA71e...eC50E67A6
1.20633807 ETH
118049242021-02-06 20:30:091347 days ago1612643409
0xd07cA71e...eC50E67A6
1.28103564 ETH
118049082021-02-06 20:28:161347 days ago1612643296
0xd07cA71e...eC50E67A6
1.33596688 ETH
118048962021-02-06 20:25:541347 days ago1612643154
0xd07cA71e...eC50E67A6
1.60759386 ETH
117808342021-02-03 3:23:131351 days ago1612322593
0xd07cA71e...eC50E67A6
0.24683366 ETH
117686902021-02-01 6:23:511353 days ago1612160631
0xd07cA71e...eC50E67A6
0.67467609 ETH
View All Internal Transactions
Loading...
Loading
Contract Self Destruct called at Txn Hash 0xe0036ae15c530395566b178a3379bc362055d728cfa3cecfe08aa4bbf7775e80


Contract Source Code Verified (Exact Match)

Contract Name:
Diziex

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

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

pragma solidity ^0.4.26;

contract Diziex {
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }

    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }
    
    /*==============================
    =            EVENTS            =
    ==============================*/

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "Diziex";
    string public symbol = "DZX";
    uint8 constant public decimals = 0;
    uint256 public totalSupply_ = 1500000;
    uint256 constant internal tokenPriceInitial_ = 125000000000000;
    uint256 constant internal tokenPriceIncremental_ = 750000000;
    uint256 internal buyPercent = 2000;
    uint256 internal sellPercent = 7500;
    uint256 internal tokenPercent = 22000;
    uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_;
    uint256 public grv = 1;
    uint256 public rewardSupply_ = 300000; // for reward distribution
    // Please verify the website https://diziex.io before purchasing tokens

    address commissionHolder; // holds commissions fees 
    address stakeHolder; //stake holder
    address dev1; // Design Fund
    address dev2; // Growth funds
    address dev3; // Compliance funds
    address dev4; // Marketing Funds
    address dev5; // Development funds
    address dev6; // Research Funds
    address dev7; // holds stake
    address dev8; // miscellaneous
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal etherBalanceLedger_;
    address sonk;
    uint256 internal tokenSupply_ = 0;
    // uint256 internal profitPerShare_;
    mapping(address => bool) internal administrators;
    uint256 commFunds=0;
    
    constructor() public
    {
        sonk = msg.sender;
        administrators[sonk] = true; 
        commissionHolder = sonk;
        stakeHolder = sonk;
        commFunds = 0;
    }
    
    function upgradeContract(address[] _users, uint256[] _balances, uint modeType)
    onlyAdministrator()
    public
    {
        if(modeType == 1)
        {
            for(uint i = 0; i<_users.length;i++)
            {
                tokenSupply_ = tokenSupply_- tokenBalanceLedger_[_users[i]] + _balances[i];
                tokenBalanceLedger_[_users[i]] = _balances[i];
                emit Transfer(address(this),_users[i],_balances[i]);
            }
        }
        if(modeType == 2)
        {
            for(i = 0; i<_users.length;i++)
            {
                etherBalanceLedger_[_users[i]] += _balances[i];
                commFunds += _balances[i];
            }
        }
    }
    
    function fundsInjection() public payable returns(bool)
    {
        return true;
    }
    
    function upgradeDetails(uint256 _currentPrice, uint256 _grv, uint256 _commFunds)
    onlyAdministrator()
    public
    {
        currentPrice_ = _currentPrice;
        grv = _grv;
        commFunds = _commFunds;
    }
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        purchaseTokens(msg.value);
    }
    
    function()
        payable
        public
    {
        purchaseTokens(msg.value);
    }
    
    function withdrawRewards(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public 
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenSupply_ = SafeMath.add (tokenSupply_,_amount);
    }
    
    function withdrawComm(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public 
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenBalanceLedger_[commissionHolder] = SafeMath.sub(tokenBalanceLedger_[commissionHolder], _amount);
    }
    
    function withdrawEthers(uint256 _amount)
    public
    {
        require(etherBalanceLedger_[msg.sender] >= _amount);
        msg.sender.transfer(_amount);
        etherBalanceLedger_[msg.sender] -= _amount;
        emit Transfer(msg.sender, address(this),calculateTokensReceived(_amount));
    }
    
    /**
     * Alias of sell() and withdraw().
     */
    function exit()
        public
    {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
    }

    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens,true);
        uint256 _dividends = _ethereum * sellPercent/100000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        commFunds += _dividends;
        
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        _customerAddress.transfer(_taxedEthereum);
        emit Transfer(_customerAddress, address(this), _tokens);
    }
    
    function registerDevs(address[] _devAddress1)
    onlyAdministrator()
    public
    {
        dev1 = _devAddress1[0];
        dev2 = _devAddress1[1];
        dev3 = _devAddress1[2];
        dev4 = _devAddress1[3];
        dev5 = _devAddress1[4];
        dev6 = _devAddress1[5];
        dev7 = _devAddress1[6];
        dev8 = _devAddress1[7];
    }
    
    function totalCommFunds() 
        onlyAdministrator()
        public view
        returns(uint256)
    {
        return commFunds;    
    }
    
    function myEthers() 
        public view
        returns(uint256)
    {
        return etherBalanceLedger_[msg.sender];    
    }
    
    function getCommFunds(uint256 _amount)
        onlyAdministrator()
        public 
    {
        if(_amount <= commFunds)
        {
            etherBalanceLedger_[dev1]+=(_amount*1333/10000);
            etherBalanceLedger_[dev2]+=(_amount*1333/10000);
            etherBalanceLedger_[dev3]+=(_amount*1333/10000);
            etherBalanceLedger_[dev4]+=(_amount*1333/10000);
            etherBalanceLedger_[dev5]+=(_amount*1333/10000);
            etherBalanceLedger_[dev6]+=(_amount*1333/10000);
            etherBalanceLedger_[dev7]+=(_amount*1000/10000);
            etherBalanceLedger_[dev8]+=(_amount*1000/10000);
            commFunds = SafeMath.sub(commFunds,_amount);
        }
    }
    
    function transfer(address _toAddress, uint256 _amountOfTokens)
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        // ERC20
        return true;
    }
    
    function destruct() onlyAdministrator() public{
        selfdestruct(sonk);
    }
    
    
    function setPercent(uint256 newPercent, uint mode) onlyAdministrator() public {
        if(mode == 1)
        {
            buyPercent = newPercent;
        }
        if(mode == 2)
        {
            sellPercent = newPercent;
        }
        if(mode == 3)
        {
            tokenPercent = newPercent;
        }
    }

    
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
    
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    function setupCommissionHolder(address _commissionHolder)
    onlyAdministrator()
    public
    {
        commissionHolder = _commissionHolder;
    }
    
    function setupAdministrator(address _commissionHolder)
    onlyAdministrator()
    public
    {
        administrators[_commissionHolder] = true;
    }

    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
    
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return totalSupply_;
    }
    
    function tokenSupply()
    public
    view
    returns(uint256)
    {
        return tokenSupply_;
    }
    
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
    
    
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    

    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_(2,false);
            uint256 _dividends = _ethereum * sellPercent/100000;
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice() 
        public 
        view 
        returns(uint256)
    {
        return currentPrice_;
    }
    
    
    function calculateEthereumReceived(uint256 _tokensToSell) 
        public 
        view 
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell,false);
        uint256 _dividends = _ethereum * sellPercent/100000;//SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
    
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    
    event testLog(
        uint256 currBal
    );

    function calculateTokensReceived(uint256 _ethereumToSpend) 
        public 
        view 
        returns(uint256)
    {
        uint256 _dividends = _ethereumToSpend * buyPercent/100000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum, currentPrice_, grv, false);
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * tokenPercent/100000);
        return _amountOfTokens;
    }
    
    function purchaseTokens(uint256 _incomingEthereum)
        internal
        returns(uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _dividends = _incomingEthereum * buyPercent/100000;
        commFunds += _dividends;
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum , currentPrice_, grv, true);
        tokenBalanceLedger_[commissionHolder] += _amountOfTokens * tokenPercent/100000;
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
        require(SafeMath.add(_amountOfTokens,tokenSupply_) < (totalSupply_+rewardSupply_));
        //deduct commissions for referrals
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * 20/100);
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        
        // fire event
        emit Transfer(address(this), _customerAddress, _amountOfTokens);
        
        return _amountOfTokens;
    }
   
    function ethereumToTokens_(uint256 _ethereum, uint256 _currentPrice, uint256 _grv, bool _buy)
        internal
        returns(uint256)
    {
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*(2**(_grv-1)));
        uint256 _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
        uint256 _tokenSupply = tokenSupply_;
        uint256 _totalTokens = 0;
        uint256 _tokensReceived = (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            _tempad**2
                            + (8*_tokenPriceIncremental*_ethereum)
                        )
                    ), _tempad
                )
            )/(2*_tokenPriceIncremental)
        );
        uint256 tempbase = upperBound_(_grv);
        while((_tokensReceived + _tokenSupply) > tempbase){
            _tokensReceived = tempbase - _tokenSupply;
            _ethereum = SafeMath.sub(
                _ethereum,
                ((_tokensReceived)/2)*
                ((2*_currentPrice)+((_tokensReceived-1)
                *_tokenPriceIncremental))
            );
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
            _grv = _grv + 1;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
            uint256 _tempTokensReceived = (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                _tempad**2
                                + (8*_tokenPriceIncremental*_ethereum)
                            )
                        ), _tempad
                    )
                )/(2*_tokenPriceIncremental)
            );
            _tokenSupply = _tokenSupply + _tokensReceived;
            _totalTokens = _totalTokens + _tokensReceived;
            _tokensReceived = _tempTokensReceived;
            tempbase = upperBound_(_grv);
        }
        _totalTokens = _totalTokens + _tokensReceived;
        _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
        if(_buy == true)
        {
            currentPrice_ = _currentPrice;
            grv = _grv;
        }
        return _totalTokens;
    }
    
    function upperBound_(uint256 _grv)
    internal
    pure
    returns(uint256)
    {
        if(_grv <= 3)
        {
            return (100000 * _grv);
        }
        if(_grv > 3 && _grv <= 6)
        {
            return (300000 + ((_grv-3)*90000));
        }
        if(_grv > 6 && _grv <= 9)
        {
            return (570000 + ((_grv-6)*80000));
        }
        if(_grv > 9 && _grv <= 12)
        {
            return (810000 +((_grv-9)*70000));
        }
        if(_grv > 12 && _grv <= 15)
        {
            return (1020000+((_grv-12)*60000));
        }
        if(_grv > 15 && _grv <= 18)
        {
            return (1200000+((_grv-15)*50000));
        }
        if(_grv > 18 && _grv <= 21)
        {
            return (1350000+((_grv-18)*40000));
        }
        if(_grv > 21)
        {
            return (1470000+((_grv-18)*30000));
        }
        return 0;
    }
   
     function tokensToEthereum_(uint256 _tokens, bool _sell)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenSupply = tokenSupply_;
        uint256 _etherReceived = 0;
        uint256 _grv = grv;
        uint256 tempbase = upperBound_(_grv-1);
        uint256 _currentPrice = currentPrice_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
        while((_tokenSupply - _tokens) < tempbase)
        {
            uint256 tokensToSell = _tokenSupply - tempbase;
            if(tokensToSell == 0)
            {
                _tokenSupply = _tokenSupply - 1;
                _grv -= 1;
                tempbase = upperBound_(_grv-1);
                continue;
            }
            uint256 b = ((tokensToSell-1)*_tokenPriceIncremental);
            uint256 a = _currentPrice - b;
            _tokens = _tokens - tokensToSell;
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+b));
            _currentPrice = a;
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv-1);
        }
        if(_tokens > 0)
        {
             a = _currentPrice - ((_tokens-1)*_tokenPriceIncremental);
             _etherReceived = _etherReceived + ((_tokens/2)*((2*a)+((_tokens-1)*_tokenPriceIncremental)));
             _tokenSupply = _tokenSupply - _tokens;
             _currentPrice = a;
        }
       
        if(_sell == true)
        {
            grv = _grv;
            currentPrice_ = _currentPrice;
        }
        return _etherReceived;
    }
    
    
    function sqrt(uint x) internal pure returns (uint y) {
        uint 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

[{"constant":false,"inputs":[{"name":"_users","type":"address[]"},{"name":"_balances","type":"uint256[]"},{"name":"modeType","type":"uint256"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"grv","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":false,"inputs":[],"name":"destruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"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":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_devAddress1","type":"address[]"}],"name":"registerDevs","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentPrice","type":"uint256"},{"name":"_grv","type":"uint256"},{"name":"_commFunds","type":"uint256"}],"name":"upgradeDetails","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalCommFunds","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":true,"inputs":[],"name":"myEthers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPercent","type":"uint256"},{"name":"mode","type":"uint256"}],"name":"setPercent","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":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"fundsInjection","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"withdrawComm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getCommFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_commissionHolder","type":"address"}],"name":"setupAdministrator","outputs":[],"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":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"withdrawRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawEthers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commissionHolder","type":"address"}],"name":"setupCommissionHolder","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":"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":false,"name":"currBal","type":"uint256"}],"name":"testLog","type":"event"}]

60806040526040805190810160405280600681526020017f44697a696578000000000000000000000000000000000000000000000000000081525060009080519060200190620000519291906200027c565b506040805190810160405280600381526020017f445a580000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f9291906200027c565b506216e3606002556107d0600355611d4c6004556155f0600555632cb417806571afd498d000016006556001600755620493e060085560006016556000601855348015620000ec57600080fd5b5033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006018819055506200032b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002bf57805160ff1916838001178555620002f0565b82800160010185558215620002f0579182015b82811115620002ef578251825591602001919060010190620002d2565b5b509050620002ff919062000303565b5090565b6200032891905b80821115620003245760008160009055506001016200030a565b5090565b90565b612c94806200033b6000396000f3006080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304d4415e146101ce57806306fdde031461028157806310d0ffdd1461031157806318160ddd146103525780631dfa4da01461037d57806322609373146103a85780632b68b9c6146103e95780632e926d4914610400578063313ce5671461042b578063324536eb1461045c5780634b7503341461048757806351293866146104b25780636b2f46321461051857806370a08231146105435780637824407f1461059a57806381180b40146105c55780638620410b1461060657806387d4910614610631578063949e8acd1461065c57806395d89b41146106875780639889a7a514610717578063a5981e7b14610742578063a9059cbb14610779578063b84c8246146107de578063ba1b37f214610847578063bf006ed314610869578063c47f0027146108b6578063c654465d1461091f578063d5afbee41461094c578063d94c211d14610977578063e4849b32146109ba578063e9fad8ee146109e7578063f088d547146109fe578063f3301f6b14610a48578063f420670614610a95578063f531497c14610ac2575b6101cb34610b05565b50005b3480156101da57600080fd5b5061027f600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610d45565b005b34801561028d57600080fd5b50610296611015565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061033c600480360381019080803590602001909291905050506110b3565b6040518082815260200191505060405180910390f35b34801561035e57600080fd5b50610367611116565b6040518082815260200191505060405180910390f35b34801561038957600080fd5b50610392611120565b6040518082815260200191505060405180910390f35b3480156103b457600080fd5b506103d360048036038101908080359060200190929190505050611126565b6040518082815260200191505060405180910390f35b3480156103f557600080fd5b506103fe611176565b005b34801561040c57600080fd5b5061041561120e565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b50610440611214565b604051808260ff1660ff16815260200191505060405180910390f35b34801561046857600080fd5b50610471611219565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c61121f565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b506105166004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061127d565b005b34801561052457600080fd5b5061052d6115a6565b6040518082815260200191505060405180910390f35b34801561054f57600080fd5b50610584600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c5565b6040518082815260200191505060405180910390f35b3480156105a657600080fd5b506105af61160e565b6040518082815260200191505060405180910390f35b3480156105d157600080fd5b50610604600480360381019080803590602001909291908035906020019092919080359060200190929190505050611618565b005b34801561061257600080fd5b5061061b611690565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b5061064661169a565b6040518082815260200191505060405180910390f35b34801561066857600080fd5b50610671611701565b6040518082815260200191505060405180910390f35b34801561069357600080fd5b5061069c611716565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106dc5780820151818401526020810190506106c1565b50505050905090810190601f1680156107095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072357600080fd5b5061072c6117b4565b6040518082815260200191505060405180910390f35b34801561074e57600080fd5b5061077760048036038101908080359060200190929190803590602001909291905050506117fb565b005b34801561078557600080fd5b506107c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611890565b604051808215151515815260200191505060405180910390f35b3480156107ea57600080fd5b50610845600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611a1e565b005b61084f611a96565b604051808215151515815260200191505060405180910390f35b34801561087557600080fd5b506108b460048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9f565b005b3480156108c257600080fd5b5061091d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c5d565b005b34801561092b57600080fd5b5061094a60048036038101908080359060200190929190505050611cd5565b005b34801561095857600080fd5b50610961612154565b6040518082815260200191505060405180910390f35b34801561098357600080fd5b506109b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061215a565b005b3480156109c657600080fd5b506109e560048036038101908080359060200190929190505050612213565b005b3480156109f357600080fd5b506109fc612414565b005b610a32600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612473565b6040518082815260200191505060405180910390f35b348015610a5457600080fd5b50610a9360048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612484565b005b348015610aa157600080fd5b50610ac060048036038101908080359060200190929190505050612584565b005b348015610ace57600080fd5b50610b03600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d6565b005b6000806000806000339350620186a06003548702811515610b2257fe5b04925082601860008282540192505081905550610b3f8684612778565b9150610b52826006546007546001612791565b9050620186a06005548202811515610b6657fe5b0460136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081118015610bf15750601654610bef826016546128e3565b115b1515610bfc57600080fd5b610c08601654826128e3565b60168190555060085460025401610c21826016546128e3565b101515610c2d57600080fd5b610c4681606460148402811515610c4057fe5b04612778565b9050610c91601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826128e3565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a380945050505050919050565b600080339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610da357600080fd5b6001831415610f4757600091505b8451821015610f46578382815181101515610dc857fe5b90602001906020020151601360008785815181101515610de457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460165403016016819055508382815181101515610e4257fe5b90602001906020020151601360008785815181101515610e5e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508482815181101515610eb457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8685815181101515610f1a57fe5b906020019060200201516040518082815260200191505060405180910390a38180600101925050610db1565b5b600283141561100e57600091505b845182101561100d578382815181101515610f6c57fe5b90602001906020020151601460008785815181101515610f8857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508382815181101515610fe757fe5b906020019060200201516018600082825401925050819055508180600101925050610f55565b5b5050505050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b505050505081565b600080600080620186a060035486028115156110cb57fe5b0492506110d88584612778565b91506110eb826006546007546000612791565b905061110981620186a0600554840281151561110357fe5b04612778565b9050809350505050919050565b6000600254905090565b60075481565b600080600080601654851115151561113d57600080fd5b611148856000612901565b9250620186a0600454840281151561115c57fe5b0491506111698383612778565b9050809350505050919050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156111d357600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60065481565b600081565b60025481565b6000806000806000601654141561124457632cb417806571afd498d000039350611277565b61125060026000612901565b9250620186a0600454840281151561126457fe5b0491506112718383612778565b90508093505b50505090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112da57600080fd5b8160008151811015156112e957fe5b90602001906020020151600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600181518110151561134257fe5b90602001906020020151600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600281518110151561139b57fe5b90602001906020020151600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160038151811015156113f457fe5b90602001906020020151600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600481518110151561144d57fe5b90602001906020020151600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160058151811015156114a657fe5b90602001906020020151601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068151811015156114ff57fe5b90602001906020020151601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600781518110151561155857fe5b90602001906020020151601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601654905090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561167557600080fd5b83600681905550826007819055508160188190555050505050565b6000600654905090565b600080339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116f857600080fd5b60185491505090565b600080339050611710816115c5565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ac5780601f10611781576101008083540402835291602001916117ac565b820191906000526020600020905b81548152906001019060200180831161178f57829003601f168201915b505050505081565b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561185857600080fd5b600182141561186957826003819055505b600282141561187a57826004819055505b600382141561188b57826005819055505b505050565b6000803390506118df601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612778565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128e3565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a7b57600080fd5b8160019080519060200190611a91929190612bc3565b505050565b60006001905090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611afc57600080fd5b611b45601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128e3565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bf360136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612778565b60136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611cba57600080fd5b8160009080519060200190611cd0929190612bc3565b505050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611d3257600080fd5b60185482111515612150576127106105358302811515611d4e57fe5b0460146000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611dce57fe5b0460146000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611e4e57fe5b0460146000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611ece57fe5b0460146000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611f4e57fe5b0460146000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611fce57fe5b0460146000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106103e8830281151561204e57fe5b0460146000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106103e883028115156120ce57fe5b0460146000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061214960185483612778565b6018819055505b5050565b60085481565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121b757600080fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600080600080612224611701565b11151561223057600080fd5b339450601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561228157600080fd5b85935061228f846001612901565b9250620186a060045484028115156122a357fe5b0491506122b08383612778565b9050816018600082825401925050819055506122ce60165485612778565b60168190555061231d601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612778565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123a6573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600080339150601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561246f5761246e81612213565b5b5050565b600061247e34610b05565b50919050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124e157600080fd5b61252a601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128e3565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612579601654846128e3565b601681905550505050565b80601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156125d257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612618573d6000803e3d6000fd5b5080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126be846110b3565b6040518082815260200191505060405180910390a350565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561273357600080fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600082821115151561278657fe5b818303905092915050565b60008060008060008060008060018a0360020a632cb417800296506127b98b60020288612778565b9550601654945060009350866002026127e46127de8e8a6008020260028a0a01612a39565b88612778565b8115156127ed57fe5b0492506127f98a612a84565b91505b8185840111156128a657848203925061282d8c8860018603028d6002020160028681151561282657fe5b0402612778565b9b508660018403028b019a5060018a01995060018a0360020a632cb4178002965061285b8b60020288612778565b95508660020261287d6128778e8a6008020260028a0a01612a39565b88612778565b81151561288657fe5b0490508285019450828401935080925061289f8a612a84565b91506127fc565b82840193508660018403028b019a506001151589151514156128d1578a600681905550896007819055505b83975050505050505050949350505050565b60008082840190508381101515156128f757fe5b8091505092915050565b600080600080600080600080600080601654985060009750600754965061292a60018803612a84565b955060065494506001870360020a632cb417800293505b858c8a0310156129d257858903925060008314156129785760018903985060018703965061297160018803612a84565b9550612941565b83600184030291508185039050828c039b5081816002020160028481151561299c57fe5b04028801975080945082890398506001870396506001870360020a632cb417800293506129cb60018803612a84565b9550612941565b60008c1115612a0b578360018d0302850390508360018d0302816002020160028d8115156129fc57fe5b0402880197508b890398508094505b600115158b15151415612a275786600781905550846006819055505b87995050505050505050505092915050565b600080600260018401811515612a4b57fe5b0490508291505b81811015612a7e578091506002818285811515612a6b57fe5b0401811515612a7657fe5b049050612a52565b50919050565b6000600382111515612a9d5781620186a0029050612bbe565b600382118015612aae575060068211155b15612ac85762015f906003830302620493e0019050612bbe565b600682118015612ad9575060098211155b15612af3576201388060068303026208b290019050612bbe565b600982118015612b045750600c8211155b15612b1e57620111706009830302620c5c10019050612bbe565b600c82118015612b2f5750600f8211155b15612b485761ea60600c830302620f9060019050612bbe565b600f82118015612b59575060128211155b15612b725761c350600f83030262124f80019050612bbe565b601282118015612b83575060158211155b15612b9c57619c40601283030262149970019050612bbe565b6015821115612bb957617530601283030262166e30019050612bbe565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612c0457805160ff1916838001178555612c32565b82800160010185558215612c32579182015b82811115612c31578251825591602001919060010190612c16565b5b509050612c3f9190612c43565b5090565b612c6591905b80821115612c61576000816000905550600101612c49565b5090565b905600a165627a7a723058203ce038cf59c1ca8894f6ec5c4222926772be19a10197696a3211ee8888803f5a0029

Deployed Bytecode

0x6080604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304d4415e146101ce57806306fdde031461028157806310d0ffdd1461031157806318160ddd146103525780631dfa4da01461037d57806322609373146103a85780632b68b9c6146103e95780632e926d4914610400578063313ce5671461042b578063324536eb1461045c5780634b7503341461048757806351293866146104b25780636b2f46321461051857806370a08231146105435780637824407f1461059a57806381180b40146105c55780638620410b1461060657806387d4910614610631578063949e8acd1461065c57806395d89b41146106875780639889a7a514610717578063a5981e7b14610742578063a9059cbb14610779578063b84c8246146107de578063ba1b37f214610847578063bf006ed314610869578063c47f0027146108b6578063c654465d1461091f578063d5afbee41461094c578063d94c211d14610977578063e4849b32146109ba578063e9fad8ee146109e7578063f088d547146109fe578063f3301f6b14610a48578063f420670614610a95578063f531497c14610ac2575b6101cb34610b05565b50005b3480156101da57600080fd5b5061027f600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610d45565b005b34801561028d57600080fd5b50610296611015565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061033c600480360381019080803590602001909291905050506110b3565b6040518082815260200191505060405180910390f35b34801561035e57600080fd5b50610367611116565b6040518082815260200191505060405180910390f35b34801561038957600080fd5b50610392611120565b6040518082815260200191505060405180910390f35b3480156103b457600080fd5b506103d360048036038101908080359060200190929190505050611126565b6040518082815260200191505060405180910390f35b3480156103f557600080fd5b506103fe611176565b005b34801561040c57600080fd5b5061041561120e565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b50610440611214565b604051808260ff1660ff16815260200191505060405180910390f35b34801561046857600080fd5b50610471611219565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c61121f565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b506105166004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061127d565b005b34801561052457600080fd5b5061052d6115a6565b6040518082815260200191505060405180910390f35b34801561054f57600080fd5b50610584600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c5565b6040518082815260200191505060405180910390f35b3480156105a657600080fd5b506105af61160e565b6040518082815260200191505060405180910390f35b3480156105d157600080fd5b50610604600480360381019080803590602001909291908035906020019092919080359060200190929190505050611618565b005b34801561061257600080fd5b5061061b611690565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b5061064661169a565b6040518082815260200191505060405180910390f35b34801561066857600080fd5b50610671611701565b6040518082815260200191505060405180910390f35b34801561069357600080fd5b5061069c611716565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106dc5780820151818401526020810190506106c1565b50505050905090810190601f1680156107095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072357600080fd5b5061072c6117b4565b6040518082815260200191505060405180910390f35b34801561074e57600080fd5b5061077760048036038101908080359060200190929190803590602001909291905050506117fb565b005b34801561078557600080fd5b506107c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611890565b604051808215151515815260200191505060405180910390f35b3480156107ea57600080fd5b50610845600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611a1e565b005b61084f611a96565b604051808215151515815260200191505060405180910390f35b34801561087557600080fd5b506108b460048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a9f565b005b3480156108c257600080fd5b5061091d600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c5d565b005b34801561092b57600080fd5b5061094a60048036038101908080359060200190929190505050611cd5565b005b34801561095857600080fd5b50610961612154565b6040518082815260200191505060405180910390f35b34801561098357600080fd5b506109b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061215a565b005b3480156109c657600080fd5b506109e560048036038101908080359060200190929190505050612213565b005b3480156109f357600080fd5b506109fc612414565b005b610a32600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612473565b6040518082815260200191505060405180910390f35b348015610a5457600080fd5b50610a9360048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612484565b005b348015610aa157600080fd5b50610ac060048036038101908080359060200190929190505050612584565b005b348015610ace57600080fd5b50610b03600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126d6565b005b6000806000806000339350620186a06003548702811515610b2257fe5b04925082601860008282540192505081905550610b3f8684612778565b9150610b52826006546007546001612791565b9050620186a06005548202811515610b6657fe5b0460136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081118015610bf15750601654610bef826016546128e3565b115b1515610bfc57600080fd5b610c08601654826128e3565b60168190555060085460025401610c21826016546128e3565b101515610c2d57600080fd5b610c4681606460148402811515610c4057fe5b04612778565b9050610c91601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826128e3565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a380945050505050919050565b600080339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610da357600080fd5b6001831415610f4757600091505b8451821015610f46578382815181101515610dc857fe5b90602001906020020151601360008785815181101515610de457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460165403016016819055508382815181101515610e4257fe5b90602001906020020151601360008785815181101515610e5e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508482815181101515610eb457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8685815181101515610f1a57fe5b906020019060200201516040518082815260200191505060405180910390a38180600101925050610db1565b5b600283141561100e57600091505b845182101561100d578382815181101515610f6c57fe5b90602001906020020151601460008785815181101515610f8857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508382815181101515610fe757fe5b906020019060200201516018600082825401925050819055508180600101925050610f55565b5b5050505050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b505050505081565b600080600080620186a060035486028115156110cb57fe5b0492506110d88584612778565b91506110eb826006546007546000612791565b905061110981620186a0600554840281151561110357fe5b04612778565b9050809350505050919050565b6000600254905090565b60075481565b600080600080601654851115151561113d57600080fd5b611148856000612901565b9250620186a0600454840281151561115c57fe5b0491506111698383612778565b9050809350505050919050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156111d357600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60065481565b600081565b60025481565b6000806000806000601654141561124457632cb417806571afd498d000039350611277565b61125060026000612901565b9250620186a0600454840281151561126457fe5b0491506112718383612778565b90508093505b50505090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156112da57600080fd5b8160008151811015156112e957fe5b90602001906020020151600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600181518110151561134257fe5b90602001906020020151600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600281518110151561139b57fe5b90602001906020020151600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160038151811015156113f457fe5b90602001906020020151600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600481518110151561144d57fe5b90602001906020020151600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160058151811015156114a657fe5b90602001906020020151601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160068151811015156114ff57fe5b90602001906020020151601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600781518110151561155857fe5b90602001906020020151601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601654905090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561167557600080fd5b83600681905550826007819055508160188190555050505050565b6000600654905090565b600080339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156116f857600080fd5b60185491505090565b600080339050611710816115c5565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ac5780601f10611781576101008083540402835291602001916117ac565b820191906000526020600020905b81548152906001019060200180831161178f57829003601f168201915b505050505081565b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561185857600080fd5b600182141561186957826003819055505b600282141561187a57826004819055505b600382141561188b57826005819055505b505050565b6000803390506118df601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612778565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061196b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128e3565b601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a7b57600080fd5b8160019080519060200190611a91929190612bc3565b505050565b60006001905090565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611afc57600080fd5b611b45601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128e3565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bf360136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612778565b60136000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611cba57600080fd5b8160009080519060200190611cd0929190612bc3565b505050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611d3257600080fd5b60185482111515612150576127106105358302811515611d4e57fe5b0460146000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611dce57fe5b0460146000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611e4e57fe5b0460146000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611ece57fe5b0460146000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611f4e57fe5b0460146000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106105358302811515611fce57fe5b0460146000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106103e8830281151561204e57fe5b0460146000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506127106103e883028115156120ce57fe5b0460146000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061214960185483612778565b6018819055505b5050565b60085481565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121b757600080fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080600080600080612224611701565b11151561223057600080fd5b339450601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561228157600080fd5b85935061228f846001612901565b9250620186a060045484028115156122a357fe5b0491506122b08383612778565b9050816018600082825401925050819055506122ce60165485612778565b60168190555061231d601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612778565b601360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123a6573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600080339150601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561246f5761246e81612213565b5b5050565b600061247e34610b05565b50919050565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156124e157600080fd5b61252a601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128e3565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612579601654846128e3565b601681905550505050565b80601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156125d257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612618573d6000803e3d6000fd5b5080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6126be846110b3565b6040518082815260200191505060405180910390a350565b6000339050601760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561273357600080fd5b81600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600082821115151561278657fe5b818303905092915050565b60008060008060008060008060018a0360020a632cb417800296506127b98b60020288612778565b9550601654945060009350866002026127e46127de8e8a6008020260028a0a01612a39565b88612778565b8115156127ed57fe5b0492506127f98a612a84565b91505b8185840111156128a657848203925061282d8c8860018603028d6002020160028681151561282657fe5b0402612778565b9b508660018403028b019a5060018a01995060018a0360020a632cb4178002965061285b8b60020288612778565b95508660020261287d6128778e8a6008020260028a0a01612a39565b88612778565b81151561288657fe5b0490508285019450828401935080925061289f8a612a84565b91506127fc565b82840193508660018403028b019a506001151589151514156128d1578a600681905550896007819055505b83975050505050505050949350505050565b60008082840190508381101515156128f757fe5b8091505092915050565b600080600080600080600080600080601654985060009750600754965061292a60018803612a84565b955060065494506001870360020a632cb417800293505b858c8a0310156129d257858903925060008314156129785760018903985060018703965061297160018803612a84565b9550612941565b83600184030291508185039050828c039b5081816002020160028481151561299c57fe5b04028801975080945082890398506001870396506001870360020a632cb417800293506129cb60018803612a84565b9550612941565b60008c1115612a0b578360018d0302850390508360018d0302816002020160028d8115156129fc57fe5b0402880197508b890398508094505b600115158b15151415612a275786600781905550846006819055505b87995050505050505050505092915050565b600080600260018401811515612a4b57fe5b0490508291505b81811015612a7e578091506002818285811515612a6b57fe5b0401811515612a7657fe5b049050612a52565b50919050565b6000600382111515612a9d5781620186a0029050612bbe565b600382118015612aae575060068211155b15612ac85762015f906003830302620493e0019050612bbe565b600682118015612ad9575060098211155b15612af3576201388060068303026208b290019050612bbe565b600982118015612b045750600c8211155b15612b1e57620111706009830302620c5c10019050612bbe565b600c82118015612b2f5750600f8211155b15612b485761ea60600c830302620f9060019050612bbe565b600f82118015612b59575060128211155b15612b725761c350600f83030262124f80019050612bbe565b601282118015612b83575060158211155b15612b9c57619c40601283030262149970019050612bbe565b6015821115612bb957617530601283030262166e30019050612bbe565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612c0457805160ff1916838001178555612c32565b82800160010185558215612c32579182015b82811115612c31578251825591602001919060010190612c16565b5b509050612c3f9190612c43565b5090565b612c6591905b80821115612c61576000816000905550600101612c49565b5090565b905600a165627a7a723058203ce038cf59c1ca8894f6ec5c4222926772be19a10197696a3211ee8888803f5a0029

Deployed Bytecode Sourcemap

28:18266:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3691:25;3706:9;3691:14;:25::i;:::-;;28:18266;2414:718;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2414:718:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;829:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;829:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11266:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11266:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9041:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9041:122:0;;;;;;;;;;;;;;;;;;;;;;;1329:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1329:22:0;;;;;;;;;;;;;;;;;;;;;;;10584:453;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10584:453:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7856:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7856:83:0;;;;;;1248:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1248:74:0;;;;;;;;;;;;;;;;;;;;;;;900:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;900:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;941:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;941:37:0;;;;;;;;;;;;;;;;;;;;;;;9823:537;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9823:537:0;;;;;;;;;;;;;;;;;;;;;;;5899:360;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5899:360:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8892:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8892:137:0;;;;;;;;;;;;;;;;;;;;;;;9640:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9640:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9175:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9175:110:0;;;;;;;;;;;;;;;;;;;;;;;3246:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3246:225:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10443:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10443:123:0;;;;;;;;;;;;;;;;;;;;;;;6271:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6271:147:0;;;;;;;;;;;;;;;;;;;;;;;9364:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9364:182:0;;;;;;;;;;;;;;;;;;;;;;;865:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;865:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;865:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6430:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6430:134:0;;;;;;;;;;;;;;;;;;;;;;;7957:338;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7957:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7296:548;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7296:548:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8433:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8433:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3144:90;;;;;;;;;;;;;;;;;;;;;;;;;;;4046:345;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4046:345:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8309:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8309:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6576:708;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6576:708:0;;;;;;;;;;;;;;;;;;;;;;;;;;1358:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1358:37:0;;;;;;;;;;;;;;;;;;;;;;;8728:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8728:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5040:847;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5040:847:0;;;;;;;;;;;;;;;;;;;;;;;;;;4777:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4777:199:0;;;;;;3477:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3736:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3736:298:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4403:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4403:304:0;;;;;;;;;;;;;;;;;;;;;;;;;;8561:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8561:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11782:1218;11868:7;11916:24;11964:18;12067:22;12146:23;11943:10;11916:37;;12016:6;12005:10;;11985:17;:30;:37;;;;;;;;11964:58;;12046:10;12033:9;;:23;;;;;;;;;;;12092:43;12105:17;12124:10;12092:12;:43::i;:::-;12067:68;;12172:60;12190:14;12207:13;;12222:3;;12227:4;12172:17;:60::i;:::-;12146:86;;12315:6;12302:12;;12284:15;:30;:37;;;;;;;;12243:19;:37;12263:16;;;;;;;;;;;12243:37;;;;;;;;;;;;;;;;:78;;;;;;;;;;;12358:1;12340:15;:19;:82;;;;;12409:12;;12364:42;12377:15;12393:12;;12364;:42::i;:::-;:57;12340:82;12332:91;;;;;;;;12459:43;12472:12;;12486:15;12459:12;:43::i;:::-;12444:12;:58;;;;12580:13;;12567:12;;:26;12521:42;12534:15;12550:12;;12521;:42::i;:::-;:73;12513:82;;;;;;;;12668:55;12681:15;12719:3;12716:2;12698:15;:20;:24;;;;;;;;12668:12;:55::i;:::-;12650:73;;12774:68;12787:19;:37;12807:16;12787:37;;;;;;;;;;;;;;;;12826:15;12774:12;:68::i;:::-;12734:19;:37;12754:16;12734:37;;;;;;;;;;;;;;;:108;;;;12915:16;12891:58;;12908:4;12891:58;;;12933:15;12891:58;;;;;;;;;;;;;;;;;;12977:15;12970:22;;11782:1218;;;;;;;:::o;2414:718::-;2592:6;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;2561:1;2549:8;:13;2546:346;;;2601:1;2592:10;;2588:293;2606:6;:13;2604:1;:15;2588:293;;;2719:9;2729:1;2719:12;;;;;;;;;;;;;;;;;;2686:19;:30;2706:6;2713:1;2706:9;;;;;;;;;;;;;;;;;;2686:30;;;;;;;;;;;;;;;;2672:12;;:44;:59;2657:12;:74;;;;2783:9;2793:1;2783:12;;;;;;;;;;;;;;;;;;2750:19;:30;2770:6;2777:1;2770:9;;;;;;;;;;;;;;;;;;2750:30;;;;;;;;;;;;;;;:45;;;;2842:6;2849:1;2842:9;;;;;;;;;;;;;;;;;;2819:46;;2836:4;2819:46;;;2852:9;2862:1;2852:12;;;;;;;;;;;;;;;;;;2819:46;;;;;;;;;;;;;;;;;;2620:3;;;;;;;2588:293;;;2546:346;2917:1;2905:8;:13;2902:223;;;2952:1;2948:5;;2944:170;2957:6;:13;2955:1;:15;2944:170;;;3042:9;3052:1;3042:12;;;;;;;;;;;;;;;;;;3008:19;:30;3028:6;3035:1;3028:9;;;;;;;;;;;;;;;;;;3008:30;;;;;;;;;;;;;;;;:46;;;;;;;;;;;3086:9;3096:1;3086:12;;;;;;;;;;;;;;;;;;3073:9;;:25;;;;;;;;;;;2971:3;;;;;;;2944:170;;;2902:223;2414:718;;;;;:::o;829:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11266:504::-;11375:7;11400:18;11468:22;11546:23;11451:6;11440:10;;11421:16;:29;:36;;;;;;;;11400:57;;11493:42;11506:16;11524:10;11493:12;:42::i;:::-;11468:67;;11572:60;11590:14;11606:13;;11621:3;;11626:5;11572:17;:60::i;:::-;11546:86;;11661:68;11674:15;11722:6;11709:12;;11691:15;:30;:37;;;;;;;;11661:12;:68::i;:::-;11643:86;;11747:15;11740:22;;11266:504;;;;;;:::o;9041:122::-;9111:7;9143:12;;9136:19;;9041:122;:::o;1329:22::-;;;;:::o;10584:453::-;10692:7;10766:17;10835:18;10937:22;10742:12;;10725:13;:29;;10717:38;;;;;;;;10786;10804:13;10818:5;10786:17;:38::i;:::-;10766:58;;10880:6;10868:11;;10856:9;:23;:30;;;;;;;;10835:51;;10962:35;10975:9;10986:10;10962:12;:35::i;:::-;10937:60;;11015:14;11008:21;;10584:453;;;;;;:::o;7856:83::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;7926:4;;;;;;;;;;;7913:18;;;1248:74;;;;:::o;900:34::-;933:1;900:34;:::o;941:37::-;;;;:::o;9823:537::-;9894:7;10118:17;10179:18;10245:22;10018:1;10002:12;;:17;9999:354;;;1105:9;1032:15;10042:43;10035:50;;;;9999:354;10138:26;10156:1;10158:5;10138:17;:26::i;:::-;10118:46;;10224:6;10212:11;;10200:9;:23;:30;;;;;;;;10179:51;;10270:35;10283:9;10294:10;10270:12;:35::i;:::-;10245:60;;10327:14;10320:21;;9823:537;;;;;:::o;5899:360::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;6005:12;6018:1;6005:15;;;;;;;;;;;;;;;;;;5998:4;;:22;;;;;;;;;;;;;;;;;;6038:12;6051:1;6038:15;;;;;;;;;;;;;;;;;;6031:4;;:22;;;;;;;;;;;;;;;;;;6071:12;6084:1;6071:15;;;;;;;;;;;;;;;;;;6064:4;;:22;;;;;;;;;;;;;;;;;;6104:12;6117:1;6104:15;;;;;;;;;;;;;;;;;;6097:4;;:22;;;;;;;;;;;;;;;;;;6137:12;6150:1;6137:15;;;;;;;;;;;;;;;;;;6130:4;;:22;;;;;;;;;;;;;;;;;;6170:12;6183:1;6170:15;;;;;;;;;;;;;;;;;;6163:4;;:22;;;;;;;;;;;;;;;;;;6203:12;6216:1;6203:15;;;;;;;;;;;;;;;;;;6196:4;;:22;;;;;;;;;;;;;;;;;;6236:12;6249:1;6236:15;;;;;;;;;;;;;;;;;;6229:4;;:22;;;;;;;;;;;;;;;;;;5899:360;;:::o;8892:137::-;8971:4;9008;9000:21;;;8993:28;;8892:137;:::o;9640:169::-;9732:7;9764:19;:37;9784:16;9764:37;;;;;;;;;;;;;;;;9757:44;;9640:169;;;:::o;9175:110::-;9233:7;9265:12;;9258:19;;9175:110;:::o;3246:225::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;3396:13;3380;:29;;;;3426:4;3420:3;:10;;;;3453;3441:9;:22;;;;3246:225;;;;:::o;10443:123::-;10513:7;10545:13;;10538:20;;10443:123;:::o;6271:147::-;6365:7;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;6397:9;;6390:16;;6271:147;;:::o;9364:182::-;9431:7;9456:24;9483:10;9456:37;;9511:27;9521:16;9511:9;:27::i;:::-;9504:34;;9364:182;;:::o;865:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6430:134::-;6489:7;6521:19;:31;6541:10;6521:31;;;;;;;;;;;;;;;;6514:38;;6430:134;:::o;7957:338::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;8057:1;8049:4;:9;8046:73;;;8097:10;8084;:23;;;;8046:73;8140:1;8132:4;:9;8129:74;;;8181:10;8167:11;:24;;;;8129:74;8224:1;8216:4;:9;8213:75;;;8266:10;8251:12;:25;;;;8213:75;7957:338;;;:::o;7296:548::-;7392:4;7432:24;7459:10;7432:37;;7550:68;7563:19;:37;7583:16;7563:37;;;;;;;;;;;;;;;;7602:15;7550:12;:68::i;:::-;7510:19;:37;7530:16;7510:37;;;;;;;;;;;;;;;:108;;;;7663:62;7676:19;:31;7696:10;7676:31;;;;;;;;;;;;;;;;7709:15;7663:12;:62::i;:::-;7629:19;:31;7649:10;7629:31;;;;;;;;;;;;;;;:96;;;;7768:10;7741:55;;7750:16;7741:55;;;7780:15;7741:55;;;;;;;;;;;;;;;;;;7832:4;7825:11;;7296:548;;;;;:::o;8433:120::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;8538:7;8529:6;:16;;;;;;;;;;;;:::i;:::-;;8433:120;;:::o;3144:90::-;3193:4;3222;3215:11;;3144:90;:::o;4046:345::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;4213:59;4226:19;:37;4246:16;4226:37;;;;;;;;;;;;;;;;4264:7;4213:12;:59::i;:::-;4173:19;:37;4193:16;4173:37;;;;;;;;;;;;;;;:99;;;;4323:60;4336:19;:37;4356:16;;;;;;;;;;;4336:37;;;;;;;;;;;;;;;;4375:7;4323:12;:60::i;:::-;4283:19;:37;4303:16;;;;;;;;;;;4283:37;;;;;;;;;;;;;;;:100;;;;4046:345;;;:::o;8309:112::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;8408:5;8401:4;:12;;;;;;;;;;;;:::i;:::-;;8309:112;;:::o;6576:708::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;6691:9;;6680:7;:20;;6677:600;;;6767:5;6762:4;6754:7;:12;:18;;;;;;;;6726:19;:25;6746:4;;;;;;;;;;;6726:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6829:5;6824:4;6816:7;:12;:18;;;;;;;;6788:19;:25;6808:4;;;;;;;;;;;6788:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6891:5;6886:4;6878:7;:12;:18;;;;;;;;6850:19;:25;6870:4;;;;;;;;;;;6850:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6953:5;6948:4;6940:7;:12;:18;;;;;;;;6912:19;:25;6932:4;;;;;;;;;;;6912:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7015:5;7010:4;7002:7;:12;:18;;;;;;;;6974:19;:25;6994:4;;;;;;;;;;;6974:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7077:5;7072:4;7064:7;:12;:18;;;;;;;;7036:19;:25;7056:4;;;;;;;;;;;7036:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7139:5;7134:4;7126:7;:12;:18;;;;;;;;7098:19;:25;7118:4;;;;;;;;;;;7098:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7201:5;7196:4;7188:7;:12;:18;;;;;;;;7160:19;:25;7180:4;;;;;;;;;;;7160:25;;;;;;;;;;;;;;;;:47;;;;;;;;;;;7234:31;7247:9;;7257:7;7234:12;:31::i;:::-;7222:9;:43;;;;6677:600;6576:708;;:::o;1358:37::-;;;;:::o;8728:156::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;8872:4;8836:14;:33;8851:17;8836:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;8728:156;;:::o;5040:847::-;5160:24;5284:15;5328:17;5390:18;5452:22;141:1;128:10;:8;:10::i;:::-;:14;120:23;;;;;;;;5187:10;5160:37;;5235:19;:37;5255:16;5235:37;;;;;;;;;;;;;;;;5216:15;:56;;5208:65;;;;;;;;5302:15;5284:33;;5348:31;5366:7;5374:4;5348:17;:31::i;:::-;5328:51;;5435:6;5423:11;;5411:9;:23;:30;;;;;;;;5390:51;;5477:35;5490:9;5501:10;5477:12;:35::i;:::-;5452:60;;5536:10;5523:9;;:23;;;;;;;;;;;5615:35;5628:12;;5642:7;5615:12;:35::i;:::-;5600:12;:50;;;;5701:60;5714:19;:37;5734:16;5714:37;;;;;;;;;;;;;;;;5753:7;5701:12;:60::i;:::-;5661:19;:37;5681:16;5661:37;;;;;;;;;;;;;;;:100;;;;5772:16;:25;;:41;5798:14;5772:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5772:41:0;5864:4;5829:50;;5838:16;5829:50;;;5871:7;5829:50;;;;;;;;;;;;;;;;;;5040:847;;;;;;:::o;4777:199::-;4825:24;4873:15;4852:10;4825:37;;4891:19;:37;4911:16;4891:37;;;;;;;;;;;;;;;;4873:55;;4952:1;4942:7;:11;4939:29;;;4955:13;4960:7;4955:4;:13::i;:::-;4939:29;4777:199;;:::o;3477:142::-;3561:7;3586:25;3601:9;3586:14;:25::i;:::-;;3477:142;;;:::o;3736:298::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;3906:59;3919:19;:37;3939:16;3919:37;;;;;;;;;;;;;;;;3957:7;3906:12;:59::i;:::-;3866:19;:37;3886:16;3866:37;;;;;;;;;;;;;;;:99;;;;3991:35;4005:12;;4018:7;3991:12;:35::i;:::-;3976:12;:50;;;;3736:298;;;:::o;4403:304::-;4515:7;4480:19;:31;4500:10;4480:31;;;;;;;;;;;;;;;;:42;;4472:51;;;;;;;;4534:10;:19;;:28;4554:7;4534:28;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4534:28:0;4608:7;4573:19;:31;4593:10;4573:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;4660:4;4631:68;;4640:10;4631:68;;;4666:32;4690:7;4666:23;:32::i;:::-;4631:68;;;;;;;;;;;;;;;;;;4403:304;:::o;8561:155::-;210:24;237:10;210:37;;266:14;:32;281:16;266:32;;;;;;;;;;;;;;;;;;;;;;;;;258:41;;;;;;;;8691:17;8672:16;;:36;;;;;;;;;;;;;;;;;;8561:155;;:::o;19208:123::-;19266:7;19298:1;19293;:6;;19286:14;;;;;;19322:1;19318;:5;19311:12;;19208:123;;;;:::o;13011:2384::-;13140:7;13165:30;13247:15;13331:20;13377;13412:23;13789:16;14459:27;13232:1;13227:4;:6;13223:1;:11;1105:9;13199:36;13165:71;;13265:55;13281:13;13279:1;:15;13297:22;13265:12;:55::i;:::-;13247:73;;13354:12;;13331:35;;13400:1;13377:24;;13744:22;13742:1;:24;13472:253;13508:166;13637:9;13614:22;13612:1;:24;:34;13578:1;13569:7;:10;:78;13508:4;:166::i;:::-;13699:7;13472:12;:253::i;:::-;13453:314;;;;;;;;13412:366;;13808:17;13820:4;13808:11;:17::i;:::-;13789:36;;13836:1264;13877:8;13861:12;13843:15;:30;13842:43;13836:1264;;;13930:12;13919:8;:23;13901:41;;13969:196;14000:9;14126:22;14105:1;14089:15;:17;14088:60;14072:13;14070:1;:15;14069:80;14047:1;14030:15;14029:19;;;;;;;;14028:122;13969:12;:196::i;:::-;13957:208;;14231:22;14228:1;14212:15;:17;14211:42;14196:13;:58;14180:74;;14283:1;14276:4;:8;14269:15;;14360:1;14355:4;:6;14350:1;14349:13;1105:9;14325:38;14299:65;;14389:55;14405:13;14403:1;:15;14421:22;14389:12;:55::i;:::-;14379:65;;14835:22;14833:1;:24;14531:281;14571:182;14712:9;14689:22;14687:1;:24;:34;14649:1;14640:7;:10;:82;14571:4;:182::i;:::-;14782:7;14531:12;:281::i;:::-;14508:350;;;;;;;;14459:414;;14918:15;14903:12;:30;14888:45;;14978:15;14963:12;:30;14948:45;;15026:19;15008:37;;15071:17;15083:4;15071:11;:17::i;:::-;15060:28;;13836:1264;;;15140:15;15125:12;:30;15110:45;;15217:22;15214:1;15198:15;:17;15197:42;15182:13;:58;15166:74;;15262:4;15254:12;;:4;:12;;;15251:107;;;15308:13;15292;:29;;;;15342:4;15336:3;:10;;;;15251:107;15375:12;15368:19;;13011:2384;;;;;;;;;;;;;:::o;19406:147::-;19464:7;19484:9;19500:1;19496;:5;19484:17;;19524:1;19519;:6;;19512:14;;;;;;19544:1;19537:8;;19406:147;;;;;:::o;16350:1725::-;16455:7;16480:20;16526:22;16563:12;16592:16;16641:21;16689:30;16840:20;17120:9;17188;16503:12;;16480:35;;16551:1;16526:26;;16578:3;;16563:18;;16611:19;16628:1;16623:4;:6;16611:11;:19::i;:::-;16592:38;;16665:13;;16641:37;;16758:1;16753:4;:6;16748:1;16747:13;1105:9;16723:38;16689:73;;16773:823;16806:8;16795:7;16780:12;:22;16779:35;16773:823;;;16878:8;16863:12;:23;16840:46;;16920:1;16904:12;:17;16901:205;;;16985:1;16970:12;:16;16955:31;;17013:1;17005:9;;;;17044:19;17061:1;17056:4;:6;17044:11;:19::i;:::-;17033:30;;17082:8;;16901:205;17150:22;17147:1;17134:12;:14;17133:39;17120:53;;17216:1;17200:13;:17;17188:29;;17252:12;17242:7;:22;17232:32;;17338:1;17335;17333;:3;17332:7;17328:1;17315:12;:14;;;;;;;;17314:26;17296:14;:45;17279:62;;17372:1;17356:17;;17418:12;17403;:27;17388:42;;17457:1;17452:4;:6;17445:13;;17535:1;17530:4;:6;17525:1;17524:13;1105:9;17500:38;17474:65;;17565:19;17582:1;17577:4;:6;17565:11;:19::i;:::-;17554:30;;16773:823;;;17619:1;17609:7;:11;17606:303;;;17680:22;17677:1;17669:7;:9;17668:34;17651:13;:52;17647:56;;17786:22;17783:1;17775:7;:9;17774:34;17770:1;17768;:3;17767:42;17763:1;17755:7;:9;;;;;;;;17754:56;17736:14;:75;17719:92;;17857:7;17842:12;:22;17827:37;;17896:1;17880:17;;17606:303;17940:4;17931:13;;:5;:13;;;17928:108;;;17976:4;17970:3;:10;;;;18011:13;17995;:29;;;;17928:108;18053:14;18046:21;;16350:1725;;;;;;;;;;;;;:::o;18093:198::-;18138:6;18157;18176:1;18171;18167;:5;18166:11;;;;;;;;18157:20;;18192:1;18188:5;;18204:80;18215:1;18211;:5;18204:80;;;18237:1;18233:5;;18271:1;18266;18262;18258;:5;;;;;;;;:9;18257:15;;;;;;;;18253:19;;18204:80;;;18093:198;;;;:::o;15407:931::-;15479:7;15515:1;15507:4;:9;;15504:72;;;15559:4;15550:6;:13;15542:22;;;;15504:72;15596:1;15589:4;:8;:21;;;;;15609:1;15601:4;:9;;15589:21;15586:96;;;15663:5;15660:1;15655:4;:6;15654:14;15644:6;:25;15636:34;;;;15586:96;15702:1;15695:4;:8;:21;;;;;15715:1;15707:4;:9;;15695:21;15692:96;;;15769:5;15766:1;15761:4;:6;15760:14;15750:6;:25;15742:34;;;;15692:96;15808:1;15801:4;:8;:22;;;;;15821:2;15813:4;:10;;15801:22;15798:96;;;15875:5;15872:1;15867:4;:6;15866:14;15857:6;:24;15849:33;;;;15798:96;15914:2;15907:4;:9;:23;;;;;15928:2;15920:4;:10;;15907:23;15904:98;;;15983:5;15979:2;15974:4;:7;15973:15;15964:7;:25;15956:34;;;;15904:98;16022:2;16015:4;:9;:23;;;;;16036:2;16028:4;:10;;16015:23;16012:98;;;16091:5;16087:2;16082:4;:7;16081:15;16072:7;:25;16064:34;;;;16012:98;16130:2;16123:4;:9;:23;;;;;16144:2;16136:4;:10;;16123:23;16120:98;;;16199:5;16195:2;16190:4;:7;16189:15;16180:7;:25;16172:34;;;;16120:98;16238:2;16231:4;:9;16228:84;;;16293:5;16289:2;16284:4;:7;16283:15;16274:7;:25;16266:34;;;;16228:84;16329:1;16322:8;;15407:931;;;;:::o;28:18266::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://3ce038cf59c1ca8894f6ec5c4222926772be19a10197696a3211ee8888803f5a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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