ETH Price: $3,394.77 (+1.80%)

Token

STABLE MDX (MDX)
 

Overview

Max Total Supply

36,166.848073946821447308 MDX

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.500793371077059435 MDX

Value
$0.00
0x074f21a36217d7615d0202faa926aefebb5a9999
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:
MDX

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-25
*/

pragma solidity ^0.4.26;

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 TOKEN {
   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 MDX{

    uint256 ACTIVATION_TIME = 1621249900;
    

    modifier isActivated {
        require(now >= ACTIVATION_TIME);
        _;
    }

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

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

    event onDistribute(
        address indexed customerAddress,
        uint256 price
    );

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

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

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

    event onWithdraw(
        address indexed customerAddress,
        uint256 MDXWithdrawn
    );

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

    string public name = "STABLE MDX";
    string public symbol = "MDX";
    uint8 constant public decimals = 18;
    uint256 internal entryFee_ = 10;
    uint256 internal transferFee_ = 1;
    uint256 internal exitFee_ = 10;
    uint256 internal referralFee_ = 20; // 20% of the 10% buy or sell fees makes it 2%
    uint256 internal maintenanceFee_ = 10; // 10% of the 10% buy or sell fees makes it 1%
    address internal maintenanceAddress;
    uint256 constant internal magnitude = 2 ** 64;
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal invested_;
    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    uint256 public stakingRequirement = 1000e18;
    uint256 public totalHolder = 0;
    uint256 public totalDonation = 0;
    TOKEN erc20;

    constructor() public {
        maintenanceAddress = address(0x074F21a36217d7615d0202faA926aEFEBB5a9999);
        erc20 = TOKEN(address(0x947AEb02304391f8fbE5B25D7D98D649b57b1788));
    }

    function checkAndTransferMDX(uint256 _amount) private {
        require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed");
    }

    function distribute(uint256 _amount) public returns (uint256) {
        require(_amount > 0, "must be a positive value");
        checkAndTransferMDX(_amount);
        totalDonation += _amount;
        profitPerShare_ = SafeMath.add(profitPerShare_, (_amount * magnitude) / tokenSupply_);
        emit onDistribute(msg.sender, _amount);
    }

    function buy(uint256 _amount, address _referredBy) public returns (uint256) {
        checkAndTransferMDX(_amount);
        return purchaseTokens(_referredBy, msg.sender, _amount);
    }

    function buyFor(uint256 _amount, address _customerAddress, address _referredBy) public returns (uint256) {
        checkAndTransferMDX(_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 _amountOfTokens) onlyTokenHolders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_amountOfTokens, exitFee_), 100);
        uint256 _maintenance = SafeMath.div(SafeMath.mul(_undividedDividends, maintenanceFee_),100);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _maintenance);
        uint256 _taxedMDX= SafeMath.sub(_amountOfTokens, _undividedDividends);

        referralBalance_[maintenanceAddress] = SafeMath.add(referralBalance_[maintenanceAddress], _maintenance);

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

        int256 _updatedPayouts = (int256) (profitPerShare_ * _amountOfTokens + (_taxedMDX* magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }

        emit Transfer(_customerAddress, address(0), _amountOfTokens);
        emit onTokenSell(_customerAddress, _amountOfTokens, _taxedMDX, now);
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyTokenHolders external 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 = _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 totalMDXBalance() 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 _MDX= 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_MDX, exitFee_), 100);
        uint256 _taxedMDX= SafeMath.sub(_MDX, _dividends);

        return _taxedMDX;
    }

    function buyPrice() public view returns (uint256) {
        uint256 _MDX= 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_MDX, entryFee_), 100);
        uint256 _taxedMDX= SafeMath.add(_MDX, _dividends);

        return _taxedMDX;
    }

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

        return _amountOfTokens;
    }

    function calculateMDXReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _dividends = SafeMath.div(SafeMath.mul(_tokensToSell, exitFee_), 100);
        uint256 _taxedMDX= SafeMath.sub(_tokensToSell, _dividends);

        return _taxedMDX;
    }

    function getInvested() public view returns (uint256) {
        return invested_[msg.sender];
    }

    function purchaseTokens(address _referredBy, address _customerAddress, uint256 _incomingMDX) internal isActivated returns (uint256) {
        if (getInvested() == 0) {
          totalHolder++;
        }

        invested_[msg.sender] += _incomingMDX;

        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingMDX, 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 _amountOfTokens = SafeMath.sub(_incomingMDX, _undividedDividends);
        uint256 _fee = _dividends * magnitude;

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

        referralBalance_[maintenanceAddress] = SafeMath.add(referralBalance_[maintenanceAddress], _maintenance);

        if (_referredBy != address(0) && _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 Transfer(address(0), _customerAddress, _amountOfTokens);
        emit onTokenPurchase(_customerAddress, _incomingMDX, _amountOfTokens, _referredBy, now);

        return _amountOfTokens;
    }
}

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":"_MDXToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateMDXReceived","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":"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":"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":"_customerAddress","type":"address"}],"name":"balanceOf","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":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"totalDonation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHolder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalMDXBalance","outputs":[{"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":"incomingMDX","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":"MDXEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"MDXReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"MDXWithdrawn","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"}]

