ETH Price: $2,940.30 (+4.26%)
 

Overview

Max Total Supply

200,000,000 MEXP

Holders

241

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10 MEXP

Value
$0.00
0xebfc0acf88a5e53e7168d438dea79d82c46e2fb2
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:
MiningExpert

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.5.12;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor () public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender], "Error"); 
    // SafeMath.sub will throw if there is not enough balance. 
    balances[msg.sender] = balances[msg.sender].sub(_value); 
    balances[_to] = balances[_to].add(_value); 
    emit Transfer(msg.sender, _to, _value); 
    return true; 
  } 

  /** 
   * @dev Gets the balance of the specified address. 
   * @param _owner The address to query the the balance of. 
   * @return An uint256 representing the amount owned by the passed address. 
   */ 
  function balanceOf(address _owner) public view returns (uint256 balance) { 
    return balances[_owner]; 
  } 
} 

/** 
 * @title Standard ERC20 token 
 * 
 * @dev Implementation of the basic standard token. 
 * @dev https://github.com/ethereum/EIPs/issues/20 
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol 
 */ 
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal allowed;

  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]); 
    balances[_from] = balances[_from].sub(_value); 
    balances[_to] = balances[_to].add(_value); 
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); 
    emit Transfer(_from, _to, _value); 
    return true; 
  } 

 /** 
  * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. 
  * 
  * Beware that changing an allowance with this method brings the risk that someone may use both the old 
  * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this 
  * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: 
  * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 
  * @param _spender The address which will spend the funds. 
  * @param _value The amount of tokens to be spent. 
  */ 
  function approve(address _spender, uint256 _value) public returns (bool) { 
    allowed[msg.sender][_spender] = _value; 
    emit Approval(msg.sender, _spender, _value); 
    return true; 
  }

 /** 
  * @dev Function to check the amount of tokens that an owner allowed to a spender. 
  * @param _owner address The address which owns the funds. 
  * @param _spender address The address which will spend the funds. 
  * @return A uint256 specifying the amount of tokens still available for the spender. 
  */ 
  function allowance(address _owner, address _spender) public view returns (uint256 remaining) { 
    return allowed[_owner][_spender]; 
  } 

 /** 
  * approve should be called when allowed[_spender] == 0. To increment 
  * allowed value is better to use this function to avoid 2 calls (and wait until 
  * the first transaction is mined) * From MonolithDAO Token.sol 
  */ 
  function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); 
    return true; 
  }

  function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
    uint oldValue = allowed[msg.sender][_spender]; 
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function () external payable {
    revert();
  }

}

contract MiningExpertToken is StandardToken, Ownable {
    
    string public constant name = "Mining Expert Token";
    
    string public constant symbol = "MEXP";
    
    uint32 public constant decimals = 18;
    
    uint256 public constant INITIAL_SUPPLY = 200000000*10**18; //200 billion token MEXP
    
    constructor () public {
        totalSupply = INITIAL_SUPPLY;
    }
    
}

