ETH Price: $3,272.90 (+4.64%)
 

Overview

Max Total Supply

7,685,469.822946410227476325 SUP

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,029.2 SUP

Value
$0.00
0x8fb186b94756f5658d16df90abce4b84bceea31e
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
StakeUP

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

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

pragma solidity ^ 0.4.26;


/**
               _    ____   _           _ _     _               
              | |  |___ \ | |         (_) |   | |              
 __      _____| |__  __) || |__  _   _ _| | __| | ___ _ __ ___ 
 \ \ /\ / / _ \ '_ \|__ < | '_ \| | | | | |/ _` |/ _ \ '__/ __|
  \ V  V /  __/ |_) |__) || |_) | |_| | | | (_| |  __/ |  \__ \
   \_/\_/ \___|_.__/____(_)_.__/ \__,_|_|_|\__,_|\___|_|  |___/

This contract is for staking Uptrennd (1UP) token.

Buy fee: 5%
Sell fee: 5%
Ref fee: 2%
Dev fee: 1% 

Staking opens on Friday, June 19, 2020 8:00:00 PM UTC 

Team3D Discord: https://discord.gg/g4X2R38
Front end: https://stakeup.io 

**/


library SafeMath {

    function mul(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }
    
    function div(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        return a / b;
    }
    
    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 c) 
    {
        c = a + b;
        assert(c >= a);
        return c;
    }

}


contract IERC20 {

    function totalSupply() 
        external 
        view 
        returns(uint256);
    
    function balanceOf(
        address account
    ) 
        external 
        view 
        returns(uint256);
    
    function transfer(
        address recipient, 
        uint256 amount
    ) 
        external 
        returns(bool);
    
    function allowance(
        address owner, 
        address spender
    ) 
        external 
        view 
        returns(uint256);
    
    function approve(
        address spender, 
        uint256 amount
    ) 
        external returns(bool);
    
    function transferFrom(
        address sender, 
        address recipient, 
        uint256 amount
    ) 
        external returns(bool);

}