60806040526360a24f6c6000556040805190810160405280600a81526020017f535441424c45204d445800000000000000000000000000000000000000000000815250600190805190602001906200005992919062000196565b506040805190810160405280600381526020017f4d4458000000000000000000000000000000000000000000000000000000000081525060029080519060200190620000a792919062000196565b50600a6003556001600455600a6005556014600655600a600755683635c9adc5dea00000600f5560006010556000601155348015620000e557600080fd5b5073074f21a36217d7615d0202faa926aefebb5a9999600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073947aeb02304391f8fbe5b25d7d98d649b57b1788601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000245565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001d957805160ff19168380011785556200020a565b828001600101855582156200020a579182015b8281111562000209578251825591602001919060010190620001ec565b5b5090506200021991906200021d565b5090565b6200024291905b808211156200023e57600081600090555060010162000224565b5090565b90565b6120bd80620002556000396000f300608060405260043610610148576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461014d57806306fdde03146101a457806310d0ffdd1461023457806313e725fe1461027557806318160ddd146102b6578063313ce567146102e157806332b74ec7146103125780633ccfd60b146103935780634b750334146103aa57806356d399e8146103d5578063688abbf71461040057806370a08231146104435780637deb60251461049a5780638620410b146104fb57806391c05b0b14610526578063949e8acd1461056757806395d89b4114610592578063a9059cbb14610622578063befc3e2b14610687578063e4849b32146106b2578063e9fad8ee146106df578063ee2ac05f146106f6578063f11745df14610721578063f12a4c711461074c578063fdb5a03e14610777575b600080fd5b34801561015957600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061078e565b6040518082815260200191505060405180910390f35b3480156101b057600080fd5b506101b9610830565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f95780820151818401526020810190506101de565b50505050905090810190601f1680156102265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024057600080fd5b5061025f600480360381019080803590602001909291905050506108ce565b6040518082815260200191505060405180910390f35b34801561028157600080fd5b506102a060048036038101908080359060200190929190505050610901565b6040518082815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610945565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b506102f661094f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031e57600080fd5b5061037d60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610954565b6040518082815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610973565b005b3480156103b657600080fd5b506103bf610bd1565b6040518082815260200191505060405180910390f35b3480156103e157600080fd5b506103ea610c0f565b6040518082815260200191505060405180910390f35b34801561040c57600080fd5b5061042d600480360381019080803515159060200190929190505050610c15565b6040518082815260200191505060405180910390f35b34801561044f57600080fd5b50610484600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c81565b6040518082815260200191505060405180910390f35b3480156104a657600080fd5b506104e560048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cca565b6040518082815260200191505060405180910390f35b34801561050757600080fd5b50610510610ce8565b6040518082815260200191505060405180910390f35b34801561053257600080fd5b5061055160048036038101908080359060200190929190505050610d26565b6040518082815260200191505060405180910390f35b34801561057357600080fd5b5061057c610e35565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105a7610e4a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062e57600080fd5b5061066d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee8565b604051808215151515815260200191505060405180910390f35b34801561069357600080fd5b5061069c611201565b6040518082815260200191505060405180910390f35b3480156106be57600080fd5b506106dd60048036038101908080359060200190929190505050611248565b005b3480156106eb57600080fd5b506106f46115d2565b005b34801561070257600080fd5b5061070b611639565b6040518082815260200191505060405180910390f35b34801561072d57600080fd5b5061073661163f565b6040518082815260200191505060405180910390f35b34801561075857600080fd5b50610761611645565b6040518082815260200191505060405180910390f35b34801561078357600080fd5b5061078c611744565b005b600068010000000000000000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e54020381151561082857fe5b049050919050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c65780601f1061089b576101008083540402835291602001916108c6565b820191906000526020600020905b8154815290600101906020018083116108a957829003601f168201915b505050505081565b60008060006108e96108e2856003546118b9565b60646118f1565b91506108f58483611907565b90508092505050919050565b6000806000600d54841115151561091757600080fd5b61092d610926856005546118b9565b60646118f1565b91506109398483611907565b90508092505050919050565b6000600d54905090565b601281565b600061095f84611920565b61096a828486611ad2565b90509392505050565b60008060006109826001610c15565b11151561098e57600080fd5b33915061099b6000610c15565b9050680100000000000000008102600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b4357600080fd5b505af1158015610b57573d6000803e3d6000fd5b505050506040513d6020811015610b6d57600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080670de0b6b3a76400009250610bf8610bf1846005546118b9565b60646118f1565b9150610c048383611907565b905080935050505090565b600f5481565b60008033905082610c2e57610c298161078e565b610c79565b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c778261078e565b015b915050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610cd583611920565b610ce0823385611ad2565b905092915050565b600080600080670de0b6b3a76400009250610d0f610d08846003546118b9565b60646118f1565b9150610d1b8383612075565b905080935050505090565b60008082111515610d9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d757374206265206120706f7369746976652076616c7565000000000000000081525060200191505060405180910390fd5b610da882611920565b81601160008282540192505081905550610ddc600e54600d54680100000000000000008502811515610dd657fe5b04612075565b600e819055503373ffffffffffffffffffffffffffffffffffffffff167fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064836040518082815260200191505060405180910390a2919050565b600080339050610e4481610c81565b91505090565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ee05780601f10610eb557610100808354040283529160200191610ee0565b820191906000526020600020905b815481529060010190602001808311610ec357829003601f168201915b505050505081565b600080600080600080610ef9610e35565b111515610f0557600080fd5b339350600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515610f5657600080fd5b6000610f626001610c15565b1115610f7157610f70610973565b5b610f87610f80876004546118b9565b60646118f1565b9250610f938684611907565b9150829050610fa4600d5484611907565b600d81905550610ff3600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611907565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061107f600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612075565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085600e5402600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600e5402600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611188600e54600d5468010000000000000000840281151561118257fe5b04612075565b600e819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600080600080600080600061125b610e35565b11151561126757600080fd5b339550600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487111515156112b857600080fd5b6112ce6112c7886005546118b9565b60646118f1565b94506112e66112df866007546118b9565b60646118f1565b93506112f28585611907565b92506112fe8786611907565b915061136b600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612075565b600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113dc600d5488611907565b600d8190555061142b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488611907565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555068010000000000000000820287600e540201905080600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600d541115611505576114fe600e54600d546801000000000000000086028115156114f857fe5b04612075565b600e819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a38573ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e588844260405180848152602001838152602001828152602001935050505060405180910390a250505050505050565b600080339150600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561162d5761162c81611248565b5b611635610973565b5050565b60115481565b60105481565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b505050506040513d602081101561172e57600080fd5b8101908080519060200190929190505050905090565b6000806000806117546001610c15565b11151561176057600080fd5b33925061176d6000610c15565b9150680100000000000000008202600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185c60008484611ad2565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b6000808314156118cc57600090506118eb565b81830290508183828115156118dd57fe5b041415156118e757fe5b8090505b92915050565b600081838115156118fe57fe5b04905092915050565b600082821115151561191557fe5b818303905092915050565b60011515601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050506040513d6020811015611a4757600080fd5b81019080805190602001909291905050501515141515611acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b6000806000806000806000806000544210151515611aef57600080fd5b6000611af9611201565b1415611b12576010600081548092919060010191905055505b88600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611b75611b6e8a6003546118b9565b60646118f1565b9650611b8d611b86886007546118b9565b60646118f1565b9550611ba5611b9e886006546118b9565b60646118f1565b9450611bba87611bb58789612075565b611907565b9350611bc68988611907565b92506801000000000000000084029150600083118015611bf25750600d54611bf084600d54612075565b115b1515611bfd57600080fd5b611c68600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487612075565b600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614158015611d3657508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614155b8015611d835750600f54600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611e1957611dd1600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612075565b600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e34565b611e238486612075565b935068010000000000000000840291505b6000600d541115611e9f57611e4b600d5484612075565b600d81905550600d54680100000000000000008502811515611e6957fe5b04600e60008282540192505081905550600d54680100000000000000008502811515611e9157fe5b048302820382039150611ea7565b82600d819055505b611ef0600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612075565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508183600e540203905080600b60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868b864260405180848152602001838152602001828152602001935050505060405180910390a3829750505050505050509392505050565b6000818301905082811015151561208857fe5b809050929150505600a165627a7a72305820558558b8685db6a16a6d23be335ab1c9198f177e269919b6685ceefef259300c0029

