ETH Price: $2,739.72 (+2.65%)

Contract

0x968a1fEf28252A5F7dC0493B7E442929B4B1DF4C
 

Overview

ETH Balance

0.006508083321591488 ETH

Eth Value

$17.83 (@ $2,739.72/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Exit95840192020-03-01 8:13:481811 days ago1583050428IN
0x968a1fEf...9B4B1DF4C
0 ETH0.000075432
Transfer95839542020-03-01 7:59:071811 days ago1583049547IN
0x968a1fEf...9B4B1DF4C
0.03 ETH0.000068921
Withdraw95721692020-02-28 12:43:051813 days ago1582893785IN
0x968a1fEf...9B4B1DF4C
0 ETH0.000421747.09141276
Transfer95715042020-02-28 10:12:521813 days ago1582884772IN
0x968a1fEf...9B4B1DF4C
0 ETH0.00088
Exit95609982020-02-26 19:15:071815 days ago1582744507IN
0x968a1fEf...9B4B1DF4C
0 ETH0.000365446
Exit95607712020-02-26 18:29:131815 days ago1582741753IN
0x968a1fEf...9B4B1DF4C
0 ETH0.0010354317
Exit95607562020-02-26 18:25:291815 days ago1582741529IN
0x968a1fEf...9B4B1DF4C
0 ETH0.0010354317
Exit95602902020-02-26 16:41:561815 days ago1582735316IN
0x968a1fEf...9B4B1DF4C
0 ETH0.0023754139
Sell95602882020-02-26 16:41:271815 days ago1582735287IN
0x968a1fEf...9B4B1DF4C
0 ETH0.0007307513
Buy95602782020-02-26 16:39:071815 days ago1582735147IN
0x968a1fEf...9B4B1DF4C
0.01 ETH0.0009146913
0x1a08070f95602282020-02-26 16:27:471815 days ago1582734467IN
0x968a1fEf...9B4B1DF4C
0.137 ETH0.0021988722
0xfb7aca1995557612020-02-26 0:07:181815 days ago1582675638IN
0x968a1fEf...9B4B1DF4C
0.09 ETH0.000184662.64
Transfer95493392020-02-25 0:17:531816 days ago1582589873IN
0x968a1fEf...9B4B1DF4C
0 ETH0.00018721
0x442f392795412172020-02-23 18:18:481818 days ago1582481928IN
0x968a1fEf...9B4B1DF4C
0.24 ETH0.000099941
Transfer95398962020-02-23 13:26:121818 days ago1582464372IN
0x968a1fEf...9B4B1DF4C
0.056 ETH0.000653716.6
0x1a08070f95398952020-02-23 13:25:561818 days ago1582464356IN
0x968a1fEf...9B4B1DF4C
0.56 ETH0.000210382.2
Transfer95396632020-02-23 12:32:321818 days ago1582461152IN
0x968a1fEf...9B4B1DF4C
0.3 ETH0.000851328

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
95840192020-03-01 8:13:481811 days ago1583050428
0x968a1fEf...9B4B1DF4C
0.15385038 ETH
95721692020-02-28 12:43:051813 days ago1582893785
0x968a1fEf...9B4B1DF4C
0.07224639 ETH
95715042020-02-28 10:12:521813 days ago1582884772
0x968a1fEf...9B4B1DF4C
0.07224639 ETH
95609982020-02-26 19:15:071815 days ago1582744507
0x968a1fEf...9B4B1DF4C
0.10313028 ETH
95607712020-02-26 18:29:131815 days ago1582741753
0x968a1fEf...9B4B1DF4C
0.05928824 ETH
95607562020-02-26 18:25:291815 days ago1582741529
0x968a1fEf...9B4B1DF4C
0.96722534 ETH
95602902020-02-26 16:41:561815 days ago1582735316
0x968a1fEf...9B4B1DF4C
0.06075125 ETH
95493392020-02-25 0:17:531816 days ago1582589873
0x968a1fEf...9B4B1DF4C
0.00263795 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PZMTokenByAndSellConcept

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-02-20
*/

pragma solidity ^0.4.25;

/*
*
* PZM token By and Sell concept
* IT IS NOT PRIZM Coin, IT IS PZM Token!
*
* [✓] 4% Withdraw fee
* [✓] 10% Deposit fee
* [✓] 1% Token transfer
* [✓] 33% Referal link
*
*/

library Address {
  function toAddress(bytes source) internal pure returns(address addr) {
    assembly { addr := mload(add(source,0x14)) }
    return addr;
  }

  function isNotContract(address addr) internal view returns(bool) {
    uint length;
    assembly { length := extcodesize(addr) }
    return length == 0;
  }
}


contract PZMTokenByAndSellConcept {
    


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

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

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

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

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

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
);

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

    string public name = "PZM Token";
    string public symbol = "PZMT";
    uint8 constant public decimals = 18;
    uint8 constant internal entryFee_ = 10;
    uint8 constant internal transferFee_ = 1;
    uint8 constant internal exitFee_ = 4;
    uint8 constant internal refferalFee_ = 33;
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2 ** 64;
    uint256 public stakingRequirement = 50e18;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;

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

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

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

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

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

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

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

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

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

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        if (myDividends(true) > 0) {
            withdraw();
        }

        uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = tokensToEthereum_(_tokenFee);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        emit Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
    }


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

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

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

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

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

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

    function sellPrice() public view returns (uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

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

            return _taxedEthereum;
        }
    }

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

        return _amountOfTokens;
    }

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


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

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

        if (
            _referredBy != 0x0000000000000000000000000000000000000000 &&
            _referredBy != _customerAddress &&
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ) {
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }

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

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

        return _amountOfTokens;
    }

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

        return _tokensReceived;
    }

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

        return _etherReceived;
    }

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = (x + 1) / 2;
        y = x;

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

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

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

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

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