contract StakeUP {

    mapping(address => bool) internal ambassadors_;

    uint256 constant internal ambassadorMaxPurchase_ = 1000000e18;

    mapping(address => uint256) internal ambassadorAccumulatedQuota_;

    bool public onlyAmbassadors = true;

    uint256 ACTIVATION_TIME = 1592596800; // Friday, June 19, 2020 8:00:00 PM UTC  

    modifier antiEarlyWhale(
        uint256 _amountOfERC20, 
        address _customerAddress
    )
    {
        if (now >= ACTIVATION_TIME) {
            onlyAmbassadors = false;
        }
        
        if (onlyAmbassadors) {
            
            require((ambassadors_[_customerAddress] == true && 
            
            (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfERC20) <= 
                ambassadorMaxPurchase_));
                
            ambassadorAccumulatedQuota_[_customerAddress] = 
                SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfERC20);
    
            _;
        
        } else {
            if (now < (ACTIVATION_TIME + 60 seconds)) {
                require(tx.gasprice <= 0.1 szabo);
            }
            
            onlyAmbassadors = false;
            _;
        }
    }

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

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

    event onDistribute(
        address indexed customerAddress,
        uint256 price
    );

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

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

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

    event onWithdraw(
        address indexed customerAddress,
        uint256 ERC20Withdrawn
    );

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

    string public name = "Stake UP";
    
    string public symbol = "SUP";
    
    uint8 constant public decimals = 18;
    
    uint256 internal entryFee_ = 5; // 5%
    
    uint256 internal exitFee_ = 5; // 5%
    
    uint256 internal referralFee_ = 20; // 2% of the 10% fee 
    
    uint256 internal maintenanceFee_ = 10; // 1% of the 10% fee 
    
    address internal maintenanceAddress;
    
    uint256 constant internal magnitude = 2 ** 64;
    
    mapping(address => uint256) public tokenBalanceLedger_;
    
    mapping(address => uint256) public referralBalance_;
    
    mapping(address => uint256) public totalReferralEarnings_;
    
    mapping(address => int256) public payoutsTo_;
    
    mapping(address => uint256) public invested_;
    
    uint256 internal tokenSupply_;
    
    uint256 internal profitPerShare_;
    
    IERC20 erc20;

    constructor() public {
        maintenanceAddress = address(0x8a7043755Fe9426c226C7fCE2584ac788d4b088f);
        ambassadors_[0x807b9f48d81eca89f00B6CBee0568090ccd629d3] = true;
        ambassadors_[0x90D20d17Cc9e07020bB490c5e34f486286d3Eeb2] = true;
        ambassadors_[0xD6031CD33734f0dDBa846F69175e5Bac3dF3DC7A] = true;
        erc20 = IERC20(address(0x07597255910a51509CA469568B048F2597E72504));
    }
    
    function checkAndTransfer(
        uint256 _amount
    ) 
        private 
    {
        require(
            erc20.transferFrom(
                msg.sender, 
                address(this), 
                _amount
            ) == true, "transfer must succeed"
        );
    }

    function buy(
        uint256 _amount, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        
        return purchaseTokens(
            _referredBy, 
            msg.sender, 
            _amount
        );
    }
    
    function buyFor(
        uint256 _amount, 
        address _customerAddress, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        return purchaseTokens(
            _referredBy, 
            _customerAddress,
            _amount
        );
    }
    
    function() payable public {
        revert();
    }
    
    function reinvest() 
        onlyDivis 
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        uint256 _tokens = purchaseTokens(0x0, _customerAddress, _dividends);
        
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    function exit() external {
        
        address _customerAddress = msg.sender;
        
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        
        if (_tokens > 0) sell(_tokens);
        
        withdraw();
    }
    
    function withdraw() 
        onlyDivis
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        erc20.transfer(_customerAddress, _dividends);
        
        emit onWithdraw(_customerAddress, _dividends);
    }
    
    function sell(
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        public 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
        
        uint256 _dividends = SafeMath.div(SafeMath.mul(_amountOfERC20s, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_amountOfERC20s, _dividends);
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
        
        int256 _updatedPayouts = 
            (int256)(profitPerShare_ * _amountOfERC20s + (_taxedERC20 * magnitude));
            
        payoutsTo_[_customerAddress] -= _updatedPayouts;
        
        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(
                profitPerShare_, (_dividends * magnitude) / tokenSupply_
            );
        }
        
        emit Transfer(_customerAddress, address(0), _amountOfERC20s);
        emit onTokenSell(_customerAddress, _amountOfERC20s, _taxedERC20, now);
    }
    
    function transfer(
        address _toAddress, 
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        external 
        returns(bool) 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
    
        if (myDividends(true) > 0) {
            withdraw();
        }
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
            
        tokenBalanceLedger_[_toAddress] = 
            SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfERC20s);
        
        payoutsTo_[_customerAddress] -= (int256)(profitPerShare_ * _amountOfERC20s);
        payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _amountOfERC20s);
        
        profitPerShare_ = SafeMath.add(profitPerShare_, (_amountOfERC20s * magnitude) / tokenSupply_);
        
        emit Transfer(_customerAddress, _toAddress, _amountOfERC20s);
        
        return true;
    }
    
    function totalERC20Balance() 
        public 
        view 
        returns(uint256) 
    {
        return erc20.balanceOf(address(this));
    }

    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) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function buyPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, entryFee_), 100);
        uint256 _taxedERC20 = SafeMath.add(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function getInvested() 
        public 
        view 
        returns(uint256) 
    {
        return invested_[msg.sender];
    }
    
    function totalReferralEarnings(
        address _client
    )
        public 
        view 
        returns(uint256)
    {
        return totalReferralEarnings_[_client];
    }
    
    function purchaseTokens(
        address _referredBy, 
        address _customerAddress, 
        uint256 _incomingERC20
    ) 
        internal 
        antiEarlyWhale(_incomingERC20, _customerAddress) 
        returns(uint256) 
    {
    invested_[msg.sender] += _incomingERC20;
    
    uint256 _undividedDividends = 
        SafeMath.div(
            SafeMath.mul(
                _incomingERC20, entryFee_
            ), 
        100);
    
    uint256 _maintenance = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, maintenanceFee_
            ), 
        100);
        
        
    uint256 _referralBonus = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, referralFee_
            ), 
        100);
    
    uint256 _dividends = 
        SafeMath.sub(
            _undividedDividends, SafeMath.add(
                _referralBonus, _maintenance
            )
        );
        
    uint256 _amountOfERC20s = 
        SafeMath.sub(_incomingERC20, _undividedDividends);
        
    uint256 _fee = _dividends * magnitude;
    
    require(
        _amountOfERC20s > 0 && 
        SafeMath.add(_amountOfERC20s, tokenSupply_) > tokenSupply_
    );
    
    referralBalance_[maintenanceAddress] = 
        SafeMath.add(referralBalance_[maintenanceAddress], _maintenance);
    
    if (_referredBy != address(0) && 
        _referredBy != _customerAddress)
    {
        referralBalance_[_referredBy] = 
            SafeMath.add(referralBalance_[_referredBy], _referralBonus);
            
        totalReferralEarnings_[_referredBy] = 
            SafeMath.add(totalReferralEarnings_[_referredBy], _referralBonus);
    } else {
        _dividends = SafeMath.add(_dividends, _referralBonus);
        _fee = _dividends * magnitude;
    }
    
    if (tokenSupply_ > 0) 
    {
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfERC20s);
        
        profitPerShare_ += ((_dividends * magnitude) / (tokenSupply_));
        _fee = _fee - (_fee - (_amountOfERC20s * ((_dividends * magnitude) / (tokenSupply_))));
        
    } else {
        tokenSupply_ = _amountOfERC20s;
    }

    tokenBalanceLedger_[_customerAddress] = 
        SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
    
    int256 _updatedPayouts = (int256)((profitPerShare_ * _amountOfERC20s) - _fee);
        
    payoutsTo_[_customerAddress] += _updatedPayouts;
    
    emit Transfer(
        address(0), 
        msg.sender, 
        _amountOfERC20s
    );
    
    emit onTokenPurchase(
        _customerAddress, 
        _incomingERC20, 
        _amountOfERC20s, 
        _referredBy, 
        now
    );
    
    return _amountOfERC20s;
    }

    function multiData()
    public
    view
    returns(
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256,
        uint256
    )
    {
        return (
        
        // [0] Total ERC20 in contract 
        totalERC20Balance(),
        
        // [1] Total STAKE TOKEN supply
        totalSupply(),
        
        // [2] User STAKE TOKEN balance 
        balanceOf(msg.sender),
        
        // [3] User ERC20 balance
        erc20.balanceOf(msg.sender),
        
        // [4] User divs 
        dividendsOf(msg.sender),
        
        // [5] Buy price 
        buyPrice(),
        
        // [6] Sell price 
        sellPrice(),
        
        // [7] Total referral eranings 
        totalReferralEarnings(msg.sender)
        );
    }
}

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":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"},{"name":"_referredBy","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"totalReferralEarnings","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":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalanceLedger_","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":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"invested_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"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":"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":"","type":"address"}],"name":"totalReferralEarnings_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfERC20s","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralBalance_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfERC20s","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalERC20Balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingERC20","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ERC20Earned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Reinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Withdrawn","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"}]

60806040526001600260006101000a81548160ff021916908315150217905550635eed19406003556040805190810160405280600881526020017f5374616b652055500000000000000000000000000000000000000000000000008152506004908051906020019062000074929190620002d6565b506040805190810160405280600381526020017f535550000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000c2929190620002d6565b50600560065560056007556014600855600a600955348015620000e457600080fd5b50738a7043755fe9426c226c7fce2584ac788d4b088f600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008073807b9f48d81eca89f00b6cbee0568090ccd629d373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016000807390d20d17cc9e07020bb490c5e34f486286d3eeb273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008073d6031cd33734f0ddba846f69175e5bac3df3dc7a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507307597255910a51509ca469568b048f2597e72504601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000385565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031957805160ff19168380011785556200034a565b828001600101855582156200034a579182015b82811115620003495782518255916020019190600101906200032c565b5b5090506200035991906200035d565b5090565b6200038291905b808211156200037e57600081600090555060010162000364565b5090565b90565b6128f580620003956000396000f30060806040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016357806306fdde03146101ba57806318160ddd1461024a57806327defa1f14610275578063313ce567146102a457806332b74ec7146102d55780633ccfd60b1461035657806346b6ef411461036d5780634b750334146103c45780635c5a0a9d146103ef578063688abbf71461044657806370a082311461048957806379fbd22c146104e05780637deb6025146105375780638620410b14610598578063949e8acd146105c357806395d89b41146105ee578063989a9d171461067e578063a9059cbb146106d5578063befc3e2b1461073a578063c664f7f114610765578063e1456cb4146107bc578063e4849b3214610813578063e9fad8ee14610840578063eabd1ddb14610857578063f2b79df914610882578063fdb5a03e146108de575b600080fd5b34801561016f57600080fd5b506101a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f5565b6040518082815260200191505060405180910390f35b3480156101c657600080fd5b506101cf610997565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020f5780820151818401526020810190506101f4565b50505050905090810190601f16801561023c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025657600080fd5b5061025f610a35565b6040518082815260200191505060405180910390f35b34801561028157600080fd5b5061028a610a3f565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b506102b9610a52565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102e157600080fd5b5061034060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a57565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b5061036b610a76565b005b34801561037957600080fd5b506103ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b3480156103d057600080fd5b506103d9610d1d565b6040518082815260200191505060405180910390f35b3480156103fb57600080fd5b50610430600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5b565b6040518082815260200191505060405180910390f35b34801561045257600080fd5b50610473600480360381019080803515159060200190929190505050610d73565b6040518082815260200191505060405180910390f35b34801561049557600080fd5b506104ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddf565b6040518082815260200191505060405180910390f35b3480156104ec57600080fd5b50610521600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e28565b6040518082815260200191505060405180910390f35b34801561054357600080fd5b5061058260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e40565b6040518082815260200191505060405180910390f35b3480156105a457600080fd5b506105ad610e5e565b6040518082815260200191505060405180910390f35b3480156105cf57600080fd5b506105d8610e9c565b6040518082815260200191505060405180910390f35b3480156105fa57600080fd5b50610603610eb1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610643578082015181840152602081019050610628565b50505050905090810190601f1680156106705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068a57600080fd5b506106bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b3480156106e157600080fd5b50610720600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f67565b604051808215151515815260200191505060405180910390f35b34801561074657600080fd5b5061074f611252565b6040518082815260200191505060405180910390f35b34801561077157600080fd5b506107a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611299565b6040518082815260200191505060405180910390f35b3480156107c857600080fd5b506107fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112b1565b6040518082815260200191505060405180910390f35b34801561081f57600080fd5b5061083e600480360381019080803590602001909291905050506112c9565b005b34801561084c57600080fd5b5061085561155a565b005b34801561086357600080fd5b5061086c6115c1565b6040518082815260200191505060405180910390f35b34801561088e57600080fd5b506108976116c0565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156108ea57600080fd5b506108f3611819565b005b600068010000000000000000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601154020381151561098f57fe5b049050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a2d5780601f10610a0257610100808354040283529160200191610a2d565b820191906000526020600020905b815481529060010190602001808311610a1057829003601f168201915b505050505081565b6000601054905090565b600260009054906101000a900460ff1681565b601281565b6000610a628461198e565b610a6d828486611b40565b90509392505050565b6000806000610a856001610d73565b111515610a9157600080fd5b339150610a9e6000610d73565b9050680100000000000000008102600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c4657600080fd5b505af1158015610c5a573d6000803e3d6000fd5b505050506040513d6020811015610c7057600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080670de0b6b3a76400009250610d44610d3d84600754612846565b606461287e565b9150610d508383612894565b905080935050505090565b600b6020528060005260406000206000915090505481565b60008033905082610d8c57610d87816108f5565b610dd7565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd5826108f5565b015b915050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f6020528060005260406000206000915090505481565b6000610e4b8361198e565b610e56823385611b40565b905092915050565b600080600080670de0b6b3a76400009250610e85610e7e84600654612846565b606461287e565b9150610e9183836128ad565b905080935050505090565b600080339050610eab81610ddf565b91505090565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f475780601f10610f1c57610100808354040283529160200191610f47565b820191906000526020600020905b815481529060010190602001808311610f2a57829003601f168201915b505050505081565b600d6020528060005260406000206000915090505481565b6000806000610f74610e9c565b111515610f8057600080fd5b339050600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610fd157600080fd5b6000610fdd6001610d73565b1115610fec57610feb610a76565b5b610ff860105484612894565b601081905550611047600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612894565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110d3600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128ad565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260115402600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508260115402600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506111dc6011546010546801000000000000000086028115156111d657fe5b046128ad565b6011819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600c6020528060005260406000206000915090505481565b600e6020528060005260406000206000915090505481565b60008060008060006112d9610e9c565b1115156112e557600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561133657600080fd5b61134c61134586600754612846565b606461287e565b92506113588584612894565b915061136660105486612894565b6010819055506113b5600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612894565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856011540201905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000601054111561148f5761148860115460105468010000000000000000860281151561148257fe5b046128ad565b6011819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156115b5576115b4816112c9565b5b6115bd610a76565b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506040513d60208110156116aa57600080fd5b8101908080519060200190929190505050905090565b6000806000806000806000806116d46115c1565b6116dc610a35565b6116e533610ddf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b505050506040513d60208110156117cc57600080fd5b81019080805190602001909291905050506117e6336108f5565b6117ee610e5e565b6117f6610d1d565b6117ff33610cd4565b975097509750975097509750975097509091929394959697565b6000806000806118296001610d73565b11151561183557600080fd5b3392506118426000610d73565b9150680100000000000000008202600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061193160008484611b40565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b60011515601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a8b57600080fd5b505af1158015611a9f573d6000803e3d6000fd5b505050506040513d6020811015611ab557600080fd5b81019080805190602001909291905050501515141515611b3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b600080600080600080600080888a60035442101515611b75576000600260006101000a81548160ff0219169083151502179055505b600260009054906101000a900460ff161561226457600115156000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611c34575069d3c21bcecceda100000082600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b1515611c3f57600080fd5b611c88600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836128ad565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611d2e611d278c600654612846565b606461287e565b9850611d46611d3f8a600954612846565b606461287e565b9750611d5e611d578a600854612846565b606461287e565b9650611d7389611d6e898b6128ad565b612894565b9550611d7f8b8a612894565b94506801000000000000000086029350600085118015611dab5750601054611da9866010546128ad565b115b1515611db657600080fd5b611e21600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054896128ad565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614158015611eef57508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b1561201157611f3d600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fc9600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202c565b61201b86886128ad565b955068010000000000000000860293505b6000601054111561209757612043601054866128ad565b60108190555060105468010000000000000000870281151561206157fe5b0460116000828254019250508190555060105468010000000000000000870281151561208957fe5b04850284038403935061209f565b846010819055505b6120e8600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866128ad565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a3849950612836565b603c600354014210156122865764174876e8003a1115151561228557600080fd5b5b6000600260006101000a81548160ff0219169083151502179055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123046122fd8c600654612846565b606461287e565b985061231c6123158a600954612846565b606461287e565b975061233461232d8a600854612846565b606461287e565b965061234989612344898b6128ad565b612894565b95506123558b8a612894565b94506801000000000000000086029350600085118015612381575060105461237f866010546128ad565b115b151561238c57600080fd5b6123f7600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054896128ad565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16141580156124c557508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b156125e757612513600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259f600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602565b6125f186886128ad565b955068010000000000000000860293505b6000601054111561266d57612619601054866128ad565b60108190555060105468010000000000000000870281151561263757fe5b0460116000828254019250508190555060105468010000000000000000870281151561265f57fe5b048502840384039350612675565b846010819055505b6126be600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866128ad565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b6000808314156128595760009050612878565b818302905081838281151561286a57fe5b0414151561287457fe5b8090505b92915050565b6000818381151561288b57fe5b04905092915050565b60008282111515156128a257fe5b818303905092915050565b600081830190508281101515156128c057fe5b809050929150505600a165627a7a723058204be8958a14a7aac3d169e028d0912770da54a98dde93290b44b9b5c799f9ff570029

Deployed Bytecode

0x60806040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016357806306fdde03146101ba57806318160ddd1461024a57806327defa1f14610275578063313ce567146102a457806332b74ec7146102d55780633ccfd60b1461035657806346b6ef411461036d5780634b750334146103c45780635c5a0a9d146103ef578063688abbf71461044657806370a082311461048957806379fbd22c146104e05780637deb6025146105375780638620410b14610598578063949e8acd146105c357806395d89b41146105ee578063989a9d171461067e578063a9059cbb146106d5578063befc3e2b1461073a578063c664f7f114610765578063e1456cb4146107bc578063e4849b3214610813578063e9fad8ee14610840578063eabd1ddb14610857578063f2b79df914610882578063fdb5a03e146108de575b600080fd5b34801561016f57600080fd5b506101a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f5565b6040518082815260200191505060405180910390f35b3480156101c657600080fd5b506101cf610997565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020f5780820151818401526020810190506101f4565b50505050905090810190601f16801561023c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025657600080fd5b5061025f610a35565b6040518082815260200191505060405180910390f35b34801561028157600080fd5b5061028a610a3f565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b506102b9610a52565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102e157600080fd5b5061034060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a57565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b5061036b610a76565b005b34801561037957600080fd5b506103ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd4565b6040518082815260200191505060405180910390f35b3480156103d057600080fd5b506103d9610d1d565b6040518082815260200191505060405180910390f35b3480156103fb57600080fd5b50610430600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5b565b6040518082815260200191505060405180910390f35b34801561045257600080fd5b50610473600480360381019080803515159060200190929190505050610d73565b6040518082815260200191505060405180910390f35b34801561049557600080fd5b506104ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ddf565b6040518082815260200191505060405180910390f35b3480156104ec57600080fd5b50610521600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e28565b6040518082815260200191505060405180910390f35b34801561054357600080fd5b5061058260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e40565b6040518082815260200191505060405180910390f35b3480156105a457600080fd5b506105ad610e5e565b6040518082815260200191505060405180910390f35b3480156105cf57600080fd5b506105d8610e9c565b6040518082815260200191505060405180910390f35b3480156105fa57600080fd5b50610603610eb1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610643578082015181840152602081019050610628565b50505050905090810190601f1680156106705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068a57600080fd5b506106bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f4f565b6040518082815260200191505060405180910390f35b3480156106e157600080fd5b50610720600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f67565b604051808215151515815260200191505060405180910390f35b34801561074657600080fd5b5061074f611252565b6040518082815260200191505060405180910390f35b34801561077157600080fd5b506107a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611299565b6040518082815260200191505060405180910390f35b3480156107c857600080fd5b506107fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112b1565b6040518082815260200191505060405180910390f35b34801561081f57600080fd5b5061083e600480360381019080803590602001909291905050506112c9565b005b34801561084c57600080fd5b5061085561155a565b005b34801561086357600080fd5b5061086c6115c1565b6040518082815260200191505060405180910390f35b34801561088e57600080fd5b506108976116c0565b604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156108ea57600080fd5b506108f3611819565b005b600068010000000000000000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601154020381151561098f57fe5b049050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a2d5780601f10610a0257610100808354040283529160200191610a2d565b820191906000526020600020905b815481529060010190602001808311610a1057829003601f168201915b505050505081565b6000601054905090565b600260009054906101000a900460ff1681565b601281565b6000610a628461198e565b610a6d828486611b40565b90509392505050565b6000806000610a856001610d73565b111515610a9157600080fd5b339150610a9e6000610d73565b9050680100000000000000008102600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610c4657600080fd5b505af1158015610c5a573d6000803e3d6000fd5b505050506040513d6020811015610c7057600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080670de0b6b3a76400009250610d44610d3d84600754612846565b606461287e565b9150610d508383612894565b905080935050505090565b600b6020528060005260406000206000915090505481565b60008033905082610d8c57610d87816108f5565b610dd7565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dd5826108f5565b015b915050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f6020528060005260406000206000915090505481565b6000610e4b8361198e565b610e56823385611b40565b905092915050565b600080600080670de0b6b3a76400009250610e85610e7e84600654612846565b606461287e565b9150610e9183836128ad565b905080935050505090565b600080339050610eab81610ddf565b91505090565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f475780601f10610f1c57610100808354040283529160200191610f47565b820191906000526020600020905b815481529060010190602001808311610f2a57829003601f168201915b505050505081565b600d6020528060005260406000206000915090505481565b6000806000610f74610e9c565b111515610f8057600080fd5b339050600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311151515610fd157600080fd5b6000610fdd6001610d73565b1115610fec57610feb610a76565b5b610ff860105484612894565b601081905550611047600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612894565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110d3600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846128ad565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260115402600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508260115402600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506111dc6011546010546801000000000000000086028115156111d657fe5b046128ad565b6011819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600c6020528060005260406000206000915090505481565b600e6020528060005260406000206000915090505481565b60008060008060006112d9610e9c565b1115156112e557600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561133657600080fd5b61134c61134586600754612846565b606461287e565b92506113588584612894565b915061136660105486612894565b6010819055506113b5600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612894565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856011540201905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000601054111561148f5761148860115460105468010000000000000000860281151561148257fe5b046128ad565b6011819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111156115b5576115b4816112c9565b5b6115bd610a76565b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506040513d60208110156116aa57600080fd5b8101908080519060200190929190505050905090565b6000806000806000806000806116d46115c1565b6116dc610a35565b6116e533610ddf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b505050506040513d60208110156117cc57600080fd5b81019080805190602001909291905050506117e6336108f5565b6117ee610e5e565b6117f6610d1d565b6117ff33610cd4565b975097509750975097509750975097509091929394959697565b6000806000806118296001610d73565b11151561183557600080fd5b3392506118426000610d73565b9150680100000000000000008202600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061193160008484611b40565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b60011515601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a8b57600080fd5b505af1158015611a9f573d6000803e3d6000fd5b505050506040513d6020811015611ab557600080fd5b81019080805190602001909291905050501515141515611b3d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b600080600080600080600080888a60035442101515611b75576000600260006101000a81548160ff0219169083151502179055505b600260009054906101000a900460ff161561226457600115156000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611c34575069d3c21bcecceda100000082600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b1515611c3f57600080fd5b611c88600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836128ad565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611d2e611d278c600654612846565b606461287e565b9850611d46611d3f8a600954612846565b606461287e565b9750611d5e611d578a600854612846565b606461287e565b9650611d7389611d6e898b6128ad565b612894565b9550611d7f8b8a612894565b94506801000000000000000086029350600085118015611dab5750601054611da9866010546128ad565b115b1515611db657600080fd5b611e21600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054896128ad565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614158015611eef57508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b1561201157611f3d600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fc9600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202c565b61201b86886128ad565b955068010000000000000000860293505b6000601054111561209757612043601054866128ad565b60108190555060105468010000000000000000870281151561206157fe5b0460116000828254019250508190555060105468010000000000000000870281151561208957fe5b04850284038403935061209f565b846010819055505b6120e8600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866128ad565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a3849950612836565b603c600354014210156122865764174876e8003a1115151561228557600080fd5b5b6000600260006101000a81548160ff0219169083151502179055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123046122fd8c600654612846565b606461287e565b985061231c6123158a600954612846565b606461287e565b975061233461232d8a600854612846565b606461287e565b965061234989612344898b6128ad565b612894565b95506123558b8a612894565b94506801000000000000000086029350600085118015612381575060105461237f866010546128ad565b115b151561238c57600080fd5b6123f7600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054896128ad565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff16141580156124c557508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b156125e757612513600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061259f600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054886128ad565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612602565b6125f186886128ad565b955068010000000000000000860293505b6000601054111561266d57612619601054866128ad565b60108190555060105468010000000000000000870281151561263757fe5b0460116000828254019250508190555060105468010000000000000000870281151561265f57fe5b048502840384039350612675565b846010819055505b6126be600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866128ad565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b6000808314156128595760009050612878565b818302905081838281151561286a57fe5b0414151561287457fe5b8090505b92915050565b6000818381151561288b57fe5b04905092915050565b60008282111515156128a257fe5b818303905092915050565b600081830190508281101515156128c057fe5b809050929150505600a165627a7a723058204be8958a14a7aac3d169e028d0912770da54a98dde93290b44b9b5c799f9ff570029

Deployed Bytecode Sourcemap

2368:14352:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6939:8;;;11723:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11723:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4624:31: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;4624:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10838:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10838:126:0;;;;;;;;;;;;;;;;;;;;;;;2592:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2592:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4709:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4709:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6557:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6557:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7799:522;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7799:522:0;;;;;;12829:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12829:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12036:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12036:311:0;;;;;;;;;;;;;;;;;;;;;;;5101:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5101:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11170:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11170:340:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11522:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11522:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5359:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5359:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6246:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6246:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12359:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12359:311:0;;;;;;;;;;;;;;;;;;;;;;;10972:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10972:186:0;;;;;;;;;;;;;;;;;;;;;;;4668:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4668: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;4668:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5232:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5232:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9531:1137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9531:1137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12682:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12682:135:0;;;;;;;;;;;;;;;;;;;;;;;5168:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5168:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5302:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5302:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8333:1186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8333:1186:0;;;;;;;;;;;;;;;;;;;;;;;;;;7538:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7538:249:0;;;;;;10680:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10680:150:0;;;;;;;;;;;;;;;;;;;;;;;15855:862;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15855:862:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6967:559;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6967:559:0;;;;;;11723:301;11836:7;5081;11975:10;:28;11986:16;11975:28;;;;;;;;;;;;;;;;11920:19;:37;11940:16;11920:37;;;;;;;;;;;;;;;;11902:15;;:55;11879:124;11869:147;;;;;;;;11862:154;;11723:301;;;:::o;4624:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10838:126::-;10911:7;10944:12;;10937:19;;10838:126;:::o;2592:34::-;;;;;;;;;;;;;:::o;4709:35::-;4742:2;4709:35;:::o;6557:333::-;6708:7;6734:25;6751:7;6734:16;:25::i;:::-;6777:105;6806:11;6833:16;6864:7;6777:14;:105::i;:::-;6770:112;;6557:333;;;;;:::o;7799:522::-;7872:24;7930:18;3764:1;3744:17;3756:4;3744:11;:17::i;:::-;:21;3736:30;;;;;;;;7899:10;7872:37;;7951:18;7963:5;7951:11;:18::i;:::-;7930:39;;5081:7;8031:10;:22;7990:10;:28;8001:16;7990:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;8089:16;:34;8106:16;8089:34;;;;;;;;;;;;;;;;8075:48;;;;8181:1;8144:16;:34;8161:16;8144:34;;;;;;;;;;;;;;;:38;;;;8203:5;;;;;;;;;;;:14;;;8218:16;8236:10;8203:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8203:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8203:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8203:44:0;;;;;;;;;;;;;;;;;8284:16;8273:40;;;8302:10;8273:40;;;;;;;;;;;;;;;;;;7799:522;;:::o;12829:184::-;12942:7;12974:22;:31;12997:7;12974:31;;;;;;;;;;;;;;;;12967:38;;12829:184;;;:::o;12036:311::-;12107:7;12133:14;12165:18;12246:19;12150:4;12133:21;;12186:49;12199:30;12212:6;12220:8;;12199:12;:30::i;:::-;12231:3;12186:12;:49::i;:::-;12165:70;;12268:32;12281:6;12289:10;12268:12;:32::i;:::-;12246:54;;12328:11;12321:18;;12036:311;;;;:::o;5101:54::-;;;;;;;;;;;;;;;;;:::o;11170:340::-;11285:7;11311:24;11338:10;11311:37;;11366:21;:136;;11473:29;11485:16;11473:11;:29::i;:::-;11366:136;;;11436:16;:34;11453:16;11436:34;;;;;;;;;;;;;;;;11390:29;11402:16;11390:11;:29::i;:::-;:80;11366:136;11359:143;;11170:340;;;;:::o;11522:189::-;11633:7;11666:19;:37;11686:16;11666:37;;;;;;;;;;;;;;;;11659:44;;11522:189;;;:::o;5359:44::-;;;;;;;;;;;;;;;;;:::o;6246:299::-;6358:7;6384:25;6401:7;6384:16;:25::i;:::-;6437:100;6466:11;6493:10;6519:7;6437:14;:100::i;:::-;6430:107;;6246:299;;;;:::o;12359:311::-;12429:7;12455:14;12487:18;12569:19;12472:4;12455:21;;12508:50;12521:31;12534:6;12542:9;;12521:12;:31::i;:::-;12554:3;12508:12;:50::i;:::-;12487:71;;12591:32;12604:6;12612:10;12591:12;:32::i;:::-;12569:54;;12651:11;12644:18;;12359:311;;;;:::o;10972:186::-;11042:7;11068:24;11095:10;11068:37;;11123:27;11133:16;11123:9;:27::i;:::-;11116:34;;10972:186;;:::o;4668:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5232:57::-;;;;;;;;;;;;;;;;;:::o;9531:1137::-;9684:4;9707:24;3676:1;3663:10;:8;:10::i;:::-;:14;3655:23;;;;;;;;9734:10;9707:37;;9782:19;:37;9802:16;9782:37;;;;;;;;;;;;;;;;9763:15;:56;;9755:65;;;;;;;;9861:1;9841:17;9853:4;9841:11;:17::i;:::-;:21;9837:64;;;9879:10;:8;:10::i;:::-;9837:64;9936:43;9949:12;;9963:15;9936:12;:43::i;:::-;9921:12;:58;;;;10054:68;10067:19;:37;10087:16;10067:37;;;;;;;;;;;;;;;;10106:15;10054:12;:68::i;:::-;10000:19;:37;10020:16;10000:37;;;;;;;;;;;;;;;:122;;;;10195:62;10208:19;:31;10228:10;10208:31;;;;;;;;;;;;;;;;10241:15;10195:12;:62::i;:::-;10147:19;:31;10167:10;10147:31;;;;;;;;;;;;;;;:110;;;;10337:15;10319;;:33;10278:10;:28;10289:16;10278:28;;;;;;;;;;;;;;;;:75;;;;;;;;;;;10417:15;10399;;:33;10364:10;:22;10375:10;10364:22;;;;;;;;;;;;;;;;:69;;;;;;;;;;;10472:75;10485:15;;10534:12;;5081:7;10503:15;:27;10502:44;;;;;;;;10472:12;:75::i;:::-;10454:15;:93;;;;10600:10;10573:55;;10582:16;10573:55;;;10612:15;10573:55;;;;;;;;;;;;;;;;;;10656:4;10649:11;;9531:1137;;;;;:::o;12682:135::-;12755:7;12788:9;:21;12798:10;12788:21;;;;;;;;;;;;;;;;12781:28;;12682:135;:::o;5168:51::-;;;;;;;;;;;;;;;;;:::o;5302:44::-;;;;;;;;;;;;;;;;;:::o;8333:1186::-;8449:24;8583:18;8673:19;8979:22;3676:1;3663:10;:8;:10::i;:::-;:14;3655:23;;;;;;;;8476:10;8449:37;;8524:19;:37;8544:16;8524:37;;;;;;;;;;;;;;;;8505:15;:56;;8497:65;;;;;;;;8604:58;8617:39;8630:15;8647:8;;8617:12;:39::i;:::-;8658:3;8604:12;:58::i;:::-;8583:79;;8695:41;8708:15;8725:10;8695:12;:41::i;:::-;8673:63;;8772:43;8785:12;;8799:15;8772:12;:43::i;:::-;8757:12;:58;;;;8890:68;8903:19;:37;8923:16;8903:37;;;;;;;;;;;;;;;;8942:15;8890:12;:68::i;:::-;8836:19;:37;8856:16;8836:37;;;;;;;;;;;;;;;:122;;;;5081:7;9064:11;:23;9045:15;9027;;:33;:61;8979:110;;9146:15;9114:10;:28;9125:16;9114:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;9201:1;9186:12;;:16;9182:169;;;9237:102;9268:15;;9312:12;;5081:7;9286:10;:22;9285:39;;;;;;;;9237:12;:102::i;:::-;9219:15;:120;;;;9182:169;9411:1;9376:55;;9385:16;9376:55;;;9415:15;9376:55;;;;;;;;;;;;;;;;;;9459:16;9447:64;;;9477:15;9494:11;9507:3;9447:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8333:1186;;;;;:::o;7538:249::-;7584:24;7642:15;7611:10;7584:37;;7660:19;:37;7680:16;7660:37;;;;;;;;;;;;;;;;7642:55;;7732:1;7722:7;:11;7718:30;;;7735:13;7740:7;7735:4;:13::i;:::-;7718:30;7769:10;:8;:10::i;:::-;7538:249;;:::o;10680:150::-;10759:7;10792:5;;;;;;;;;;;:15;;;10816:4;10792:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10792:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10792:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10792:30:0;;;;;;;;;;;;;;;;10785:37;;10680:150;:::o;15855:862::-;15921:7;15940;15959;15978;15997;16016;16035;16053;16153:19;:17;:19::i;:::-;16234:13;:11;:13::i;:::-;16310:21;16320:10;16310:9;:21::i;:::-;16387:5;;;;;;;;;;;:15;;;16403:10;16387:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16387:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16387:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16387:27:0;;;;;;;;;;;;;;;;16462:23;16474:10;16462:11;:23::i;:::-;16533:10;:8;:10::i;:::-;16592:11;:9;:11::i;:::-;16665:33;16687:10;16665:21;:33::i;:::-;16084:625;;;;;;;;;;;;;;;;15855:862;;;;;;;;:::o;6967:559::-;7041:24;7099:18;7372:15;3764:1;3744:17;3756:4;3744:11;:17::i;:::-;:21;3736:30;;;;;;;;7068:10;7041:37;;7120:18;7132:5;7120:11;:18::i;:::-;7099:39;;5081:7;7200:10;:22;7159:10;:28;7170:16;7159:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;7258:16;:34;7275:16;7258:34;;;;;;;;;;;;;;;;7244:48;;;;7350:1;7313:16;:34;7330:16;7313:34;;;;;;;;;;;;;;;:38;;;;7390:49;7405:3;7410:16;7428:10;7390:14;:49::i;:::-;7372:67;;7480:16;7465:53;;;7498:10;7510:7;7465:53;;;;;;;;;;;;;;;;;;;;;;;;6967:559;;;:::o;5948:290::-;6190:4;6064:130;;:5;;;;;;;;;;;:18;;;6101:10;6139:4;6164:7;6064:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6064:122:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6064:122:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6064:122:0;;;;;;;;;;;;;;;;:130;;;6042:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5948:290;:::o;13025:2822::-;13252:7;13326:27;13493:20;13678:22;13848:18;14029:23;14131:12;15402:22;13200:14;13216:16;2849:15;;2842:3;:22;;2838:78;;;2899:5;2881:15;;:23;;;;;;;;;;;;;;;;;;2838:78;2940:15;;;;;;;;;;;2936:667;;;3029:4;2995:38;;:12;:30;3008:16;2995:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:178;;;;;2500:10;3114:14;3066:27;:45;3094:16;3066:45;;;;;;;;;;;;;;;;:62;3065:108;;2995:178;2986:189;;;;;;;;3274:75;3287:27;:45;3315:16;3287:45;;;;;;;;;;;;;;;;3334:14;3274:12;:75::i;:::-;3208:27;:45;3236:16;3208:45;;;;;;;;;;;;;;;:141;;;;13299:14;13274:9;:21;13284:10;13274:21;;;;;;;;;;;;;;;;:39;;;;;;;;;;;13366:114;13393:71;13424:14;13440:9;;13393:12;:71::i;:::-;13476:3;13366:12;:114::i;:::-;13326:154;;13526:125;13553:82;13584:19;13605:15;;13553:12;:82::i;:::-;13647:3;13526:12;:125::i;:::-;13493:158;;13713:122;13740:79;13771:19;13792:12;;13740;:79::i;:::-;13831:3;13713:12;:122::i;:::-;13678:157;;13879:133;13906:19;13927:74;13958:14;13974:12;13927;:74::i;:::-;13879:12;:133::i;:::-;13848:164;;14065:49;14078:14;14094:19;14065:12;:49::i;:::-;14029:85;;5081:7;14146:10;:22;14131:37;;14217:1;14199:15;:19;:91;;;;;14278:12;;14232:43;14245:15;14262:12;;14232;:43::i;:::-;:58;14199:91;14181:116;;;;;;;;14359:64;14372:16;:36;14389:18;;;;;;;;;;;14372:36;;;;;;;;;;;;;;;;14410:12;14359;:64::i;:::-;14310:16;:36;14327:18;;;;;;;;;;;14310:36;;;;;;;;;;;;;;;:113;;;;14463:1;14440:25;;:11;:25;;;;:70;;;;;14494:16;14479:31;;:11;:31;;;;14440:70;14436:465;;;14574:59;14587:16;:29;14604:11;14587:29;;;;;;;;;;;;;;;;14618:14;14574:12;:59::i;:::-;14528:16;:29;14545:11;14528:29;;;;;;;;;;;;;;;:105;;;;14710:65;14723:22;:35;14746:11;14723:35;;;;;;;;;;;;;;;;14760:14;14710:12;:65::i;:::-;14658:22;:35;14681:11;14658:35;;;;;;;;;;;;;;;:117;;;;14436:465;;;14813:40;14826:10;14838:14;14813:12;:40::i;:::-;14800:53;;5081:7;14871:10;:22;14864:29;;14436:465;14932:1;14917:12;;:16;14913:350;;;14967:43;14980:12;;14994:15;14967:12;:43::i;:::-;14952:12;:58;;;;15079:12;;5081:7;15052:10;:22;15051:41;;;;;;;;15031:15;;:62;;;;;;;;;;;15174:12;;5081:7;15147:10;:22;15146:41;;;;;;;;15127:15;:61;15119:4;:70;15111:4;:79;15104:86;;14913:350;;;15240:15;15225:12;:30;;;;14913:350;15321:68;15334:19;:37;15354:16;15334:37;;;;;;;;;;;;;;;;15373:15;15321:12;:68::i;:::-;15271:19;:37;15291:16;15271:37;;;;;;;;;;;;;;;:118;;;;15474:4;15455:15;15437;;:33;15436:42;15402:77;;15528:15;15496:10;:28;15507:16;15496:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;15602:10;15561:85;;15588:1;15561:85;;;15624:15;15561:85;;;;;;;;;;;;;;;;;;15771:11;15664:140;;15690:16;15664:140;;;15718:14;15744:15;15794:3;15664:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15824:15;15817:22;;2936:667;;;3443:10;3425:15;;:28;3418:3;:36;3414:110;;;3498:9;3483:11;:24;;3475:33;;;;;;;;3414:110;3570:5;3552:15;;:23;;;;;;;;;;;;;;;;;;13299:14;13274:9;:21;13284:10;13274:21;;;;;;;;;;;;;;;;:39;;;;;;;;;;;13366:114;13393:71;13424:14;13440:9;;13393:12;:71::i;:::-;13476:3;13366:12;:114::i;:::-;13326:154;;13526:125;13553:82;13584:19;13605:15;;13553:12;:82::i;:::-;13647:3;13526:12;:125::i;:::-;13493:158;;13713:122;13740:79;13771:19;13792:12;;13740;:79::i;:::-;13831:3;13713:12;:122::i;:::-;13678:157;;13879:133;13906:19;13927:74;13958:14;13974:12;13927;:74::i;:::-;13879:12;:133::i;:::-;13848:164;;14065:49;14078:14;14094:19;14065:12;:49::i;:::-;14029:85;;5081:7;14146:10;:22;14131:37;;14217:1;14199:15;:19;:91;;;;;14278:12;;14232:43;14245:15;14262:12;;14232;:43::i;:::-;:58;14199:91;14181:116;;;;;;;;14359:64;14372:16;:36;14389:18;;;;;;;;;;;14372:36;;;;;;;;;;;;;;;;14410:12;14359;:64::i;:::-;14310:16;:36;14327:18;;;;;;;;;;;14310:36;;;;;;;;;;;;;;;:113;;;;14463:1;14440:25;;:11;:25;;;;:70;;;;;14494:16;14479:31;;:11;:31;;;;14440:70;14436:465;;;14574:59;14587:16;:29;14604:11;14587:29;;;;;;;;;;;;;;;;14618:14;14574:12;:59::i;:::-;14528:16;:29;14545:11;14528:29;;;;;;;;;;;;;;;:105;;;;14710:65;14723:22;:35;14746:11;14723:35;;;;;;;;;;;;;;;;14760:14;14710:12;:65::i;:::-;14658:22;:35;14681:11;14658:35;;;;;;;;;;;;;;;:117;;;;14436:465;;;14813:40;14826:10;14838:14;14813:12;:40::i;:::-;14800:53;;5081:7;14871:10;:22;14864:29;;14436:465;14932:1;14917:12;;:16;14913:350;;;14967:43;14980:12;;14994:15;14967:12;:43::i;:::-;14952:12;:58;;;;15079:12;;5081:7;15052:10;:22;15051:41;;;;;;;;15031:15;;:62;;;;;;;;;;;15174:12;;5081:7;15147:10;:22;15146:41;;;;;;;;15127:15;:61;15119:4;:70;15111:4;:79;15104:86;;14913:350;;;15240:15;15225:12;:30;;;;14913:350;15321:68;15334:19;:37;15354:16;15334:37;;;;;;;;;;;;;;;;15373:15;15321:12;:68::i;:::-;15271:19;:37;15291:16;15271:37;;;;;;;;;;;;;;;:118;;;;15474:4;15455:15;15437;;:33;15436:42;15402:77;;15528:15;15496:10;:28;15507:16;15496:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;15602:10;15561:85;;15588:1;15561:85;;;15624:15;15561:85;;;;;;;;;;;;;;;;;;15771:11;15664:140;;15690:16;15664:140;;;15718:14;15744:15;15794:3;15664:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15824:15;15817:22;;2936:667;13025:2822;;;;;;;;;;;;;;:::o;709:263::-;822:9;859:1;854;:6;850:47;;;884:1;877:8;;;;850:47;915:1;911;:5;907:9;;943:1;938;934;:5;;;;;;;;:10;927:18;;;;;;963:1;956:8;;709:263;;;;;:::o;984:159::-;1097:7;1134:1;1130;:5;;;;;;;;1123:12;;984:159;;;;:::o;1155:184::-;1268:7;1306:1;1301;:6;;1294:14;;;;;;1330:1;1326;:5;1319:12;;1155:184;;;;:::o;1351:202::-;1464:9;1500:1;1496;:5;1492:9;;1524:1;1519;:6;;1512:14;;;;;;1544:1;1537:8;;1351:202;;;;:::o

Swarm Source

bzzr://4be8958a14a7aac3d169e028d0912770da54a98dde93290b44b9b5c799f9ff57
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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