//The contract has an address 0x0000009d48b12597675a02fca9c317eadef152cb, it is generated before the contract is uploaded to the network, all other addresses have nothing to do with us
contract MiningExpert is MiningExpertToken{
   using SafeMath for uint;
   
   MiningExpertToken public token = new MiningExpertToken();
    // public information about the contribution of a specific investor
    mapping (address => uint) public contributor_balance;
    // public information last payment time
    mapping (address => uint) public contributor_payout_time;
    // public information how much the user received money
    mapping(address => uint) public contributor_payout;
    // public information how much the user received tokens
    mapping(address => uint) public contributor_token_payout;
    // public information how much the user received bonus MEXP
    mapping(address => bool) public contributor_bonus;
    // public information how much the user received bonus MEXP
    mapping(address => uint) public contributor_ETH_bonus;
    
    // all deposits below the minimum will be sent directly to the developer's wallet and will
    // be used for the development of the project
    uint constant  MINIMAL_DEPOSIT = 0.01 ether;
    //Token bonus 200%
    uint constant  BONUS_COEFFICIENT = 2;
    //bonus 2.2% for a deposit above 10 ETH
    uint constant  BONUS_ETH = 22;
    //bonus cost 0.01 ether
    uint TOKEN_COST = 100;
    // Time after which you can request the next payment
    uint constant  PAYOUT_TIME = 1 hours;
    // 0.0925 % per hour
    uint constant  HOURLY_PERCENT = 925;
    //commission 10%
    uint constant PROJECT_COMMISSION = 10;
    // developer wallet for advertising and server payments
    address payable constant DEVELOPER_WALLET  = 0x100000b152A8dA7a8FCb938D7113952BfbB99705;
    // payment wallet
    address payable constant PAYMENT_WALLET = 0x2000001068A0F8A100A2A3a6D256A069A074B4E2;
    
    event NewContributor(address indexed contributor, uint value, uint time);
    event PayDividends(address indexed contributor, uint value, uint time);
    event PayTokenDividends(address indexed contributor, uint value, uint time);
    event NewContribution(address indexed contributor, uint value,uint time);
    event PayBonus(address indexed contributor, uint value, uint time);
    event Refund(address indexed contributor, uint value, uint time);
    event Reinvest(address indexed contributor, uint value, uint time);
    event TokenRefund(address indexed contributor, uint value, uint time);

    uint public total_deposits;
    uint public number_contributors;
    uint public last_payout;
    uint public total_payout;
    uint public total_token_payout;
    
    constructor()public payable {
        balances[address(this)] = INITIAL_SUPPLY/2;
        balances[DEVELOPER_WALLET] = INITIAL_SUPPLY/2;
        emit Transfer(address(this), DEVELOPER_WALLET, INITIAL_SUPPLY/2);
    }
    
    /**
     * The modifier checking the positive balance of the beneficiary
    */
    modifier checkContributor(){
        require(contributor_balance[msg.sender] > 0,  "Deposit not found");
        _;
    }
    
    /**
     * modifier checking the next payout time
     */
    modifier checkTime(){
         require(now >= contributor_payout_time[msg.sender].add(PAYOUT_TIME), "You can request payments at least 1 time per hour");
         _;
    }
    
    function get_contributor_credit()public view  returns(uint){
        uint hourly_rate = (contributor_balance[msg.sender].add(contributor_ETH_bonus[msg.sender])).mul(HOURLY_PERCENT).div(1000000);
        uint debt = now.sub(contributor_payout_time[msg.sender]).div(PAYOUT_TIME);
        return(debt.mul(hourly_rate));
    }
    
    // Take the remainder of the deposit and exit the project
    function refund() checkContributor public payable {
        uint balance = contributor_balance[msg.sender];
        uint token_balance_payout = contributor_token_payout[msg.sender].div(TOKEN_COST);
        uint payout_left = balance.sub(contributor_payout[msg.sender]).sub(token_balance_payout);
        uint out_summ;
        
        if(contributor_bonus[msg.sender] || contributor_payout[msg.sender] > 0){
            out_summ = payout_left.sub(balance.mul(PROJECT_COMMISSION).div(100));
            msg.sender.transfer(out_summ);
        }else{
            out_summ = payout_left;
            msg.sender.transfer(out_summ);
        }
        contributor_balance[msg.sender] = 0;
        contributor_payout_time[msg.sender] = 0;
        contributor_payout[msg.sender] = 0;
        contributor_token_payout[msg.sender] = 0;
        contributor_bonus[msg.sender] = false;
        contributor_ETH_bonus[msg.sender] = 0;
        
        emit Refund(msg.sender, out_summ, now);
    }
    
    // Conclusion establihsment and exit tokens MEXP
    function tokenRefund() checkContributor public payable {
        uint balance = contributor_balance[msg.sender];
        uint token_balance_payout = contributor_token_payout[msg.sender].div(TOKEN_COST);
        uint payout_left = balance.sub(contributor_payout[msg.sender]).sub(token_balance_payout);
        uint out_summ;
        
        if(contributor_bonus[msg.sender] || contributor_payout[msg.sender] > 0){
            out_summ = payout_left.sub(balance.mul(PROJECT_COMMISSION).div(100));
            this.transfer(msg.sender, out_summ.mul(TOKEN_COST));
        }else{
            out_summ = payout_left;
            this.transfer(msg.sender, out_summ.mul(TOKEN_COST));
        }
        contributor_balance[msg.sender] = 0;
        contributor_payout_time[msg.sender] = 0;
        contributor_payout[msg.sender] = 0;
        contributor_token_payout[msg.sender] = 0;
        contributor_bonus[msg.sender] = false;
        contributor_ETH_bonus[msg.sender] = 0;
        total_token_payout += out_summ;
        
        emit Refund(msg.sender, out_summ, now);
    }
    
    // Reinvest the dividends into the project
    function reinvest()public checkContributor payable{
        require(contributor_bonus[msg.sender], 'Get bonus to reinvest');
        uint credit = get_contributor_credit();
        
        if (credit > 0){
            uint bonus = credit.mul(BONUS_ETH).div(1000);
            credit += bonus;
            contributor_payout_time[msg.sender] = now;
            contributor_balance[msg.sender] += credit;
            emit Reinvest(msg.sender, credit, now);
        }else{
            revert();
        }
    }
    
    // Get payment of dividends
    function receivePayment()checkTime public payable{
        uint credit = get_contributor_credit();
        contributor_payout_time[msg.sender] = now;
        contributor_payout[msg.sender] += credit;
        // 1 percent held on hedging
        msg.sender.transfer(credit.sub(credit.div(100)));
        total_payout += credit;
        last_payout = now;
        emit PayDividends(msg.sender, credit, now);
    }
    
    // Get payment of dividends in tokens
    function receiveTokenPayment()checkTime public payable{
        uint credit = get_contributor_credit().mul(TOKEN_COST);
        contributor_payout_time[msg.sender] = now;
        contributor_token_payout[msg.sender] += credit;
        this.transfer(msg.sender,credit);
        total_token_payout += credit;
        last_payout = now;
        emit PayTokenDividends(msg.sender, credit, now);
    }
    
    /**
     * The method of accepting payments, if a zero payment has come, then we start the procedure for refunding
     * the interest on the deposit, if the payment is not empty, we record the number of broadcasts on the contract
     * and the payment time
     */
    function makeContribution() private{
            
        if (contributor_balance[msg.sender] == 0){
            emit NewContributor(msg.sender, msg.value, now);
            number_contributors+=1;
        }
        
        // transfer developer commission
        DEVELOPER_WALLET.transfer(msg.value.mul(10).div(100));
        
        if(now >= contributor_payout_time[msg.sender].add(PAYOUT_TIME) && contributor_balance[msg.sender] != 0){
            receivePayment();
        }
        
        contributor_balance[msg.sender] += msg.value;
        contributor_payout_time[msg.sender] = now;
        
        if (msg.value >= 10 ether){
            contributor_ETH_bonus[msg.sender] = msg.value.mul(BONUS_ETH).div(1000);
        }
        
        total_deposits += msg.value;
        emit NewContribution(msg.sender, msg.value, now);
    }
    
    // Get bonus for contribution
    function getBonus()checkContributor external payable{
        uint balance = contributor_balance[msg.sender];
        if (!contributor_bonus[msg.sender]){
            contributor_bonus[msg.sender] = true;
            uint bonus = balance.mul(TOKEN_COST);
            this.transfer(msg.sender, bonus);
            total_token_payout += bonus;
            emit PayBonus(msg.sender, bonus, now);
        }
    }
    
    // Get information on the contributor
    function getContribtor() public view returns(uint balance, uint payout, uint payout_time, uint token_payout, bool bonus, uint ETH_bonus, uint payout_balance, uint token_balance) {
        balance = contributor_balance[msg.sender];
        payout = contributor_payout[msg.sender];
        payout_time = contributor_payout_time[msg.sender];
        token_payout = contributor_token_payout[msg.sender];
        bonus = contributor_bonus[msg.sender];
        ETH_bonus = contributor_ETH_bonus[msg.sender];
        payout_balance = get_contributor_credit();
        token_balance = balanceOf(msg.sender);
        
    }

    /**
     * function that is launched when transferring money to a contract
     */
    function() external payable{
        if (msg.value >= MINIMAL_DEPOSIT){
            //if the sender is not a payment wallet, then we make out a deposit otherwise we do nothing,
            // but simply put money on the balance of the contract
            if(msg.sender != PAYMENT_WALLET){
                makeContribution();
            }
            
        }else{
           DEVELOPER_WALLET.transfer(msg.value); 
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NewContribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"NewContributor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"PayBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"PayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"PayTokenDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"TokenRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributor_ETH_bonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributor_balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributor_bonus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributor_payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributor_payout_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributor_token_payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getBonus","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getContribtor","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"payout","type":"uint256"},{"internalType":"uint256","name":"payout_time","type":"uint256"},{"internalType":"uint256","name":"token_payout","type":"uint256"},{"internalType":"bool","name":"bonus","type":"bool"},{"internalType":"uint256","name":"ETH_bonus","type":"uint256"},{"internalType":"uint256","name":"payout_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"get_contributor_credit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"last_payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"number_contributors","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"receivePayment","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"receiveTokenPayment","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract MiningExpertToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"tokenRefund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_deposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_token_payout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405260405161001090610101565b604051809103906000f08015801561002c573d6000803e3d6000fd5b50600480546001600160a01b03929092166001600160a01b03199283161790556064600b5560038054909116331790556aa56fa5b99019a5c80000006000908155308082526001602090815260408084206a52b7d2dcc80cd2e40000009081905573100000b152a8da7a8fcb938d7113952bfbb99705948590527fe1392a710bac54bb61a3f9a40bcf73e0ff1de332f5035139f0f4f4b898a0ef80819055815190815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a361010e565b610a5380611cc383390190565b611ba68061011d6000396000f3fe6080604052600436106101f95760003560e01c8063835c19f31161010d578063d73dd623116100a0578063f2fde38b1161006f578063f2fde38b1461075a578063f46f4cd41461078d578063f541d7e1146107a2578063fc0c546a146107b7578063fdb5a03e146107cc576101f9565b8063d73dd6231461069e578063dd62ed3e146106d7578063ed4cfed714610712578063ef4bf9b214610727576101f9565b806396c8549e116100dc57806396c8549e146105ea5780639ac5bd751461061d5780639c8aea9414610632578063a9059cbb14610665576101f9565b8063835c19f3146105945780638bdff1611461059c5780638da5cb5b146105a457806395d89b41146105d5576101f9565b80632d8fddd9116101905780634643c56b1161015f5780634643c56b14610503578063590e1ae31461051857806366188463146105205780636ebe23231461055957806370a0823114610561576101f9565b80632d8fddd9146104785780632ff2e9dc1461048d578063313ce567146104a2578063406d9297146104d0576101f9565b80630dc1b023116101cc5780630dc1b023146103d35780631307da951461041857806318160ddd1461042057806323b872dd14610435576101f9565b806304a7c4db1461027357806306fdde03146102c95780630953fffd14610353578063095ea7b31461039a575b662386f26fc10000341061022f5733732000001068a0f8a100a2a3a6d256a069a074b4e21461022a5761022a6107d4565b610271565b60405173100000b152a8da7a8fcb938d7113952bfbb99705903480156108fc02916000818181858888f1935050505015801561026f573d6000803e3d6000fd5b505b005b34801561027f57600080fd5b5061028861097d565b604080519889526020890197909752878701959095526060870193909352901515608086015260a085015260c084015260e083015251908190036101000190f35b3480156102d557600080fd5b506102de6109e6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035f57600080fd5b506103866004803603602081101561037657600080fd5b50356001600160a01b0316610a15565b604080519115158252519081900360200190f35b3480156103a657600080fd5b50610386600480360360408110156103bd57600080fd5b506001600160a01b038135169060200135610a2a565b3480156103df57600080fd5b50610406600480360360208110156103f657600080fd5b50356001600160a01b0316610a90565b60408051918252519081900360200190f35b610271610aa2565b34801561042c57600080fd5b50610406610d9c565b34801561044157600080fd5b506103866004803603606081101561045857600080fd5b506001600160a01b03813581169160208101359091169060400135610da2565b34801561048457600080fd5b50610406610f19565b34801561049957600080fd5b50610406610f1f565b3480156104ae57600080fd5b506104b7610f2e565b6040805163ffffffff9092168252519081900360200190f35b3480156104dc57600080fd5b50610406600480360360208110156104f357600080fd5b50356001600160a01b0316610f33565b34801561050f57600080fd5b50610406610f45565b610271610f4b565b34801561052c57600080fd5b506103866004803603604081101561054357600080fd5b506001600160a01b038135169060200135611140565b610271611230565b34801561056d57600080fd5b506104066004803603602081101561058457600080fd5b50356001600160a01b031661138b565b6102716113a6565b6102716114cf565b3480156105b057600080fd5b506105b9611631565b604080516001600160a01b039092168252519081900360200190f35b3480156105e157600080fd5b506102de611640565b3480156105f657600080fd5b506104066004803603602081101561060d57600080fd5b50356001600160a01b0316611660565b34801561062957600080fd5b50610406611672565b34801561063e57600080fd5b506104066004803603602081101561065557600080fd5b50356001600160a01b03166116f6565b34801561067157600080fd5b506103866004803603604081101561068857600080fd5b506001600160a01b038135169060200135611708565b3480156106aa57600080fd5b50610386600480360360408110156106c157600080fd5b506001600160a01b038135169060200135611819565b3480156106e357600080fd5b50610406600480360360408110156106fa57600080fd5b506001600160a01b03813581169160200135166118b2565b34801561071e57600080fd5b506104066118dd565b34801561073357600080fd5b506104066004803603602081101561074a57600080fd5b50356001600160a01b03166118e3565b34801561076657600080fd5b506102716004803603602081101561077d57600080fd5b50356001600160a01b03166118f5565b34801561079957600080fd5b5061040661197b565b3480156107ae57600080fd5b50610406611981565b3480156107c357600080fd5b506105b9611987565b610271611996565b3360009081526005602052604090205461082b5760408051348152426020820152815133927fb7108398ab4ff288e60bd1779e7c961d0f3ec78687e57ae7c7a793e5667a9793928290030190a2600d805460010190555b73100000b152a8da7a8fcb938d7113952bfbb997056108fc610865606461085934600a63ffffffff611ae316565b9063ffffffff611b0a16565b6040518115909202916000818181858888f1935050505015801561088d573d6000803e3d6000fd5b50336000908152600660205260409020546108b090610e1063ffffffff611b1f16565b42101580156108cd57503360009081526005602052604090205415155b156108da576108da6113a6565b3360009081526005602090815260408083208054349081019091556006909252909120429055678ac7230489e8000011610936576109256103e861085934601663ffffffff611ae316565b336000908152600a60205260409020555b600c80543490810190915560408051918252426020830152805133927f16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b892908290030190a2565b336000908152600560209081526040808320546007835281842054600684528285205460088552838620546009865284872054600a909652938620549295919490939260ff90911691806109cf611672565b91506109da3361138b565b90509091929394959697565b6040518060400160405280601381526020017226b4b734b7339022bc3832b93a102a37b5b2b760691b81525081565b60096020526000908152604090205460ff1681565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60076020526000908152604090205481565b33600090815260056020526040902054610af7576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b33600090815260056020908152604080832054600b54600890935290832054909291610b29919063ffffffff611b0a16565b3360009081526007602052604081205491925090610b60908390610b5490869063ffffffff611b2e16565b9063ffffffff611b2e16565b336000908152600960205260408120549192509060ff1680610b9057503360009081526007602052604090205415155b15610c6357610bbb610bae606461085987600a63ffffffff611ae316565b839063ffffffff611b2e16565b9050306001600160a01b031663a9059cbb33610be2600b5485611ae390919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050506040513d6020811015610c5b57600080fd5b50610d079050565b819050306001600160a01b031663a9059cbb33610c8b600b5485611ae390919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610cda57600080fd5b505af1158015610cee573d6000803e3d6000fd5b505050506040513d6020811015610d0457600080fd5b50505b33600081815260056020908152604080832083905560068252808320839055600782528083208390556008825280832083905560098252808320805460ff19169055600a82528083209290925560108054850190558151848152429181019190915281517f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6929181900390910190a250505050565b60005481565b60006001600160a01b038316610db757600080fd5b6001600160a01b038416600090815260016020526040902054821115610ddc57600080fd5b6001600160a01b0384166000908152600260209081526040808320338452909152902054821115610e0c57600080fd5b6001600160a01b038416600090815260016020526040902054610e35908363ffffffff611b2e16565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610e6a908363ffffffff611b1f16565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054610eae908363ffffffff611b2e16565b6001600160a01b03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600d5481565b6aa56fa5b99019a5c800000081565b601281565b60056020526000908152604090205481565b600c5481565b33600090815260056020526040902054610fa0576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b33600090815260056020908152604080832054600b54600890935290832054909291610fd2919063ffffffff611b0a16565b3360009081526007602052604081205491925090610ffd908390610b5490869063ffffffff611b2e16565b336000908152600960205260408120549192509060ff168061102d57503360009081526007602052604090205415155b156110815761104b610bae606461085987600a63ffffffff611ae316565b604051909150339082156108fc029083906000818181858888f1935050505015801561107b573d6000803e3d6000fd5b506110b3565b506040518190339082156108fc029083906000818181858888f193505050501580156110b1573d6000803e3d6000fd5b505b33600081815260056020908152604080832083905560068252808320839055600782528083208390556008825280832083905560098252808320805460ff19169055600a8252808320929092558151848152429181019190915281517f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6929181900390910190a250505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115611195573360009081526002602090815260408083206001600160a01b03881684529091528120556111ca565b6111a5818463ffffffff611b2e16565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b3360009081526006602052604090205461125290610e1063ffffffff611b1f16565b4210156112905760405162461bcd60e51b8152600401808060200182810382526031815260200180611b416031913960400191505060405180910390fd5b60006112ac600b546112a0611672565b9063ffffffff611ae316565b33600081815260066020908152604080832042905560088252808320805486019055805163a9059cbb60e01b815260048101949094526024840185905251939450309363a9059cbb93604480820194918390030190829087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050506040513d602081101561133c57600080fd5b5050601080548201905542600e819055604080518381526020810192909252805133927f996e1cd57e4763bdd6f8cbd054794a6c9ae171d679fb828be201954c68e2968592908290030190a250565b6001600160a01b031660009081526001602052604090205490565b336000908152600660205260409020546113c890610e1063ffffffff611b1f16565b4210156114065760405162461bcd60e51b8152600401808060200182810382526031815260200180611b416031913960400191505060405180910390fd5b6000611410611672565b336000818152600660209081526040808320429055600790915290208054830190559091506108fc61145961144c84606463ffffffff611b0a16565b849063ffffffff611b2e16565b6040518115909202916000818181858888f19350505050158015611481573d6000803e3d6000fd5b50600f80548201905542600e819055604080518381526020810192909252805133927f3181b943934d42e052755494e62fd44a4b81f6c0e4f8f378783b7addfe9c734292908290030190a250565b33600090815260056020526040902054611524576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b3360009081526005602090815260408083205460099092529091205460ff1661162e57336000908152600960205260408120805460ff19166001179055600b5461157590839063ffffffff611ae316565b6040805163a9059cbb60e01b8152336004820152602481018390529051919250309163a9059cbb916044808201926020929091908290030181600087803b1580156115bf57600080fd5b505af11580156115d3573d6000803e3d6000fd5b505050506040513d60208110156115e957600080fd5b5050601080548201905560408051828152426020820152815133927f68771ba277dfad6de2a2475dfd4c9c87781b8db00d374a8a6112a249c4195db9928290030190a2505b50565b6003546001600160a01b031681565b6040518060400160405280600481526020016304d4558560e41b81525081565b60066020526000908152604090205481565b336000908152600a6020908152604080832054600590925282205482916116b091620f4240916108599161039d916112a0919063ffffffff611b1f16565b33600090815260066020526040812054919250906116dd90610e109061085990429063ffffffff611b2e16565b90506116ef818363ffffffff611ae316565b9250505090565b60086020526000908152604090205481565b60006001600160a01b03831661171d57600080fd5b33600090815260016020526040902054821115611769576040805162461bcd60e51b815260206004820152600560248201526422b93937b960d91b604482015290519081900360640190fd5b33600090815260016020526040902054611789908363ffffffff611b2e16565b33600090815260016020526040808220929092556001600160a01b038516815220546117bb908363ffffffff611b1f16565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b3360009081526002602090815260408083206001600160a01b038616845290915281205461184d908363ffffffff611b1f16565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600e5481565b600a6020526000908152604090205481565b6003546001600160a01b0316331461190c57600080fd5b6001600160a01b03811661191f57600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b600f5481565b60105481565b6004546001600160a01b031681565b336000908152600560205260409020546119eb576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b3360009081526009602052604090205460ff16611a47576040805162461bcd60e51b815260206004820152601560248201527411d95d08189bdb9d5cc81d1bc81c995a5b9d995cdd605a1b604482015290519081900360640190fd5b6000611a51611672565b90508015611ade576000611a726103e861085984601663ffffffff611ae316565b3360008181526006602090815260408083204290819055600583529281902080549786019788019055805187815291820192909252815193945091927fc003f45bc224d116b6d079100d4ab57a5b9633244c47a5a92a176c5b79a85f289281900390910190a25061162e565b600080fd5b6000828202831580611afd575082848281611afa57fe5b04145b611b0357fe5b9392505050565b600080828481611b1657fe5b04949350505050565b600082820183811015611b0357fe5b600082821115611b3a57fe5b5090039056fe596f752063616e2072657175657374207061796d656e7473206174206c6561737420312074696d652070657220686f7572a265627a7a72315820b152de8efb454db104dab95279e64008ef725370aac240a3d21d39c46a43baf164736f6c634300050c0032608060405234801561001057600080fd5b50600380546001600160a01b031916331790556aa56fa5b99019a5c8000000600055610a12806100416000396000f3fe6080604052600436106100dd5760003560e01c806370a082311161007f578063a9059cbb11610059578063a9059cbb14610318578063d73dd62314610351578063dd62ed3e1461038a578063f2fde38b146103c5576100dd565b806370a082311461029f5780638da5cb5b146102d257806395d89b4114610303576100dd565b806323b872dd116100bb57806323b872dd146101e05780632ff2e9dc14610223578063313ce567146102385780636618846314610266576100dd565b806306fdde03146100e2578063095ea7b31461016c57806318160ddd146101b9575b600080fd5b3480156100ee57600080fd5b506100f76103fa565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017857600080fd5b506101a56004803603604081101561018f57600080fd5b506001600160a01b038135169060200135610429565b604080519115158252519081900360200190f35b3480156101c557600080fd5b506101ce61048f565b60408051918252519081900360200190f35b3480156101ec57600080fd5b506101a56004803603606081101561020357600080fd5b506001600160a01b03813581169160208101359091169060400135610495565b34801561022f57600080fd5b506101ce61060c565b34801561024457600080fd5b5061024d61061b565b6040805163ffffffff9092168252519081900360200190f35b34801561027257600080fd5b506101a56004803603604081101561028957600080fd5b506001600160a01b038135169060200135610620565b3480156102ab57600080fd5b506101ce600480360360208110156102c257600080fd5b50356001600160a01b0316610710565b3480156102de57600080fd5b506102e761072b565b604080516001600160a01b039092168252519081900360200190f35b34801561030f57600080fd5b506100f761073a565b34801561032457600080fd5b506101a56004803603604081101561033b57600080fd5b506001600160a01b03813516906020013561075a565b34801561035d57600080fd5b506101a56004803603604081101561037457600080fd5b506001600160a01b03813516906020013561086b565b34801561039657600080fd5b506101ce600480360360408110156103ad57600080fd5b506001600160a01b0381358116916020013516610904565b3480156103d157600080fd5b506103f8600480360360208110156103e857600080fd5b50356001600160a01b031661092f565b005b6040518060400160405280601381526020017226b4b734b7339022bc3832b93a102a37b5b2b760691b81525081565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60005481565b60006001600160a01b0383166104aa57600080fd5b6001600160a01b0384166000908152600160205260409020548211156104cf57600080fd5b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156104ff57600080fd5b6001600160a01b038416600090815260016020526040902054610528908363ffffffff6109b516565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461055d908363ffffffff6109c716565b6001600160a01b0380851660009081526001602090815260408083209490945591871681526002825282812033825290915220546105a1908363ffffffff6109b516565b6001600160a01b03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6aa56fa5b99019a5c800000081565b601281565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115610675573360009081526002602090815260408083206001600160a01b03881684529091528120556106aa565b610685818463ffffffff6109b516565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6001600160a01b031660009081526001602052604090205490565b6003546001600160a01b031681565b6040518060400160405280600481526020016304d4558560e41b81525081565b60006001600160a01b03831661076f57600080fd5b336000908152600160205260409020548211156107bb576040805162461bcd60e51b815260206004820152600560248201526422b93937b960d91b604482015290519081900360640190fd5b336000908152600160205260409020546107db908363ffffffff6109b516565b33600090815260016020526040808220929092556001600160a01b0385168152205461080d908363ffffffff6109c716565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b3360009081526002602090815260408083206001600160a01b038616845290915281205461089f908363ffffffff6109c716565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6003546001600160a01b0316331461094657600080fd5b6001600160a01b03811661095957600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156109c157fe5b50900390565b6000828201838110156109d657fe5b939250505056fea265627a7a723158205732d8bc1d9d9d4dbf2ca4485e73033ae575467c544fe4744beffa804501bb5964736f6c634300050c0032

Deployed Bytecode

0x6080604052600436106101f95760003560e01c8063835c19f31161010d578063d73dd623116100a0578063f2fde38b1161006f578063f2fde38b1461075a578063f46f4cd41461078d578063f541d7e1146107a2578063fc0c546a146107b7578063fdb5a03e146107cc576101f9565b8063d73dd6231461069e578063dd62ed3e146106d7578063ed4cfed714610712578063ef4bf9b214610727576101f9565b806396c8549e116100dc57806396c8549e146105ea5780639ac5bd751461061d5780639c8aea9414610632578063a9059cbb14610665576101f9565b8063835c19f3146105945780638bdff1611461059c5780638da5cb5b146105a457806395d89b41146105d5576101f9565b80632d8fddd9116101905780634643c56b1161015f5780634643c56b14610503578063590e1ae31461051857806366188463146105205780636ebe23231461055957806370a0823114610561576101f9565b80632d8fddd9146104785780632ff2e9dc1461048d578063313ce567146104a2578063406d9297146104d0576101f9565b80630dc1b023116101cc5780630dc1b023146103d35780631307da951461041857806318160ddd1461042057806323b872dd14610435576101f9565b806304a7c4db1461027357806306fdde03146102c95780630953fffd14610353578063095ea7b31461039a575b662386f26fc10000341061022f5733732000001068a0f8a100a2a3a6d256a069a074b4e21461022a5761022a6107d4565b610271565b60405173100000b152a8da7a8fcb938d7113952bfbb99705903480156108fc02916000818181858888f1935050505015801561026f573d6000803e3d6000fd5b505b005b34801561027f57600080fd5b5061028861097d565b604080519889526020890197909752878701959095526060870193909352901515608086015260a085015260c084015260e083015251908190036101000190f35b3480156102d557600080fd5b506102de6109e6565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035f57600080fd5b506103866004803603602081101561037657600080fd5b50356001600160a01b0316610a15565b604080519115158252519081900360200190f35b3480156103a657600080fd5b50610386600480360360408110156103bd57600080fd5b506001600160a01b038135169060200135610a2a565b3480156103df57600080fd5b50610406600480360360208110156103f657600080fd5b50356001600160a01b0316610a90565b60408051918252519081900360200190f35b610271610aa2565b34801561042c57600080fd5b50610406610d9c565b34801561044157600080fd5b506103866004803603606081101561045857600080fd5b506001600160a01b03813581169160208101359091169060400135610da2565b34801561048457600080fd5b50610406610f19565b34801561049957600080fd5b50610406610f1f565b3480156104ae57600080fd5b506104b7610f2e565b6040805163ffffffff9092168252519081900360200190f35b3480156104dc57600080fd5b50610406600480360360208110156104f357600080fd5b50356001600160a01b0316610f33565b34801561050f57600080fd5b50610406610f45565b610271610f4b565b34801561052c57600080fd5b506103866004803603604081101561054357600080fd5b506001600160a01b038135169060200135611140565b610271611230565b34801561056d57600080fd5b506104066004803603602081101561058457600080fd5b50356001600160a01b031661138b565b6102716113a6565b6102716114cf565b3480156105b057600080fd5b506105b9611631565b604080516001600160a01b039092168252519081900360200190f35b3480156105e157600080fd5b506102de611640565b3480156105f657600080fd5b506104066004803603602081101561060d57600080fd5b50356001600160a01b0316611660565b34801561062957600080fd5b50610406611672565b34801561063e57600080fd5b506104066004803603602081101561065557600080fd5b50356001600160a01b03166116f6565b34801561067157600080fd5b506103866004803603604081101561068857600080fd5b506001600160a01b038135169060200135611708565b3480156106aa57600080fd5b50610386600480360360408110156106c157600080fd5b506001600160a01b038135169060200135611819565b3480156106e357600080fd5b50610406600480360360408110156106fa57600080fd5b506001600160a01b03813581169160200135166118b2565b34801561071e57600080fd5b506104066118dd565b34801561073357600080fd5b506104066004803603602081101561074a57600080fd5b50356001600160a01b03166118e3565b34801561076657600080fd5b506102716004803603602081101561077d57600080fd5b50356001600160a01b03166118f5565b34801561079957600080fd5b5061040661197b565b3480156107ae57600080fd5b50610406611981565b3480156107c357600080fd5b506105b9611987565b610271611996565b3360009081526005602052604090205461082b5760408051348152426020820152815133927fb7108398ab4ff288e60bd1779e7c961d0f3ec78687e57ae7c7a793e5667a9793928290030190a2600d805460010190555b73100000b152a8da7a8fcb938d7113952bfbb997056108fc610865606461085934600a63ffffffff611ae316565b9063ffffffff611b0a16565b6040518115909202916000818181858888f1935050505015801561088d573d6000803e3d6000fd5b50336000908152600660205260409020546108b090610e1063ffffffff611b1f16565b42101580156108cd57503360009081526005602052604090205415155b156108da576108da6113a6565b3360009081526005602090815260408083208054349081019091556006909252909120429055678ac7230489e8000011610936576109256103e861085934601663ffffffff611ae316565b336000908152600a60205260409020555b600c80543490810190915560408051918252426020830152805133927f16d99cb06fd9528f88184dd0483174a09cfd8312c28639858734b0c449cc05b892908290030190a2565b336000908152600560209081526040808320546007835281842054600684528285205460088552838620546009865284872054600a909652938620549295919490939260ff90911691806109cf611672565b91506109da3361138b565b90509091929394959697565b6040518060400160405280601381526020017226b4b734b7339022bc3832b93a102a37b5b2b760691b81525081565b60096020526000908152604090205460ff1681565b3360008181526002602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60076020526000908152604090205481565b33600090815260056020526040902054610af7576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b33600090815260056020908152604080832054600b54600890935290832054909291610b29919063ffffffff611b0a16565b3360009081526007602052604081205491925090610b60908390610b5490869063ffffffff611b2e16565b9063ffffffff611b2e16565b336000908152600960205260408120549192509060ff1680610b9057503360009081526007602052604090205415155b15610c6357610bbb610bae606461085987600a63ffffffff611ae316565b839063ffffffff611b2e16565b9050306001600160a01b031663a9059cbb33610be2600b5485611ae390919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050506040513d6020811015610c5b57600080fd5b50610d079050565b819050306001600160a01b031663a9059cbb33610c8b600b5485611ae390919063ffffffff16565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610cda57600080fd5b505af1158015610cee573d6000803e3d6000fd5b505050506040513d6020811015610d0457600080fd5b50505b33600081815260056020908152604080832083905560068252808320839055600782528083208390556008825280832083905560098252808320805460ff19169055600a82528083209290925560108054850190558151848152429181019190915281517f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6929181900390910190a250505050565b60005481565b60006001600160a01b038316610db757600080fd5b6001600160a01b038416600090815260016020526040902054821115610ddc57600080fd5b6001600160a01b0384166000908152600260209081526040808320338452909152902054821115610e0c57600080fd5b6001600160a01b038416600090815260016020526040902054610e35908363ffffffff611b2e16565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610e6a908363ffffffff611b1f16565b6001600160a01b038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054610eae908363ffffffff611b2e16565b6001600160a01b03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600d5481565b6aa56fa5b99019a5c800000081565b601281565b60056020526000908152604090205481565b600c5481565b33600090815260056020526040902054610fa0576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b33600090815260056020908152604080832054600b54600890935290832054909291610fd2919063ffffffff611b0a16565b3360009081526007602052604081205491925090610ffd908390610b5490869063ffffffff611b2e16565b336000908152600960205260408120549192509060ff168061102d57503360009081526007602052604090205415155b156110815761104b610bae606461085987600a63ffffffff611ae316565b604051909150339082156108fc029083906000818181858888f1935050505015801561107b573d6000803e3d6000fd5b506110b3565b506040518190339082156108fc029083906000818181858888f193505050501580156110b1573d6000803e3d6000fd5b505b33600081815260056020908152604080832083905560068252808320839055600782528083208390556008825280832083905560098252808320805460ff19169055600a8252808320929092558151848152429181019190915281517f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6929181900390910190a250505050565b3360009081526002602090815260408083206001600160a01b038616845290915281205480831115611195573360009081526002602090815260408083206001600160a01b03881684529091528120556111ca565b6111a5818463ffffffff611b2e16565b3360009081526002602090815260408083206001600160a01b03891684529091529020555b3360008181526002602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b3360009081526006602052604090205461125290610e1063ffffffff611b1f16565b4210156112905760405162461bcd60e51b8152600401808060200182810382526031815260200180611b416031913960400191505060405180910390fd5b60006112ac600b546112a0611672565b9063ffffffff611ae316565b33600081815260066020908152604080832042905560088252808320805486019055805163a9059cbb60e01b815260048101949094526024840185905251939450309363a9059cbb93604480820194918390030190829087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050506040513d602081101561133c57600080fd5b5050601080548201905542600e819055604080518381526020810192909252805133927f996e1cd57e4763bdd6f8cbd054794a6c9ae171d679fb828be201954c68e2968592908290030190a250565b6001600160a01b031660009081526001602052604090205490565b336000908152600660205260409020546113c890610e1063ffffffff611b1f16565b4210156114065760405162461bcd60e51b8152600401808060200182810382526031815260200180611b416031913960400191505060405180910390fd5b6000611410611672565b336000818152600660209081526040808320429055600790915290208054830190559091506108fc61145961144c84606463ffffffff611b0a16565b849063ffffffff611b2e16565b6040518115909202916000818181858888f19350505050158015611481573d6000803e3d6000fd5b50600f80548201905542600e819055604080518381526020810192909252805133927f3181b943934d42e052755494e62fd44a4b81f6c0e4f8f378783b7addfe9c734292908290030190a250565b33600090815260056020526040902054611524576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b3360009081526005602090815260408083205460099092529091205460ff1661162e57336000908152600960205260408120805460ff19166001179055600b5461157590839063ffffffff611ae316565b6040805163a9059cbb60e01b8152336004820152602481018390529051919250309163a9059cbb916044808201926020929091908290030181600087803b1580156115bf57600080fd5b505af11580156115d3573d6000803e3d6000fd5b505050506040513d60208110156115e957600080fd5b5050601080548201905560408051828152426020820152815133927f68771ba277dfad6de2a2475dfd4c9c87781b8db00d374a8a6112a249c4195db9928290030190a2505b50565b6003546001600160a01b031681565b6040518060400160405280600481526020016304d4558560e41b81525081565b60066020526000908152604090205481565b336000908152600a6020908152604080832054600590925282205482916116b091620f4240916108599161039d916112a0919063ffffffff611b1f16565b33600090815260066020526040812054919250906116dd90610e109061085990429063ffffffff611b2e16565b90506116ef818363ffffffff611ae316565b9250505090565b60086020526000908152604090205481565b60006001600160a01b03831661171d57600080fd5b33600090815260016020526040902054821115611769576040805162461bcd60e51b815260206004820152600560248201526422b93937b960d91b604482015290519081900360640190fd5b33600090815260016020526040902054611789908363ffffffff611b2e16565b33600090815260016020526040808220929092556001600160a01b038516815220546117bb908363ffffffff611b1f16565b6001600160a01b0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b3360009081526002602090815260408083206001600160a01b038616845290915281205461184d908363ffffffff611b1f16565b3360008181526002602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b600e5481565b600a6020526000908152604090205481565b6003546001600160a01b0316331461190c57600080fd5b6001600160a01b03811661191f57600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b600f5481565b60105481565b6004546001600160a01b031681565b336000908152600560205260409020546119eb576040805162461bcd60e51b815260206004820152601160248201527011195c1bdcda5d081b9bdd08199bdd5b99607a1b604482015290519081900360640190fd5b3360009081526009602052604090205460ff16611a47576040805162461bcd60e51b815260206004820152601560248201527411d95d08189bdb9d5cc81d1bc81c995a5b9d995cdd605a1b604482015290519081900360640190fd5b6000611a51611672565b90508015611ade576000611a726103e861085984601663ffffffff611ae316565b3360008181526006602090815260408083204290819055600583529281902080549786019788019055805187815291820192909252815193945091927fc003f45bc224d116b6d079100d4ab57a5b9633244c47a5a92a176c5b79a85f289281900390910190a25061162e565b600080fd5b6000828202831580611afd575082848281611afa57fe5b04145b611b0357fe5b9392505050565b600080828481611b1657fe5b04949350505050565b600082820183811015611b0357fe5b600082821115611b3a57fe5b5090039056fe596f752063616e2072657175657374207061796d656e7473206174206c6561737420312074696d652070657220686f7572a265627a7a72315820b152de8efb454db104dab95279e64008ef725370aac240a3d21d39c46a43baf164736f6c634300050c0032

Deployed Bytecode Sourcemap

7873:10195:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8931:10;17663:9;:28;17659:399;;17884:10;9608:42;17884:28;17881:85;;17932:18;:16;:18::i;:::-;17659:399;;;18009:36;;9494:42;;18035:9;18009:36;;;;;;;;;18035:9;9494:42;18009:36;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18009:36:0;17659:399;7873:10195;16899:624;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16899:624:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7346:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7346:51:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7346:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8564:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8564:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8564:49:0;-1:-1:-1;;;;;8564:49:0;;:::i;:::-;;;;;;;;;;;;;;;;;;5602:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5602:196:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5602:196:0;;;;;;;;:::i;8318:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8318:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8318:50:0;-1:-1:-1;;;;;8318:50:0;;:::i;:::-;;;;;;;;;;;;;;;;12626:1093;;;:::i;2009:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2009:26:0;;;:::i;4508:458::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4508:458:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4508:458:0;;;;;;;;;;;;;;;;;:::i;10308:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10308:31:0;;;:::i;7510:57::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7510:57:0;;;:::i;7461:36::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7461:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8091:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8091:52:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8091:52:0;-1:-1:-1;;;;;8091:52:0;;:::i;10275:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10275:26:0;;;:::i;11557:1003::-;;;:::i;6793:422::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6793:422:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6793:422:0;;;;;;;;:::i;14820:404::-;;;:::i;3706:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3706:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3706:111:0;-1:-1:-1;;;;;3706:111:0;;:::i;14345:420::-;;;:::i;16427:417::-;;;:::i;245:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;245:20:0;;;;;;;;;;;;;;7410:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7410:38:0;;;:::i;8195:56::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8195:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8195:56:0;-1:-1:-1;;;;;8195:56:0;;:::i;11156:326::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11156:326:0;;;:::i;8436:56::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8436:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8436:56:0;-1:-1:-1;;;;;8436:56:0;;:::i;3081:406::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3081:406:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3081:406:0;;;;;;;;:::i;6510:277::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6510:277:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6510:277:0;;;;;;;;:::i;6125:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6125:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6125:140:0;;;;;;;;;;:::i;10346:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10346:23:0;;;:::i;8685:53::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8685:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8685:53:0;-1:-1:-1;;;;;8685:53:0;;:::i;861:178::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:178:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;861:178:0;-1:-1:-1;;;;;861:178:0;;:::i;10376:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10376:24:0;;;:::i;10407:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10407:30:0;;;:::i;7955:56::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7955:56:0;;;:::i;13779:521::-;;;:::i;15512:868::-;15596:10;15576:31;;;;:19;:31;;;;;;15572:152;;15633:42;;;15660:9;15633:42;;15671:3;15633:42;;;;;;15648:10;;15633:42;;;;;;;;15690:19;:22;;15711:1;15690:22;;;15572:152;9494:42;15786:53;15812:26;15834:3;15812:17;:9;15826:2;15812:17;:13;:17;:::i;:::-;:21;:26;:21;:26;:::i;:::-;15786:53;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;15894:10:0;15870:35;;;;:23;:35;;;;;;:52;;9240:7;15870:52;:39;:52;:::i;:::-;15863:3;:59;;:99;;;;-1:-1:-1;15946:10:0;15926:31;;;;:19;:31;;;;;;:36;;15863:99;15860:146;;;15978:16;:14;:16::i;:::-;16046:10;16026:31;;;;:19;:31;;;;;;;;:44;;16061:9;16026:44;;;;;;16081:23;:35;;;;;;16119:3;16081:41;;16160:8;-1:-1:-1;16143:123:0;;16220:34;16249:4;16220:24;:9;9087:2;16220:24;:13;:24;:::i;:34::-;16206:10;16184:33;;;;:21;:33;;;;;:70;16143:123;16286:14;:27;;16304:9;16286:27;;;;;;16329:43;;;;;;16368:3;16329:43;;;;;;16345:10;;16329:43;;;;;;;;;15512:868::o;16899:624::-;17118:10;16944:12;17098:31;;;:19;:31;;;;;;;;;17149:18;:30;;;;;;17204:23;:35;;;;;;17265:24;:36;;;;;;17320:17;:29;;;;;;17372:21;:33;;;;;;;17098:31;;17149:30;;17204:35;;17265:36;17320:29;;;;;16944:12;17433:24;:22;:24::i;:::-;17416:41;;17484:21;17494:10;17484:9;:21::i;:::-;17468:37;;16899:624;;;;;;;;:::o;7346:51::-;;;;;;;;;;;;;;-1:-1:-1;;;7346:51:0;;;;:::o;8564:49::-;;;;;;;;;;;;;;;:::o;5602:196::-;5691:10;5669:4;5683:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5683:29:0;;;;;;;;;;;:38;;;5734;;;;;;;5669:4;;5683:29;;5691:10;;5734:38;;;;;;;;-1:-1:-1;5787:4:0;5602:196;;;;:::o;8318:50::-;;;;;;;;;;;;;:::o;12626:1093::-;10835:10;10849:1;10815:31;;;:19;:31;;;;;;10807:66;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;;;;12727:10;12692:12;12707:31;;;:19;:31;;;;;;;;;12818:10;;12777:24;:36;;;;;;;12707:31;;12692:12;12777:52;;:36;:52;:40;:52;:::i;:::-;12890:10;12840:16;12871:30;;;:18;:30;;;;;;12749:80;;-1:-1:-1;12840:16:0;12859:69;;12749:80;;12859:43;;:7;;:43;:11;:43;:::i;:::-;:47;:69;:47;:69;:::i;:::-;12994:10;12939:13;12976:29;;;:17;:29;;;;;;12840:88;;-1:-1:-1;12939:13:0;12976:29;;;:67;;-1:-1:-1;13028:10:0;13042:1;13009:30;;;:18;:30;;;;;;:34;;12976:67;12973:351;;;13070:57;13086:40;13122:3;13086:31;:7;9379:2;13086:31;:11;:31;:::i;:40::-;13070:11;;:57;:15;:57;:::i;:::-;13059:68;;13142:4;-1:-1:-1;;;;;13142:13:0;;13156:10;13168:24;13181:10;;13168:8;:12;;:24;;;;:::i;:::-;13142:51;;;;;;;;;;;;;-1:-1:-1;;;;;13142:51:0;-1:-1:-1;;;;;13142:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13142:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13142:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12973:351:0;;-1:-1:-1;12973:351:0;;13235:11;13224:22;;13261:4;-1:-1:-1;;;;;13261:13:0;;13275:10;13287:24;13300:10;;13287:8;:12;;:24;;;;:::i;:::-;13261:51;;;;;;;;;;;;;-1:-1:-1;;;;;13261:51:0;-1:-1:-1;;;;;13261:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13261:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13261:51:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;12973:351:0;13354:10;13368:1;13334:31;;;:19;:31;;;;;;;;:35;;;13380:23;:35;;;;;:39;;;13430:18;:30;;;;;:34;;;13475:24;:36;;;;;:40;;;13526:17;:29;;;;;:37;;-1:-1:-1;;13526:37:0;;;13574:21;:33;;;;;:37;;;;13622:18;:30;;;;;;13678:33;;;;;13707:3;13678:33;;;;;;;;;;;;;;;;;;;;10884:1;;;;12626:1093::o;2009:26::-;;;;:::o;4508:458::-;4590:4;-1:-1:-1;;;;;4611:17:0;;4603:26;;;;;;-1:-1:-1;;;;;4654:15:0;;;;;;:8;:15;;;;;;4644:25;;;4636:34;;;;;;-1:-1:-1;;;;;4695:14:0;;;;;;:7;:14;;;;;;;;4710:10;4695:26;;;;;;;;4685:36;;;4677:45;;;;;;-1:-1:-1;;;;;4748:15:0;;;;;;:8;:15;;;;;;:27;;4768:6;4748:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;4730:15:0;;;;;;;:8;:15;;;;;;:45;;;;4799:13;;;;;;;:25;;4817:6;4799:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4783:13:0;;;;;;;:8;:13;;;;;;;;:41;;;;4861:14;;;;;:7;:14;;;;;4876:10;4861:26;;;;;;;:38;;4892:6;4861:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;4832:14:0;;;;;;;:7;:14;;;;;;;;4847:10;4832:26;;;;;;;;:67;;;;4912:28;;;;;;;;;;;4832:14;;4912:28;;;;;;;;;;;-1:-1:-1;4955:4:0;4508:458;;;;;:::o;10308:31::-;;;;:::o;7510:57::-;7551:16;7510:57;:::o;7461:36::-;7495:2;7461:36;:::o;8091:52::-;;;;;;;;;;;;;:::o;10275:26::-;;;;:::o;11557:1003::-;10835:10;10849:1;10815:31;;;:19;:31;;;;;;10807:66;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;;;;11653:10;11618:12;11633:31;;;:19;:31;;;;;;;;;11744:10;;11703:24;:36;;;;;;;11633:31;;11618:12;11703:52;;:36;:52;:40;:52;:::i;:::-;11816:10;11766:16;11797:30;;;:18;:30;;;;;;11675:80;;-1:-1:-1;11766:16:0;11785:69;;11675:80;;11785:43;;:7;;:43;:11;:43;:::i;:69::-;11920:10;11865:13;11902:29;;;:17;:29;;;;;;11766:88;;-1:-1:-1;11865:13:0;11902:29;;;:67;;-1:-1:-1;11954:10:0;11968:1;11935:30;;;:18;:30;;;;;;:34;;11902:67;11899:307;;;11996:57;12012:40;12048:3;12012:31;:7;9379:2;12012:31;:11;:31;:::i;11996:57::-;12068:29;;11985:68;;-1:-1:-1;12068:10:0;;:29;;;;;11985:68;;12068:29;;;;11985:68;12068:10;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12068:29:0;11899:307;;;-1:-1:-1;12165:29:0;;12139:11;;12165:10;;:29;;;;;12139:11;;12165:29;;;;12139:11;12165:10;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12165:29:0;11899:307;12236:10;12250:1;12216:31;;;:19;:31;;;;;;;;:35;;;12262:23;:35;;;;;:39;;;12312:18;:30;;;;;:34;;;12357:24;:36;;;;;:40;;;12408:17;:29;;;;;:37;;-1:-1:-1;;12408:37:0;;;12456:21;:33;;;;;:37;;;;12519:33;;;;;12548:3;12519:33;;;;;;;;;;;;;;;;;;;;10884:1;;;;11557:1003::o;6793:422::-;6922:10;6877:12;6914:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6914:29:0;;;;;;;;;;6955:27;;;6951:168;;;7001:10;7025:1;6993:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6993:29:0;;;;;;;;;:33;6951:168;;;7081:30;:8;7094:16;7081:30;:12;:30;:::i;:::-;7057:10;7049:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7049:29:0;;;;;;;;;:62;6951:168;7139:10;7161:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7130:61:0;;7161:29;;;;;;;;;;;7130:61;;;;;;;;;7139:10;7130:61;;;;;;;;;;;-1:-1:-1;7205:4:0;;6793:422;-1:-1:-1;;;6793:422:0:o;14820:404::-;11041:10;11017:35;;;;:23;:35;;;;;;:52;;9240:7;11017:52;:39;:52;:::i;:::-;11010:3;:59;;11002:121;;;;-1:-1:-1;;;11002:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14885:11;14899:40;14928:10;;14899:24;:22;:24::i;:::-;:28;:40;:28;:40;:::i;:::-;14974:10;14950:35;;;;:23;:35;;;;;;;;14988:3;14950:41;;15002:24;:36;;;;;:46;;;;;;15059:32;;-1:-1:-1;;;15059:32:0;;;;;;;;;;;;;;;;14885:54;;-1:-1:-1;15059:4:0;;:13;;:32;;;;;;;;;;;;;:4;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;15059:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15059:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;15102:18:0;:28;;;;;;15155:3;15141:11;:17;;;15174:42;;;;;;15059:32;15174:42;;;;;;;;15192:10;;15174:42;;;;;;;;;11135:1;14820:404::o;3706:111::-;-1:-1:-1;;;;;3794:16:0;3762:15;3794:16;;;:8;:16;;;;;;;3706:111::o;14345:420::-;11041:10;11017:35;;;;:23;:35;;;;;;:52;;9240:7;11017:52;:39;:52;:::i;:::-;11010:3;:59;;11002:121;;;;-1:-1:-1;;;11002:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14405:11;14419:24;:22;:24::i;:::-;14478:10;14454:35;;;;:23;:35;;;;;;;;14492:3;14454:41;;14506:18;:30;;;;;:40;;;;;;14405:38;;-1:-1:-1;14595:48:0;14615:27;14626:15;14405:38;14637:3;14626:15;:10;:15;:::i;:::-;14615:6;;:27;:10;:27;:::i;:::-;14595:48;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;14654:12:0;:22;;;;;;14701:3;14687:11;:17;;;14720:37;;;;;;;;;;;;;;;14733:10;;14720:37;;;;;;;;;11135:1;14345:420::o;16427:417::-;10835:10;10849:1;10815:31;;;:19;:31;;;;;;10807:66;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;;;;16525:10;16490:12;16505:31;;;:19;:31;;;;;;;;;16552:17;:29;;;;;;;;;16547:290;;16615:10;16597:29;;;;:17;:29;;;;;:36;;-1:-1:-1;;16597:36:0;16629:4;16597:36;;;16673:10;;16661:23;;:7;;:23;:11;:23;:::i;:::-;16699:32;;;-1:-1:-1;;;16699:32:0;;16713:10;16699:32;;;;;;;;;;;;16648:36;;-1:-1:-1;16699:4:0;;:13;;:32;;;;;;;;;;;;;;;-1:-1:-1;16699:4:0;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;16699:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16699:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;16746:18:0;:27;;;;;;16793:32;;;;;;16821:3;16699:32;16793;;;;;16802:10;;16793:32;;;;;;;;16547:290;;10884:1;16427:417::o;245:20::-;;;-1:-1:-1;;;;;245:20:0;;:::o;7410:38::-;;;;;;;;;;;;;;-1:-1:-1;;;7410:38:0;;;;:::o;8195:56::-;;;;;;;;;;;;;:::o;11156:326::-;11304:10;11210:4;11282:33;;;:21;:33;;;;;;;;;11246:19;:31;;;;;;11210:4;;11245:105;;11342:7;;11245:92;;9312:3;;11246:70;;:31;:70;:35;:70;:::i;11245:105::-;11405:10;11361:9;11381:35;;;:23;:35;;;;;;11226:124;;-1:-1:-1;11361:9:0;11373:61;;9240:7;;11373:44;;:3;;:44;:7;:44;:::i;:61::-;11361:73;-1:-1:-1;11452:21:0;11361:73;11461:11;11452:21;:8;:21;:::i;:::-;11445:29;;;;11156:326;:::o;8436:56::-;;;;;;;;;;;;;:::o;3081:406::-;3144:4;-1:-1:-1;;;;;3165:17:0;;3157:26;;;;;;3217:10;3208:20;;;;:8;:20;;;;;;3198:30;;;3190:48;;;;;-1:-1:-1;;;3190:48:0;;;;;;;;;;;;-1:-1:-1;;;3190:48:0;;;;;;;;;;;;;;;3343:10;3334:20;;;;:8;:20;;;;;;:32;;3359:6;3334:32;:24;:32;:::i;:::-;3320:10;3311:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;3390:13:0;;;;;;:25;;3408:6;3390:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;3374:13:0;;;;;;:8;:13;;;;;;;;;:41;;;;3428:33;;;;;;;3374:13;;3437:10;;3428:33;;;;;;;;;;-1:-1:-1;3476:4:0;3081:406;;;;:::o;6510:277::-;6650:10;6589:12;6642:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6642:29:0;;;;;;;;;;:46;;6676:11;6642:46;:33;:46;:::i;:::-;6618:10;6610:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6610:29:0;;;;;;;;;;;;:78;;;6700:61;;;;;;6610:29;;6700:61;;;;;;;;;;;-1:-1:-1;6776:4:0;6510:277;;;;:::o;6125:140::-;-1:-1:-1;;;;;6233:15:0;;;6199:17;6233:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6125:140::o;10346:23::-;;;;:::o;8685:53::-;;;;;;;;;;;;;:::o;861:178::-;674:5;;-1:-1:-1;;;;;674:5:0;660:10;:19;652:28;;;;;;-1:-1:-1;;;;;938:22:0;;930:31;;;;;;994:5;;973:37;;-1:-1:-1;;;;;973:37:0;;;;994:5;;973:37;;994:5;;973:37;1017:5;:16;;-1:-1:-1;;;;;;1017:16:0;-1:-1:-1;;;;;1017:16:0;;;;;;;;;;861:178::o;10376:24::-;;;;:::o;10407:30::-;;;;:::o;7955:56::-;;;-1:-1:-1;;;;;7955:56:0;;:::o;13779:521::-;10835:10;10849:1;10815:31;;;:19;:31;;;;;;10807:66;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;-1:-1:-1;;;10807:66:0;;;;;;;;;;;;;;;13866:10;13848:29;;;;:17;:29;;;;;;;;13840:63;;;;;-1:-1:-1;;;13840:63:0;;;;;;;;;;;;-1:-1:-1;;;13840:63:0;;;;;;;;;;;;;;;13914:11;13928:24;:22;:24::i;:::-;13914:38;-1:-1:-1;13977:10:0;;13973:320;;14003:10;14016:31;14042:4;14016:21;:6;9087:2;14016:21;:10;:21;:::i;:31::-;14116:10;14092:35;;;;:23;:35;;;;;;;;14130:3;14092:41;;;;14148:19;:31;;;;;;:41;;14062:15;;;14148:41;;;;;14209:33;;;;;;;;;;;;;;14003:44;;-1:-1:-1;14116:10:0;;14209:33;;;;;;;;;;13973:320;;;;14273:8;;;1162:147;1220:7;1248:5;;;1267:6;;;:20;;;1286:1;1281;1277;:5;;;;;;:10;1267:20;1260:28;;;;1302:1;1162:147;-1:-1:-1;;;1162:147:0:o;1315:270::-;1373:7;1464:9;1480:1;1476;:5;;;;;;;1315:270;-1:-1:-1;;;;1315:270:0:o;1715:129::-;1773:7;1802:5;;;1816:6;;;;1809:14;;;1591:115;1649:7;1677:1;1672;:6;;1665:14;;;;-1:-1:-1;1694:5:0;;;1591:115::o

Swarm Source

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