Contract Security Audit

Contract ABI

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

60c0604052600960808190527f505a4d20546f6b656e000000000000000000000000000000000000000000000060a0908152620000409160009190620000a9565b506040805180820190915260048082527f505a4d540000000000000000000000000000000000000000000000000000000060209092019182526200008791600191620000a9565b506802b5e3af16b1880000600255348015620000a257600080fd5b506200014e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000ec57805160ff19168380011785556200011c565b828001600101855582156200011c579182015b828111156200011c578251825591602001919060010190620000ff565b506200012a9291506200012e565b5090565b6200014b91905b808211156200012a576000815560010162000135565b90565b610f6a806200015e6000396000f3006080604052600436106101105763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461011e57806306fdde031461015157806310d0ffdd146101db57806318160ddd146101f35780632260937314610208578063313ce567146102205780633ccfd60b1461024b5780634b7503341461026257806356d399e814610277578063688abbf71461028c5780636b2f4632146102a657806370a08231146102bb5780638620410b146102dc578063949e8acd146102f157806395d89b4114610306578063a9059cbb1461031b578063e4849b3214610353578063e9fad8ee1461036b578063f088d54714610380578063fdb5a03e14610394575b61011b3460006103a9565b50005b34801561012a57600080fd5b5061013f600160a060020a036004351661060c565b60408051918252519081900360200190f35b34801561015d57600080fd5b50610166610647565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a0578181015183820152602001610188565b50505050905090810190601f1680156101cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e757600080fd5b5061013f6004356106d5565b3480156101ff57600080fd5b5061013f610708565b34801561021457600080fd5b5061013f60043561070e565b34801561022c57600080fd5b5061023561074a565b6040805160ff9092168252519081900360200190f35b34801561025757600080fd5b5061026061074f565b005b34801561026e57600080fd5b5061013f610822565b34801561028357600080fd5b5061013f610879565b34801561029857600080fd5b5061013f600435151561087f565b3480156102b257600080fd5b5061013f6108c2565b3480156102c757600080fd5b5061013f600160a060020a03600435166108c7565b3480156102e857600080fd5b5061013f6108e2565b3480156102fd57600080fd5b5061013f61092d565b34801561031257600080fd5b5061016661093f565b34801561032757600080fd5b5061033f600160a060020a0360043516602435610999565b604080519115158252519081900360200190f35b34801561035f57600080fd5b50610260600435610b3c565b34801561037757600080fd5b50610260610ca8565b61013f600160a060020a0360043516610cd5565b3480156103a057600080fd5b50610260610ce1565b600033818080808080806103c86103c18c600a610d97565b6064610dcd565b96506103d86103c1886021610d97565b95506103e48787610de4565b94506103f08b88610de4565b93506103fb84610df6565b9250680100000000000000008502915060008311801561042557506006546104238482610e8e565b115b151561043057600080fd5b600160a060020a038a161580159061045a575087600160a060020a03168a600160a060020a031614155b80156104805750600254600160a060020a038b1660009081526003602052604090205410155b156104c657600160a060020a038a166000908152600460205260409020546104a89087610e8e565b600160a060020a038b166000908152600460205260409020556104e1565b6104d08587610e8e565b945068010000000000000000850291505b60006006541115610545576104f860065484610e8e565b600681905568010000000000000000860281151561051257fe5b6007805492909104909101905560065468010000000000000000860281151561053757fe5b04830282038203915061054b565b60068390555b600160a060020a03881660009081526003602052604090205461056e9084610e8e565b600160a060020a03808a166000818152600360209081526040808320959095556007546005909152939020805493870286900393840190559192508b16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8d86426105d86108e2565b604080519485526020850193909352838301919091526060830152519081900360800190a350909998505050505050505050565b600160a060020a0316600090815260056020908152604080832054600390925290912054600754680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cd5780601f106106a2576101008083540402835291602001916106cd565b820191906000526020600020905b8154815290600101906020018083116106b057829003601f168201915b505050505081565b60008080806106e86103c186600a610d97565b92506106f48584610de4565b91506106ff82610df6565b95945050505050565b60065490565b600080600080600654851115151561072557600080fd5b61072e85610e9d565b925061073e6103c1846004610d97565b91506106ff8383610de4565b601281565b600080600061075e600161087f565b1161076857600080fd5b339150610775600061087f565b600160a060020a038316600081815260056020908152604080832080546801000000000000000087020190556004909152808220805490839055905193019350909183156108fc0291849190818181858888f193505050501580156107de573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b60008060008060065460001415610840576414f46b04009350610873565b610851670de0b6b3a7640000610e9d565b92506108616103c1846004610d97565b915061086d8383610de4565b90508093505b50505090565b60025481565b60003382610895576108908161060c565b6108b9565b600160a060020a0381166000908152600460205260409020546108b78261060c565b015b91505b50919050565b303190565b600160a060020a031660009081526003602052604090205490565b600080600080600654600014156109005764199c82cc009350610873565b610911670de0b6b3a7640000610e9d565b92506109216103c184600a610d97565b915061086d8383610e8e565b600033610939816108c7565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cd5780601f106106a2576101008083540402835291602001916106cd565b6000806000806000806109aa61092d565b116109b457600080fd5b336000818152600360205260409020549094508611156109d357600080fd5b60006109df600161087f565b11156109ed576109ed61074f565b6109fb6103c1876001610d97565b9250610a078684610de4565b9150610a1283610e9d565b9050610a2060065484610de4565b600655600160a060020a038416600090815260036020526040902054610a469087610de4565b600160a060020a038086166000908152600360205260408082209390935590891681522054610a759083610e8e565b600160a060020a0388811660008181526003602090815260408083209590955560078054948a16835260059091528482208054948c02909403909355825491815292909220805492850290920190915554600654610ae99190680100000000000000008402811515610ae357fe5b04610e8e565b600755604080518381529051600160a060020a03808a1692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019695505050505050565b6000806000806000806000610b4f61092d565b11610b5957600080fd5b33600081815260036020526040902054909650871115610b7857600080fd5b869450610b8485610e9d565b9350610b946103c1856004610d97565b9250610ba08484610de4565b9150610bae60065486610de4565b600655600160a060020a038616600090815260036020526040902054610bd49086610de4565b600160a060020a03871660009081526003602090815260408083209390935560075460059091529181208054928802680100000000000000008602019283900390556006549192501015610c4457610c40600754600654680100000000000000008602811515610ae357fe5b6007555b85600160a060020a03167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442610c7a6108e2565b604080519485526020850193909352838301919091526060830152519081900360800190a250505050505050565b3360008181526003602052604081205490811115610cc957610cc981610b3c565b610cd161074f565b5050565b60006108bc34836103a9565b600080600080610cf1600161087f565b11610cfb57600080fd5b610d05600061087f565b33600081815260056020908152604080832080546801000000000000000087020190556004909152812080549082905590920194509250610d479084906103a9565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080831515610daa5760009150610dc6565b50828202828482811515610dba57fe5b0414610dc257fe5b8091505b5092915050565b6000808284811515610ddb57fe5b04949350505050565b600082821115610df057fe5b50900390565b6006546000906c01431e0fae6d7217caa00000009082906402540be400610e7b610e75730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001610f09565b85610de4565b811515610e8457fe5b0403949350505050565b600082820183811015610dc257fe5b600654600090670de0b6b3a7640000838101918101908390610ef66414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be40002811515610ef057fe5b04610de4565b811515610eff57fe5b0495945050505050565b80600260018201045b818110156108bc578091506002818285811515610f2b57fe5b0401811515610f3657fe5b049050610f125600a165627a7a72305820bf94750523f4e5eb9fab54d1151017f5b04e392cb7ced90b69e6219d8edafdf30029