Deployed Bytecode

0x608060405260043610610148576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461014d57806306fdde03146101a457806310d0ffdd1461023457806313e725fe1461027557806318160ddd146102b6578063313ce567146102e157806332b74ec7146103125780633ccfd60b146103935780634b750334146103aa57806356d399e8146103d5578063688abbf71461040057806370a08231146104435780637deb60251461049a5780638620410b146104fb57806391c05b0b14610526578063949e8acd1461056757806395d89b4114610592578063a9059cbb14610622578063befc3e2b14610687578063e4849b32146106b2578063e9fad8ee146106df578063ee2ac05f146106f6578063f11745df14610721578063f12a4c711461074c578063fdb5a03e14610777575b600080fd5b34801561015957600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061078e565b6040518082815260200191505060405180910390f35b3480156101b057600080fd5b506101b9610830565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f95780820151818401526020810190506101de565b50505050905090810190601f1680156102265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024057600080fd5b5061025f600480360381019080803590602001909291905050506108ce565b6040518082815260200191505060405180910390f35b34801561028157600080fd5b506102a060048036038101908080359060200190929190505050610901565b6040518082815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610945565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b506102f661094f565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031e57600080fd5b5061037d60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610954565b6040518082815260200191505060405180910390f35b34801561039f57600080fd5b506103a8610973565b005b3480156103b657600080fd5b506103bf610bd1565b6040518082815260200191505060405180910390f35b3480156103e157600080fd5b506103ea610c0f565b6040518082815260200191505060405180910390f35b34801561040c57600080fd5b5061042d600480360381019080803515159060200190929190505050610c15565b6040518082815260200191505060405180910390f35b34801561044f57600080fd5b50610484600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c81565b6040518082815260200191505060405180910390f35b3480156104a657600080fd5b506104e560048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cca565b6040518082815260200191505060405180910390f35b34801561050757600080fd5b50610510610ce8565b6040518082815260200191505060405180910390f35b34801561053257600080fd5b5061055160048036038101908080359060200190929190505050610d26565b6040518082815260200191505060405180910390f35b34801561057357600080fd5b5061057c610e35565b6040518082815260200191505060405180910390f35b34801561059e57600080fd5b506105a7610e4a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105e75780820151818401526020810190506105cc565b50505050905090810190601f1680156106145780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561062e57600080fd5b5061066d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee8565b604051808215151515815260200191505060405180910390f35b34801561069357600080fd5b5061069c611201565b6040518082815260200191505060405180910390f35b3480156106be57600080fd5b506106dd60048036038101908080359060200190929190505050611248565b005b3480156106eb57600080fd5b506106f46115d2565b005b34801561070257600080fd5b5061070b611639565b6040518082815260200191505060405180910390f35b34801561072d57600080fd5b5061073661163f565b6040518082815260200191505060405180910390f35b34801561075857600080fd5b50610761611645565b6040518082815260200191505060405180910390f35b34801561078357600080fd5b5061078c611744565b005b600068010000000000000000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e54020381151561082857fe5b049050919050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c65780601f1061089b576101008083540402835291602001916108c6565b820191906000526020600020905b8154815290600101906020018083116108a957829003601f168201915b505050505081565b60008060006108e96108e2856003546118b9565b60646118f1565b91506108f58483611907565b90508092505050919050565b6000806000600d54841115151561091757600080fd5b61092d610926856005546118b9565b60646118f1565b91506109398483611907565b90508092505050919050565b6000600d54905090565b601281565b600061095f84611920565b61096a828486611ad2565b90509392505050565b60008060006109826001610c15565b11151561098e57600080fd5b33915061099b6000610c15565b9050680100000000000000008102600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b4357600080fd5b505af1158015610b57573d6000803e3d6000fd5b505050506040513d6020811015610b6d57600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080670de0b6b3a76400009250610bf8610bf1846005546118b9565b60646118f1565b9150610c048383611907565b905080935050505090565b600f5481565b60008033905082610c2e57610c298161078e565b610c79565b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c778261078e565b015b915050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610cd583611920565b610ce0823385611ad2565b905092915050565b600080600080670de0b6b3a76400009250610d0f610d08846003546118b9565b60646118f1565b9150610d1b8383612075565b905080935050505090565b60008082111515610d9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d757374206265206120706f7369746976652076616c7565000000000000000081525060200191505060405180910390fd5b610da882611920565b81601160008282540192505081905550610ddc600e54600d54680100000000000000008502811515610dd657fe5b04612075565b600e819055503373ffffffffffffffffffffffffffffffffffffffff167fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064836040518082815260200191505060405180910390a2919050565b600080339050610e4481610c81565b91505090565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ee05780601f10610eb557610100808354040283529160200191610ee0565b820191906000526020600020905b815481529060010190602001808311610ec357829003601f168201915b505050505081565b600080600080600080610ef9610e35565b111515610f0557600080fd5b339350600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611151515610f5657600080fd5b6000610f626001610c15565b1115610f7157610f70610973565b5b610f87610f80876004546118b9565b60646118f1565b9250610f938684611907565b9150829050610fa4600d5484611907565b600d81905550610ff3600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611907565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061107f600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612075565b600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555085600e5402600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600e5402600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611188600e54600d5468010000000000000000840281151561118257fe5b04612075565b600e819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600080600080600080600061125b610e35565b11151561126757600080fd5b339550600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487111515156112b857600080fd5b6112ce6112c7886005546118b9565b60646118f1565b94506112e66112df866007546118b9565b60646118f1565b93506112f28585611907565b92506112fe8786611907565b915061136b600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612075565b600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113dc600d5488611907565b600d8190555061142b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488611907565b600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555068010000000000000000820287600e540201905080600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600d541115611505576114fe600e54600d546801000000000000000086028115156114f857fe5b04612075565b600e819055505b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef896040518082815260200191505060405180910390a38573ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e588844260405180848152602001838152602001828152602001935050505060405180910390a250505050505050565b600080339150600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561162d5761162c81611248565b5b611635610973565b5050565b60115481565b60105481565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b505050506040513d602081101561172e57600080fd5b8101908080519060200190929190505050905090565b6000806000806117546001610c15565b11151561176057600080fd5b33925061176d6000610c15565b9150680100000000000000008202600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185c60008484611ad2565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b6000808314156118cc57600090506118eb565b81830290508183828115156118dd57fe5b041415156118e757fe5b8090505b92915050565b600081838115156118fe57fe5b04905092915050565b600082821115151561191557fe5b818303905092915050565b60011515601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611a1d57600080fd5b505af1158015611a31573d6000803e3d6000fd5b505050506040513d6020811015611a4757600080fd5b81019080805190602001909291905050501515141515611acf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b6000806000806000806000806000544210151515611aef57600080fd5b6000611af9611201565b1415611b12576010600081548092919060010191905055505b88600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611b75611b6e8a6003546118b9565b60646118f1565b9650611b8d611b86886007546118b9565b60646118f1565b9550611ba5611b9e886006546118b9565b60646118f1565b9450611bba87611bb58789612075565b611907565b9350611bc68988611907565b92506801000000000000000084029150600083118015611bf25750600d54611bf084600d54612075565b115b1515611bfd57600080fd5b611c68600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487612075565b600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614158015611d3657508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614155b8015611d835750600f54600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15611e1957611dd1600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612075565b600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e34565b611e238486612075565b935068010000000000000000840291505b6000600d541115611e9f57611e4b600d5484612075565b600d81905550600d54680100000000000000008502811515611e6957fe5b04600e60008282540192505081905550600d54680100000000000000008502811515611e9157fe5b048302820382039150611ea7565b82600d819055505b611ef0600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612075565b600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508183600e540203905080600b60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a38a73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868b864260405180848152602001838152602001828152602001935050505060405180910390a3829750505050505050509392505050565b6000818301905082811015151561208857fe5b809050929150505600a165627a7a72305820558558b8685db6a16a6d23be335ab1c9198f177e269919b6685ceefef259300c0029