Deployed Bytecode

0x6080604052600436106101105763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461011e57806306fdde031461015157806310d0ffdd146101db57806318160ddd146101f35780632260937314610208578063313ce567146102205780633ccfd60b1461024b5780634b7503341461026257806356d399e814610277578063688abbf71461028c5780636b2f4632146102a657806370a08231146102bb5780638620410b146102dc578063949e8acd146102f157806395d89b4114610306578063a9059cbb1461031b578063e4849b3214610353578063e9fad8ee1461036b578063f088d54714610380578063fdb5a03e14610394575b61011b3460006103a9565b50005b34801561012a57600080fd5b5061013f600160a060020a036004351661060c565b60408051918252519081900360200190f35b34801561015d57600080fd5b50610166610647565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a0578181015183820152602001610188565b50505050905090810190601f1680156101cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e757600080fd5b5061013f6004356106d5565b3480156101ff57600080fd5b5061013f610708565b34801561021457600080fd5b5061013f60043561070e565b34801561022c57600080fd5b5061023561074a565b6040805160ff9092168252519081900360200190f35b34801561025757600080fd5b5061026061074f565b005b34801561026e57600080fd5b5061013f610822565b34801561028357600080fd5b5061013f610879565b34801561029857600080fd5b5061013f600435151561087f565b3480156102b257600080fd5b5061013f6108c2565b3480156102c757600080fd5b5061013f600160a060020a03600435166108c7565b3480156102e857600080fd5b5061013f6108e2565b3480156102fd57600080fd5b5061013f61092d565b34801561031257600080fd5b5061016661093f565b34801561032757600080fd5b5061033f600160a060020a0360043516602435610999565b604080519115158252519081900360200190f35b34801561035f57600080fd5b50610260600435610b3c565b34801561037757600080fd5b50610260610ca8565b61013f600160a060020a0360043516610cd5565b3480156103a057600080fd5b50610260610ce1565b600033818080808080806103c86103c18c600a610d97565b6064610dcd565b96506103d86103c1886021610d97565b95506103e48787610de4565b94506103f08b88610de4565b93506103fb84610df6565b9250680100000000000000008502915060008311801561042557506006546104238482610e8e565b115b151561043057600080fd5b600160a060020a038a161580159061045a575087600160a060020a03168a600160a060020a031614155b80156104805750600254600160a060020a038b1660009081526003602052604090205410155b156104c657600160a060020a038a166000908152600460205260409020546104a89087610e8e565b600160a060020a038b166000908152600460205260409020556104e1565b6104d08587610e8e565b945068010000000000000000850291505b60006006541115610545576104f860065484610e8e565b600681905568010000000000000000860281151561051257fe5b6007805492909104909101905560065468010000000000000000860281151561053757fe5b04830282038203915061054b565b60068390555b600160a060020a03881660009081526003602052604090205461056e9084610e8e565b600160a060020a03808a166000818152600360209081526040808320959095556007546005909152939020805493870286900393840190559192508b16907f8032875b28d82ddbd303a9e4e5529d047a14ecb6290f80012a81b7e6227ff1ab8d86426105d86108e2565b604080519485526020850193909352838301919091526060830152519081900360800190a350909998505050505050505050565b600160a060020a0316600090815260056020908152604080832054600390925290912054600754680100000000000000009102919091030490565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cd5780601f106106a2576101008083540402835291602001916106cd565b820191906000526020600020905b8154815290600101906020018083116106b057829003601f168201915b505050505081565b60008080806106e86103c186600a610d97565b92506106f48584610de4565b91506106ff82610df6565b95945050505050565b60065490565b600080600080600654851115151561072557600080fd5b61072e85610e9d565b925061073e6103c1846004610d97565b91506106ff8383610de4565b601281565b600080600061075e600161087f565b1161076857600080fd5b339150610775600061087f565b600160a060020a038316600081815260056020908152604080832080546801000000000000000087020190556004909152808220805490839055905193019350909183156108fc0291849190818181858888f193505050501580156107de573d6000803e3d6000fd5b50604080518281529051600160a060020a038416917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050565b60008060008060065460001415610840576414f46b04009350610873565b610851670de0b6b3a7640000610e9d565b92506108616103c1846004610d97565b915061086d8383610de4565b90508093505b50505090565b60025481565b60003382610895576108908161060c565b6108b9565b600160a060020a0381166000908152600460205260409020546108b78261060c565b015b91505b50919050565b303190565b600160a060020a031660009081526003602052604090205490565b600080600080600654600014156109005764199c82cc009350610873565b610911670de0b6b3a7640000610e9d565b92506109216103c184600a610d97565b915061086d8383610e8e565b600033610939816108c7565b91505090565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106cd5780601f106106a2576101008083540402835291602001916106cd565b6000806000806000806109aa61092d565b116109b457600080fd5b336000818152600360205260409020549094508611156109d357600080fd5b60006109df600161087f565b11156109ed576109ed61074f565b6109fb6103c1876001610d97565b9250610a078684610de4565b9150610a1283610e9d565b9050610a2060065484610de4565b600655600160a060020a038416600090815260036020526040902054610a469087610de4565b600160a060020a038086166000908152600360205260408082209390935590891681522054610a759083610e8e565b600160a060020a0388811660008181526003602090815260408083209590955560078054948a16835260059091528482208054948c02909403909355825491815292909220805492850290920190915554600654610ae99190680100000000000000008402811515610ae357fe5b04610e8e565b600755604080518381529051600160a060020a03808a1692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019695505050505050565b6000806000806000806000610b4f61092d565b11610b5957600080fd5b33600081815260036020526040902054909650871115610b7857600080fd5b869450610b8485610e9d565b9350610b946103c1856004610d97565b9250610ba08484610de4565b9150610bae60065486610de4565b600655600160a060020a038616600090815260036020526040902054610bd49086610de4565b600160a060020a03871660009081526003602090815260408083209390935560075460059091529181208054928802680100000000000000008602019283900390556006549192501015610c4457610c40600754600654680100000000000000008602811515610ae357fe5b6007555b85600160a060020a03167f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e868442610c7a6108e2565b604080519485526020850193909352838301919091526060830152519081900360800190a250505050505050565b3360008181526003602052604081205490811115610cc957610cc981610b3c565b610cd161074f565b5050565b60006108bc34836103a9565b600080600080610cf1600161087f565b11610cfb57600080fd5b610d05600061087f565b33600081815260056020908152604080832080546801000000000000000087020190556004909152812080549082905590920194509250610d479084906103a9565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080831515610daa5760009150610dc6565b50828202828482811515610dba57fe5b0414610dc257fe5b8091505b5092915050565b6000808284811515610ddb57fe5b04949350505050565b600082821115610df057fe5b50900390565b6006546000906c01431e0fae6d7217caa00000009082906402540be400610e7b610e75730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001610f09565b85610de4565b811515610e8457fe5b0403949350505050565b600082820183811015610dc257fe5b600654600090670de0b6b3a7640000838101918101908390610ef66414f46b04008285046402540be40002018702600283670de0b6b3a763ffff1982890a8b900301046402540be40002811515610ef057fe5b04610de4565b811515610eff57fe5b0495945050505050565b80600260018201045b818110156108bc578091506002818285811515610f2b57fe5b0401811515610f3657fe5b049050610f125600a165627a7a72305820bf94750523f4e5eb9fab54d1151017f5b04e392cb7ced90b69e6219d8edafdf30029