Deployed Bytecode Sourcemap

1128:11548:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4440:8;;;8936:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8936:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2289:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2289:33: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;2289:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9696:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9696:288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9992:326;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9992:326:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8248:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8248:91:0;;;;;;;;;;;;;;;;;;;;;;;2364:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2364:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4171:224;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4171:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5164:438;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5164:438:0;;;;;;9168:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9168:256:0;;;;;;;;;;;;;;;;;;;;;;;3098:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3098:43:0;;;;;;;;;;;;;;;;;;;;;;;8506:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8506:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8790:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8790:138:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3974:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3974:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9432:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9432:256:0;;;;;;;;;;;;;;;;;;;;;;;3618:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3618:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8347:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8347:151:0;;;;;;;;;;;;;;;;;;;;;;;2329:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2329: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;2329:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6946:1173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6946:1173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10326:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10326:100:0;;;;;;;;;;;;;;;;;;;;;;;5610:1328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5610:1328:0;;;;;;;;;;;;;;;;;;;;;;;;;;4947:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4947:209:0;;;;;;3185:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3185:32:0;;;;;;;;;;;;;;;;;;;;;;;3148:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3148:30:0;;;;;;;;;;;;;;;;;;;;;;;8127:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8127:113:0;;;;;;;;;;;;;;;;;;;;;;;4464:475;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4464:475:0;;;;;;8936:224;9004:7;2780;9111:10;:28;9122:16;9111:28;;;;;;;;;;;;;;;;9070:19;:37;9090:16;9070:37;;;;;;;;;;;;;;;;9052:15;;:55;9042:97;9031:121;;;;;;;;9024:128;;8936:224;;;:::o;2289:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9696:288::-;9771:7;9791:18;9878:23;9812:55;9825:36;9838:11;9851:9;;9825:12;:36::i;:::-;9863:3;9812:12;:55::i;:::-;9791:76;;9904:37;9917:11;9930:10;9904:12;:37::i;:::-;9878:63;;9961:15;9954:22;;9696:288;;;;;:::o;9992:326::-;10066:7;10135:18;10223:17;10111:12;;10094:13;:29;;10086:38;;;;;;;;10156:56;10169:37;10182:13;10197:8;;10169:12;:37::i;:::-;10208:3;10156:12;:56::i;:::-;10135:77;;10242:39;10255:13;10270:10;10242:12;:39::i;:::-;10223:58;;10301:9;10294:16;;9992:326;;;;;:::o;8248:91::-;8292:7;8319:12;;8312:19;;8248:91;:::o;2364:35::-;2397:2;2364:35;:::o;4171:224::-;4267:7;4287:28;4307:7;4287:19;:28::i;:::-;4333:54;4348:11;4361:16;4379:7;4333:14;:54::i;:::-;4326:61;;4171:224;;;;;:::o;5164:438::-;5212:24;5260:18;1437:1;1417:17;1429:4;1417:11;:17::i;:::-;:21;1409:30;;;;;;;;5239:10;5212:37;;5281:18;5293:5;5281:11;:18::i;:::-;5260:39;;2780:7;5352:10;:22;5310:10;:28;5321:16;5310:28;;;;;;;;;;;;;;;;:65;;;;;;;;;;;5400:16;:34;5417:16;5400:34;;;;;;;;;;;;;;;;5386:48;;;;5482:1;5445:16;:34;5462:16;5445:34;;;;;;;;;;;;;;;:38;;;;5494:5;;;;;;;;;;;:14;;;5509:16;5527:10;5494:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5494:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5494:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5494:44:0;;;;;;;;;;;;;;;;;5565:16;5554:40;;;5583:10;5554:40;;;;;;;;;;;;;;;;;;5164:438;;:::o;9168:256::-;9210:7;9230:12;9259:18;9338:17;9244:4;9230:18;;9280:47;9293:28;9306:4;9312:8;;9293:12;:28::i;:::-;9323:3;9280:12;:47::i;:::-;9259:68;;9357:30;9370:4;9376:10;9357:12;:30::i;:::-;9338:49;;9407:9;9400:16;;9168:256;;;;:::o;3098:43::-;;;;:::o;8506:276::-;8576:7;8596:24;8623:10;8596:37;;8651:21;:122;;8744:29;8756:16;8744:11;:29::i;:::-;8651:122;;;8707:16;:34;8724:16;8707:34;;;;;;;;;;;;;;;;8675:29;8687:16;8675:11;:29::i;:::-;:66;8651:122;8644:129;;8506:276;;;;:::o;8790:138::-;8856:7;8883:19;:37;8903:16;8883:37;;;;;;;;;;;;;;;;8876:44;;8790:138;;;:::o;3974:189::-;4041:7;4061:28;4081:7;4061:19;:28::i;:::-;4107:48;4122:11;4135:10;4147:7;4107:14;:48::i;:::-;4100:55;;3974:189;;;;:::o;9432:256::-;9473:7;9493:12;9522:18;9602:17;9507:4;9493:18;;9543:48;9556:29;9569:4;9575:9;;9556:12;:29::i;:::-;9587:3;9543:12;:48::i;:::-;9522:69;;9621:30;9634:4;9640:10;9621:12;:30::i;:::-;9602:49;;9671:9;9664:16;;9432:256;;;;:::o;3618:348::-;3671:7;3709:1;3699:7;:11;3691:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3750:28;3770:7;3750:19;:28::i;:::-;3806:7;3789:13;;:24;;;;;;;;;;;3842:67;3855:15;;3896:12;;2780:7;3873;:19;3872:36;;;;;;;;3842:12;:67::i;:::-;3824:15;:85;;;;3938:10;3925:33;;;3950:7;3925:33;;;;;;;;;;;;;;;;;;3618:348;;;:::o;8347:151::-;8388:7;8408:24;8435:10;8408:37;;8463:27;8473:16;8463:9;:27::i;:::-;8456:34;;8347:151;;:::o;2329:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6946:1173::-;7044:4;7060:24;7262:17;7355:20;7429:18;1349:1;1336:10;:8;:10::i;:::-;:14;1328:23;;;;;;;;7087:10;7060:37;;7135:19;:37;7155:16;7135:37;;;;;;;;;;;;;;;;7116:15;:56;;7108:65;;;;;;;;7210:1;7190:17;7202:4;7190:11;:17::i;:::-;:21;7186:64;;;7228:10;:8;:10::i;:::-;7186:64;7282:62;7295:43;7308:15;7325:12;;7295;:43::i;:::-;7340:3;7282:12;:62::i;:::-;7262:82;;7378:40;7391:15;7408:9;7378:12;:40::i;:::-;7355:63;;7450:9;7429:30;;7487:37;7500:12;;7514:9;7487:12;:37::i;:::-;7472:12;:52;;;;7577:68;7590:19;:37;7610:16;7590:37;;;;;;;;;;;;;;;;7629:15;7577:12;:68::i;:::-;7537:19;:37;7557:16;7537:37;;;;;;;;;;;;;;;:108;;;;7690:59;7703:19;:31;7723:10;7703:31;;;;;;;;;;;;;;;;7736:12;7690;:59::i;:::-;7656:19;:31;7676:10;7656:31;;;;;;;;;;;;;;;:93;;;;7822:15;7804;;:33;7762:10;:28;7773:16;7762:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;7903:12;7885:15;;:30;7849:10;:22;7860:10;7849:22;;;;;;;;;;;;;;;;:67;;;;;;;;;;;7947:70;7960:15;;8004:12;;2780:7;7978:10;:22;7977:39;;;;;;;;7947:12;:70::i;:::-;7929:15;:88;;;;8062:10;8035:52;;8044:16;8035:52;;;8074:12;8035:52;;;;;;;;;;;;;;;;;;8107:4;8100:11;;6946:1173;;;;;;;;:::o;10326:100::-;10370:7;10397:9;:21;10407:10;10397:21;;;;;;;;;;;;;;;;10390:28;;10326:100;:::o;5610:1328::-;5684:24;5810:27;5909:20;6011:18;6090:17;6478:22;1349:1;1336:10;:8;:10::i;:::-;:14;1328:23;;;;;;;;5711:10;5684:37;;5759:19;:37;5779:16;5759:37;;;;;;;;;;;;;;;;5740:15;:56;;5732:65;;;;;;;;5840:58;5853:39;5866:15;5883:8;;5853:12;:39::i;:::-;5894:3;5840:12;:58::i;:::-;5810:88;;5932:68;5945:50;5958:19;5979:15;;5945:12;:50::i;:::-;5996:3;5932:12;:68::i;:::-;5909:91;;6032:47;6045:19;6066:12;6032;:47::i;:::-;6011:68;;6109:50;6122:15;6139:19;6109:12;:50::i;:::-;6090:69;;6211:64;6224:16;:36;6241:18;;;;;;;;;;;6224:36;;;;;;;;;;;;;;;;6262:12;6211;:64::i;:::-;6172:16;:36;6189:18;;;;;;;;;;;6172:36;;;;;;;;;;;;;;;:103;;;;6303:43;6316:12;;6330:15;6303:12;:43::i;:::-;6288:12;:58;;;;6397:68;6410:19;:37;6430:16;6410:37;;;;;;;;;;;;;;;;6449:15;6397:12;:68::i;:::-;6357:19;:37;6377:16;6357:37;;;;;;;;;;;;;;;:108;;;;2780:7;6550:9;:20;6531:15;6513;;:33;:58;6478:94;;6615:15;6583:10;:28;6594:16;6583:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6662:1;6647:12;;:16;6643:137;;;6698:70;6711:15;;6755:12;;2780:7;6729:10;:22;6728:39;;;;;;;;6698:12;:70::i;:::-;6680:15;:88;;;;6643:137;6832:1;6797:55;;6806:16;6797:55;;;6836:15;6797:55;;;;;;;;;;;;;;;;;;6880:16;6868:62;;;6898:15;6915:9;6926:3;6868:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:1328;;;;;;;:::o;4947:209::-;4983:24;5031:15;5010:10;4983:37;;5049:19;:37;5069:16;5049:37;;;;;;;;;;;;;;;;5031:55;;5111:1;5101:7;:11;5097:30;;;5114:13;5119:7;5114:4;:13::i;:::-;5097:30;5138:10;:8;:10::i;:::-;4947:209;;:::o;3185:32::-;;;;:::o;3148:30::-;;;;:::o;8127:113::-;8175:7;8202:5;;;;;;;;;;;:15;;;8226:4;8202:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8202:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8202:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8202:30:0;;;;;;;;;;;;;;;;8195:37;;8127:113;:::o;4464:475::-;4512:24;4560:18;4795:15;1437:1;1417:17;1429:4;1417:11;:17::i;:::-;:21;1409:30;;;;;;;;4539:10;4512:37;;4581:18;4593:5;4581:11;:18::i;:::-;4560:39;;2780:7;4653:10;:22;4610:10;:28;4621:16;4610:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;4701:16;:34;4718:16;4701:34;;;;;;;;;;;;;;;;4687:48;;;;4783:1;4746:16;:34;4763:16;4746:34;;;;;;;;;;;;;;;:38;;;;4813:49;4828:3;4833:16;4851:10;4813:14;:49::i;:::-;4795:67;;4893:16;4878:53;;;4911:10;4923:7;4878:53;;;;;;;;;;;;;;;;;;;;;;;;4464:475;;;:::o;52:188::-;110:9;139:1;134;:6;130:41;;;160:1;153:8;;;;130:41;187:1;183;:5;179:9;;213:1;208;204;:5;;;;;;;;:10;197:18;;;;;;231:1;224:8;;52:188;;;;;:::o;248:96::-;306:7;335:1;331;:5;;;;;;;;324:12;;248:96;;;;:::o;352:119::-;410:7;440:1;435;:6;;428:14;;;;;;462:1;458;:5;451:12;;352:119;;;;:::o;3441:169::-;3572:4;3514:62;;:5;;;;;;;;;;;:18;;;3533:10;3553:4;3560:7;3514:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3514:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3514:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3514:54:0;;;;;;;;;;;;;;;;:62;;;3506:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3441:169;:::o;10434:2239::-;10557:7;10701:27;10800:20;10903:22;11007:18;11115:23;11199:12;12325:22;1247:15;;1240:3;:22;;1232:31;;;;;;;;10598:1;10581:13;:11;:13::i;:::-;:18;10577:62;;;10614:11;;:13;;;;;;;;;;;;;10577:62;10676:12;10651:9;:21;10661:10;10651:21;;;;;;;;;;;;;;;;:37;;;;;;;;;;;10731:56;10744:37;10757:12;10771:9;;10744:12;:37::i;:::-;10783:3;10731:12;:56::i;:::-;10701:86;;10823:69;10836:50;10849:19;10870:15;;10836:12;:50::i;:::-;10888:3;10823:12;:69::i;:::-;10800:92;;10928:66;10941:47;10954:19;10975:12;;10941;:47::i;:::-;10990:3;10928:12;:66::i;:::-;10903:91;;11028:76;11041:19;11062:41;11075:14;11090:12;11062;:41::i;:::-;11028:12;:76::i;:::-;11007:97;;11141:47;11154:12;11168:19;11141:12;:47::i;:::-;11115:73;;2780:7;11214:10;:22;11199:37;;11275:1;11257:15;:19;:81;;;;;11326:12;;11280:43;11293:15;11310:12;;11280;:43::i;:::-;:58;11257:81;11249:90;;;;;;;;11391:64;11404:16;:36;11421:18;;;;;;;;;;;11404:36;;;;;;;;;;;;;;;;11442:12;11391;:64::i;:::-;11352:16;:36;11369:18;;;;;;;;;;;11352:36;;;;;;;;;;;;;;;:103;;;;11495:1;11472:25;;:11;:25;;;;:60;;;;;11516:16;11501:31;;:11;:31;;;;11472:60;:118;;;;;11572:18;;11536:19;:32;11556:11;11536:32;;;;;;;;;;;;;;;;:54;;11472:118;11468:372;;;11639:59;11652:16;:29;11669:11;11652:29;;;;;;;;;;;;;;;;11683:14;11639:12;:59::i;:::-;11607:16;:29;11624:11;11607:29;;;;;;;;;;;;;;;:91;;;;11468:372;;;11744:40;11757:10;11769:14;11744:12;:40::i;:::-;11731:53;;2780:7;11806:10;:22;11799:29;;11468:372;11871:1;11856:12;;:16;11852:340;;;11904:43;11917:12;;11931:15;11904:12;:43::i;:::-;11889:12;:58;;;;12007:12;;2780:7;11982:10;:22;:37;;;;;;;;11962:15;;:58;;;;;;;;;;;12102:12;;2780:7;12077:10;:22;:37;;;;;;;;12058:15;:57;12050:4;:66;12042:4;:75;12035:82;;11852:340;;;12165:15;12150:12;:30;;;;11852:340;12244:68;12257:19;:37;12277:16;12257:37;;;;;;;;;;;;;;;;12296:15;12244:12;:68::i;:::-;12204:19;:37;12224:16;12204:37;;;;;;;;;;;;;;;:108;;;;12396:4;12378:15;12360;;:33;:40;12325:76;;12444:15;12412:10;:28;12423:16;12412:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;12498:16;12477:55;;12494:1;12477:55;;;12516:15;12477:55;;;;;;;;;;;;;;;;;;12613:11;12548:82;;12564:16;12548:82;;;12582:12;12596:15;12626:3;12548:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12650:15;12643:22;;10434:2239;;;;;;;;;;;;:::o;479:135::-;537:9;565:1;561;:5;557:9;;587:1;582;:6;;575:14;;;;;;605:1;598:8;;479:135;;;;:::o

Swarm Source

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