Deployed Bytecode Sourcemap

564:12080:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2530:30;2545:9;2556:3;2530:14;:30::i;:::-;;564:12080;6731:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6731:224:0;-1:-1:-1;;;;;6731:224:0;;;;;;;;;;;;;;;;;;;;;1565:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1565:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1565:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7951:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7951:372:0;;;;;6043:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6043:91:0;;;;8331:395;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8331:395:0;;;;;1640:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1640:35:0;;;;;;;;;;;;;;;;;;;;;;;3262:437;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3262:437:0;;;;;;6963:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6963:526:0;;;;2060:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2060:41:0;;;;6301:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6301:276:0;;;;;;;5926:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5926:109:0;;;;6585:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6585:138:0;-1:-1:-1;;;;;6585:138:0;;;;;7497:446;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7497:446:0;;;;6142:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6142:151:0;;;;1604:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1604:29:0;;;;4737:1179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4737:1179:0;-1:-1:-1;;;;;4737:1179:0;;;;;;;;;;;;;;;;;;;;;;;;;3707:1022;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3707:1022:0;;;;;3047:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3047:207:0;;;;2361:124;;-1:-1:-1;;;;;2361:124:0;;;;;2576:463;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2576:463:0;;;;8736:1983;8826:7;8873:10;8826:7;;;;;;;8924:61;8937:42;8950:17;1718:2;8937:12;:42::i;:::-;8981:3;8924:12;:61::i;:::-;8894:91;-1:-1:-1;9021:66:0;9034:47;8894:91;1856:2;9034:12;:47::i;9021:66::-;8996:91;;9119:49;9132:19;9153:14;9119:12;:49::i;:::-;9098:70;;9204:52;9217:17;9236:19;9204:12;:52::i;:::-;9179:77;;9293:33;9311:14;9293:17;:33::i;:::-;9267:59;;2046:7;9352:10;:22;9337:37;;9413:1;9395:15;:19;:81;;;;-1:-1:-1;9464:12:0;;9418:43;9431:15;9464:12;9418;:43::i;:::-;:58;9395:81;9387:90;;;;;;;;-1:-1:-1;;;;;9508:57:0;;;;;;:105;;;9597:16;-1:-1:-1;;;;;9582:31:0;:11;-1:-1:-1;;;;;9582:31:0;;;9508:105;:176;;;;-1:-1:-1;9666:18:0;;-1:-1:-1;;;;;9630:32:0;;;;;;:19;:32;;;;;;:54;;9508:176;9490:454;;;-1:-1:-1;;;;;9756:29:0;;;;;;:16;:29;;;;;;9743:59;;9787:14;9743:12;:59::i;:::-;-1:-1:-1;;;;;9711:29:0;;;;;;:16;:29;;;;;:91;9490:454;;;9848:40;9861:10;9873:14;9848:12;:40::i;:::-;9835:53;;2046:7;9910:10;:22;9903:29;;9490:454;9975:1;9960:12;;:16;9956:340;;;10008:43;10021:12;;10035:15;10008:12;:43::i;:::-;9993:12;:58;;;2046:7;10086:22;;:37;;;;;;;10066:15;:58;;10086:37;;;;10066:58;;;;;10206:12;;2046:7;10181:22;;:37;;;;;;;;10162:15;:57;10154:4;:66;10146:4;:75;10139:82;;9956:340;;;10254:12;:30;;;9956:340;-1:-1:-1;;;;;10361:37:0;;;;;;:19;:37;;;;;;10348:68;;10400:15;10348:12;:68::i;:::-;-1:-1:-1;;;;;10308:37:0;;;;;;;:19;:37;;;;;;;;:108;;;;10462:15;;10514:10;:28;;;;;;:47;;10462:33;;;:40;;;10514:47;;;;;10462:40;;-1:-1:-1;10577:99:0;;;;10611:17;10480:15;10660:3;10665:10;:8;:10::i;:::-;10577:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10696:15:0;;8736:1983;-1:-1:-1;;;;;;;;;8736:1983:0:o;6731:224::-;-1:-1:-1;;;;;6906:28:0;6799:7;6906:28;;;:10;:28;;;;;;;;;6865:19;:37;;;;;;;6847:15;;2046:7;6847:55;;6837:97;;;;6826:121;;6731:224::o;1565:32::-;;;;;;;;;;;;;;;-1:-1:-1;;1565:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7951:372::-;8031:7;;;;8072:60;8085:41;8098:16;1718:2;8085:12;:41::i;8072:60::-;8051:81;;8168:42;8181:16;8199:10;8168:12;:42::i;:::-;8143:67;;8247:33;8265:14;8247:17;:33::i;:::-;8221:59;7951:372;-1:-1:-1;;;;;7951:372:0:o;6043:91::-;6114:12;;6043:91;:::o;8331:395::-;8410:7;8479:17;8542:18;8626:22;8455:12;;8438:13;:29;;8430:38;;;;;;;;8499:32;8517:13;8499:17;:32::i;:::-;8479:52;-1:-1:-1;8563:52:0;8576:33;8479:52;1809:1;8576:12;:33::i;8563:52::-;8542:73;;8651:35;8664:9;8675:10;8651:12;:35::i;1640:::-;1673:2;1640:35;:::o;3262:437::-;3316:24;3364:18;765:1;745:17;757:4;745:11;:17::i;:::-;:21;737:30;;;;;;3343:10;3316:37;;3385:18;3397:5;3385:11;:18::i;:::-;-1:-1:-1;;;;;3414:28:0;;;;;;:10;:28;;;;;;;;:65;;2046:7;3456:22;;3414:65;;;3504:16;:34;;;;;;;;3549:38;;;;3598:37;;3490:48;;;-1:-1:-1;3414:28:0;;3598:37;;;;;3490:48;;3598:37;;3414:28;3598:37;3490:48;3414:28;3598:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;3651:40:0;;;;;;;;-1:-1:-1;;;;;3651:40:0;;;;;;;;;;;;;3262:437;;:::o;6963:526::-;7005:7;7226:17;7284:18;7372:22;7109:12;;7125:1;7109:17;7105:377;;;7150:43;;-1:-1:-1;7143:50:0;;7105:377;7246:23;7264:4;7246:17;:23::i;:::-;7226:43;-1:-1:-1;7305:52:0;7318:33;7226:43;1809:1;7318:12;:33::i;7305:52::-;7284:73;;7397:35;7410:9;7421:10;7397:12;:35::i;:::-;7372:60;;7456:14;7449:21;;7105:377;6963:526;;;;:::o;2060:41::-;;;;:::o;6301:276::-;6371:7;6418:10;6446:21;:122;;6539:29;6551:16;6539:11;:29::i;:::-;6446:122;;;-1:-1:-1;;;;;6502:34:0;;;;;;:16;:34;;;;;;6470:29;6519:16;6470:11;:29::i;:::-;:66;6446:122;6439:129;;6301:276;;;;;:::o;5926:109::-;6014:4;6006:21;5926:109;:::o;6585:138::-;-1:-1:-1;;;;;6678:37:0;6651:7;6678:37;;;:19;:37;;;;;;;6585:138::o;7497:446::-;7538:7;7679:17;7737:18;7826:22;7562:12;;7578:1;7562:17;7558:378;;;7603:43;;-1:-1:-1;7596:50:0;;7558:378;7699:23;7717:4;7699:17;:23::i;:::-;7679:43;-1:-1:-1;7758:53:0;7771:34;7679:43;1718:2;7771:12;:34::i;7758:53::-;7737:74;;7851:35;7864:9;7875:10;7851:12;:35::i;6142:151::-;6183:7;6230:10;6258:27;6230:10;6258:9;:27::i;:::-;6251:34;;6142:151;;:::o;1604:29::-;;;;;;;;;;;;;;;-1:-1:-1;;1604:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4737:1179;4831:4;4848:24;5050:17;5143:20;5217:18;671:1;658:10;:8;:10::i;:::-;:14;650:23;;;;;;4875:10;4923:37;;;;:19;:37;;;;;;4875:10;;-1:-1:-1;4904:56:0;;;4896:65;;;;;;4998:1;4978:17;4990:4;4978:11;:17::i;:::-;:21;4974:64;;;5016:10;:8;:10::i;:::-;5070:62;5083:43;5096:15;1766:1;5083:12;:43::i;5070:62::-;5050:82;;5166:40;5179:15;5196:9;5166:12;:40::i;:::-;5143:63;;5238:28;5256:9;5238:17;:28::i;:::-;5217:49;;5294:37;5307:12;;5321:9;5294:12;:37::i;:::-;5279:12;:52;-1:-1:-1;;;;;5395:37:0;;;;;;:19;:37;;;;;;5382:68;;5434:15;5382:12;:68::i;:::-;-1:-1:-1;;;;;5342:37:0;;;;;;;:19;:37;;;;;;:108;;;;5508:31;;;;;;;5495:59;;5541:12;5495;:59::i;:::-;-1:-1:-1;;;;;5461:31:0;;;;;;;:19;:31;;;;;;;;:93;;;;5607:15;;;5565:28;;;;;:10;:28;;;;;;:76;;5607:33;;;5565:76;;;;;;5688:15;;5652:22;;;;;;;:67;;5688:30;;;5652:67;;;;;;5761:15;5805:12;;5748:70;;5761:15;2046:7;5779:22;;5778:39;;;;;;;;5748:12;:70::i;:::-;5730:15;:88;5834:52;;;;;;;;-1:-1:-1;;;;;5834:52:0;;;;;;;;;;;;;;;;;-1:-1:-1;5904:4:0;;4737:1179;-1:-1:-1;;;;;;4737:1179:0:o;3707:1022::-;3779:24;3903:15;3947:17;4004:18;4088:22;4335;671:1;658:10;:8;:10::i;:::-;:14;650:23;;;;;;3806:10;3854:37;;;;:19;:37;;;;;;3806:10;;-1:-1:-1;3835:56:0;;;3827:65;;;;;;3921:15;3903:33;;3967:26;3985:7;3967:17;:26::i;:::-;3947:46;-1:-1:-1;4025:52:0;4038:33;3947:46;1809:1;4038:12;:33::i;4025:52::-;4004:73;;4113:35;4126:9;4137:10;4113:12;:35::i;:::-;4088:60;;4176:35;4189:12;;4203:7;4176:12;:35::i;:::-;4161:12;:50;-1:-1:-1;;;;;4275:37:0;;;;;;:19;:37;;;;;;4262:60;;4314:7;4262:12;:60::i;:::-;-1:-1:-1;;;;;4222:37:0;;;;;;:19;:37;;;;;;;;:100;;;;4370:15;;4438:10;:28;;;;;;:47;;4370:25;;;2046:7;4399:26;;4370:56;4438:47;;;;;;4502:12;;4370:56;;-1:-1:-1;;4498:137:0;;;4553:70;4566:15;;4610:12;;2046:7;4584:10;:22;4583:39;;;;;;4553:70;4535:15;:88;4498:137;4662:16;-1:-1:-1;;;;;4650:71:0;;4680:7;4689:14;4705:3;4710:10;:8;:10::i;:::-;4650:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3707:1022;;;;;;;:::o;3047:207::-;3108:10;3081:24;3147:37;;;:19;:37;;;;;;;3199:11;;3195:30;;;3212:13;3217:7;3212:4;:13::i;:::-;3236:10;:8;:10::i;:::-;3047:207;;:::o;2361:124::-;2419:7;2439:38;2454:9;2465:11;2439:14;:38::i;2576:463::-;2630:18;2680:24;2913:15;765:1;745:17;757:4;745:11;:17::i;:::-;:21;737:30;;;;;;2651:18;2663:5;2651:11;:18::i;:::-;2707:10;2728:28;;;;:10;:28;;;;;;;;:66;;2046:7;2771:22;;2728:66;;;2819:16;:34;;;;;;;2864:38;;;;2805:48;;;;-1:-1:-1;2707:10:0;-1:-1:-1;2931:31:0;;2805:48;;2931:14;:31::i;:::-;2913:49;;2993:16;-1:-1:-1;;;;;2978:53:0;;3011:10;3023:7;2978:53;;;;;;;;;;;;;;;;;;;;;;;;2576:463;;;:::o;12672:208::-;12730:7;;12754:6;;12750:47;;;12784:1;12777:8;;;;12750:47;-1:-1:-1;12819:5:0;;;12823:1;12819;:5;12842;;;;;;;;:10;12835:18;;;;12871:1;12864:8;;12672:208;;;;;;:::o;12888:122::-;12946:7;12966:9;12982:1;12978;:5;;;;;;;;;12888:122;-1:-1:-1;;;;12888:122:0:o;13018:123::-;13076:7;13103:6;;;;13096:14;;;;-1:-1:-1;13128:5:0;;;13018:123::o;10727:971::-;11642:12;;10796:7;;10845:25;;10796:7;;1985:16;10962:615;11002:505;11166:56;;;11294:27;11415:1;11326:17;;11293:51;11071:274;11415:47;:60;;11071:405;11072:23;11071:405;11002:4;:505::i;:::-;11536:18;10962:12;:615::i;:::-;10939:684;;;;;;;;10920:735;;10727:971;-1:-1:-1;;;;10727:971:0:o;13149:147::-;13207:7;13239:5;;;13262:6;;;;13255:14;;;11706:718;11862:12;;11773:7;;11822:4;11812:14;;;;11862:19;;;11773:7;;11950:407;12043:160;12126:19;;;1985:16;12100:46;12043:160;12012:237;;12337:1;11822:4;-1:-1:-1;;12302:12:0;;;:22;;;;12301:31;1985:16;12275:58;12274:64;;;;;;;;11950:12;:407::i;:::-;:431;;;;;;;;;11706:718;-1:-1:-1;;;;;11706:718:0:o;12432:209::-;12515:5;12524:1;12519;12515:5;;12514:11;12554:80;12565:1;12561;:5;12554:80;;;12587:1;12583:5;;12621:1;12616;12612;12608;:5;;;;;;;;:9;12607:15;;;;;;;;12603:19;;12554:80;

Swarm Source

bzzr://bf94750523f4e5eb9fab54d1151017f5b04e392cb7ced90b69e6219d8edafdf3

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.